嗨
我尝试使用合并AT命令到主机项目。
所以我使用DA14585_DSPS_v_6.150.2主机部分。
我splite连接形式user_scan_start()——> call back (user_on_adv_report_ind())
也可按以下功能修改
空白app_easy_gap_start_connection_to_set (uint8_t peer_addr_type,
Const uint8_t *peer_addr, uint16_t intv)
{
struct gapm_start_connection_cmd *味精;
味精= app_easy_gap_start_connection_to_msg_create ();
味精- > nb_peers = 1;
memcpy(味精- >[0]。addr, peer_addr BD_ADDR_LEN);
味精- >[0]。addr_type = peer_addr_type;
味精- > con_intv_max = intv;
味精- > con_intv_min = intv;
返回;
}
/ /丹尼斯添加
空白app_easy_gap_start_connection_to_set_send (uint8_t peer_addr_type,
Const uint8_t *peer_addr, uint16_t intv)
{
struct gapm_start_connection_cmd *味精;
味精= app_easy_gap_start_connection_to_msg_create ();
味精- > nb_peers = 1;
memcpy(味精- >[0]。addr, peer_addr BD_ADDR_LEN);
味精- >[0]。addr_type = peer_addr_type;
味精- > con_intv_max = intv;
味精- > con_intv_min = intv;
app_connect_start_msg_send ((void *)味精);
返回;
}
到目前为止,代码工作得很好,
但是当我调用use app_easy_gap_disconnect并尝试再次连接时。
它不能再次回调到user_on_connection。
我不知道为什么?
有什么我错过的吗?
丹尼斯
嗨dennis3430,
由于您的项目是基于dsp的Host (Central)项目,请检查是否在断开设备与对端外设的连接后重新开始扫描。请试着调试你的代码。调用app_easy_gap_disconnect()之后代码在哪里执行?
谢谢,PM_Dialog
嗨
所有的执行在一个简单的时间,我添加了表单回调函数user_on_set_dev_config_complete()
吸,遵循
空白user_on_set_dev_config_complete(空白)
{
app_db_init_start ();
Host_Cmd_timer = app_easy_timer(HOTS_CMD_TIMER_CNT, AT_Cmd_Exec);
}
静态孔隙AT_Cmd_Exec(空白)
{
如果(At_Cmd = = _AT_NONE)
Parser_AtCmd ();
其他{
开关(At_Cmd)
{
案例_AT_SCAN:
:
打破;
案例_AT_SACN_WAIT:
:
打破;
案例_AT_CONNECT:
如果(Connect_Idx = = 1)
{
app_easy_gap_start_connection_to_set_send (0 (uint8_t *) Cmd_Para MS_TO_DOUBLESLOTS (USER_CON_INTV));
At_Cmd = _AT_CONNECT_WAIT;
}
案例_AT_CONNECT_WAIT:
如果(AT_Cmd_State = = _ATS_END) {
At_Cmd = _AT_NONE;
}
打破;
案例_AT_DISCONNECT:
如果(Connect_Idx > = 0)
{
app_easy_gap_disconnect (Connect_Idx);
Connect_Idx = 1;
At_Cmd = _AT_NONE;
}
打破;
案例_AT_DISCONNECT_WAIT:
At_Cmd = _AT_NONE;
打破;
默认值:
At_Cmd = _AT_NONE;
打破;
}
}
Host_Cmd_timer = app_easy_timer(HOTS_CMD_TIMER_CNT, AT_Cmd_Exec);
}
即使我使用reset它仍然不能重新连接到设备
这里我添加了重置功能
/ /丹尼斯添加
空白app_easy_gap_reset(空白)
{
Struct gapm_reset_cmd* CMD = app_gapm_reset_msg_create();
cmd - >操作= GAPM_RESET;
app_gapm_reset_msg_send (cmd);
}
我看到进程再次重启,但是当需要连接客户端设备时,调用app_easy_gap_start_connection_to_set_send()之后,它就不再工作了,假设它将调用user_on_connection或user_on_connect_failed
但它看起来没有回调,仍然工作其他线程。
丹尼斯
嗨dennis3430,
为什么不看看CodeLess引用应用程序示例呢?在这个项目中,您可以通过UART发送AT命令。
//www.wsdof.com/雷电竞官网登录products/smartbondtm-codeless-commands
谢谢,PM_Dialog
嗨
抱歉,很多愚蠢的问题。
但我相信这与AT命令无关。
我的问题是为什么我使用函数“app_easy_gap_disconnect”来断开连接,
不能连接再一次.
我想可能是我连接设备的方式不对,或者是断开连接的方式不对。
或者是我需要遵守的规则。
我将尝试再次阅读和无代码项目来找出。
谢谢
丹尼斯
嗨dennis3430,
请说明设备是否已连接?之后,请在调试模式下运行它,并在断开连接回调中添加一个断点。
谢谢,PM_Dialog