使用app_easy_gap_disconnect后,能否再次连接?

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
dennis3430
离线
最后看到:1年8个月前
加入:2019-08-27 07:42
使用app_easy_gap_disconnect后,能否再次连接?

我尝试使用合并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。

我不知道为什么?

有什么我错过的吗?

丹尼斯

设备:
PM_Dialog
离线
最后看到:1周9小时前
工作人员
加入:2018-02-08 11:03
嗨dennis3430,

嗨dennis3430,

由于您的项目是基于dsp的Host (Central)项目,请检查是否在断开设备与对端外设的连接后重新开始扫描。请试着调试你的代码。调用app_easy_gap_disconnect()之后代码在哪里执行?

谢谢,PM_Dialog

dennis3430
离线
最后看到:1年8个月前
加入:2019-08-27 07:42

所有的执行在一个简单的时间,我添加了表单回调函数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

但它看起来没有回调,仍然工作其他线程。

丹尼斯

PM_Dialog
离线
最后看到:1周9小时前
工作人员
加入:2018-02-08 11:03
嗨dennis3430,

嗨dennis3430,

为什么不看看CodeLess引用应用程序示例呢?在这个项目中,您可以通过UART发送AT命令。

//www.wsdof.com/雷电竞官网登录products/smartbondtm-codeless-commands

谢谢,PM_Dialog

dennis3430
离线
最后看到:1年8个月前
加入:2019-08-27 07:42

抱歉,很多愚蠢的问题。

但我相信这与AT命令无关。

我的问题是为什么我使用函数“app_easy_gap_disconnect”来断开连接,

不能连接再一次

我想可能是我连接设备的方式不对,或者是断开连接的方式不对。

或者是我需要遵守的规则。

我将尝试再次阅读和无代码项目来找出。

谢谢

丹尼斯

PM_Dialog
离线
最后看到:1周9小时前
工作人员
加入:2018-02-08 11:03
嗨dennis3430,

嗨dennis3430,

请说明设备是否已连接?之后,请在调试模式下运行它,并在断开连接回调中添加一个断点。

谢谢,PM_Dialog