⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
11个职位/0个新职位
最后一篇文章
杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
断开延迟

考虑这样一个场景:主服务器和从服务器协商一个20秒的监控超时。通过观察rwble.c中这些事件的顺序,如果检测到5秒的链路不活动(在管理器超时之前),则从机有明确断开连接的代码:

/*最后一个可重复的事件。用于应用程序与BLE活动的同步*/
typedef枚举
{
BLE\ U EVT\ U SLP公司,
请注意,
BLE\ U EVT\ U RX公司,
BLE\ U EVT\ U TX公司,
好的时间,
最后一刻,

}最后一次检查;

链接在t=0时断开,使用调试器断点,我观察到从代码在t=5秒时通过内核消息GAPC\u disconnect正确地启动了一个断开连接。

然而,我在调试器中还观察到的是,GAPC\u DISCONNECT\u IND确认断开连接的完成,直到t=10左右才发生。使用包嗅探器,我还看到广告在t=10之后才会恢复。即使在适当的时间发出了GAPC\ U断开指令,实际的断开似乎也被延迟了。在我们的情况下,重要的是,断开发生立即如果上述情况发生。

谢谢,

设备:
PM\U对话框
离线
最后一次见到:13小时51秒前
工作人员
已加入:2018-02-08 11:03
嗨,杰米谢伯特,

嗨,杰米谢伯特,

最可能的原因有这种行为is due to the connection interval. Which are you configurations for the connection interval? If the connection interval is too big and you are not using latency, I would suggest you to have smaller connection interval and increase the latency. Please check the attached screenshots. When the slave have nothing to send the connection interval is around at 2200ms (2000ms latency + 200ms conn interval). But when the slave have something to send, in your case the disconnection message, the device will wake up and the connection interval will be around t 200ms.

谢谢,下午好

附件:
杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
你好Dialog,

你好Dialog,

谢谢你的信息。在我们的场景中,CI非常短,为11.25ms,从机延迟为0。

当主设备不再向从设备发送空闲数据包时,您是否在长时间的监控超时期间尝试过该实验?

杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
Is it possible that the delay

有没有可能因为从机不能传输断开连接命令而发生延迟,因为主机和从机不再交换空闲?

PM\U对话框
离线
最后一次见到:13小时51秒前
工作人员
已加入:2018-02-08 11:03
嗨,杰米谢伯特,

嗨,杰米谢伯特,

不,我从来没有试过这个实验。你能再澄清一点吗?您正在使用哪些配置?

谢谢,下午好

杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
试试这个:

试试这个:

1与11.25ms CI和20s ST(主从)建立连接。
2Slave从连接开始设置5(或更多)秒的计时器。
三。在计时器结束前,断开天线与主机的连接
4当计时器过期时,从机发送GAPC\u DISCONNECT\u CMD。

从应用程序何时接收到GAPC\u DISCONNECTED\u IND?

我们希望这种情况立即发生,但它似乎是严重拖延。

PM\U对话框
离线
最后一次见到:13小时51秒前
工作人员
已加入:2018-02-08 11:03
嗨,杰米谢伯特,

嗨,杰米谢伯特,

当您发送一个GAPC\u DISCONNECT\u CMD命令时,响应是一个GAPC\u DISCONNECT\u IND事件,该事件在连接完成时触发,当操作完成时,您将得到一个GAPC\u CMP\u EVT事件。GAPC\u DISCONNECT\u IND事件将被发送到应用程序任务,以通知链接已断开。收到此消息还意味着与链接相关的任务实例已被清理,并且在建立新连接之前,无法再使用相应的任务实例。你的意思是当你从对等的外围设备上断开主设备时,你没有得到GAPC\u disconnect\u IND吗?

谢谢,下午好

杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
PM\U对话框,

PM\U对话框,

我们确实收到了GAPC的断开指示,但不是马上。似乎要过几秒钟指示才会到达。这几乎就像是系统试图通过空中将断开连接指示发送回主设备,但是由于没有接收到主设备的帧,所以在放弃并断开连接之前会有一点延迟?

杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
对话框,

对话框,

我与你们的一位工程经理进行了通信,他的建议是发送以下信息,而不是发送GAPC\u DISCONNECT,从而解决了延迟问题。

ke_msg_send_basic(LLC_LE_LINK_SUP_TO,ke_BUILD_ID(TASK_LLC,gapc_get_conhdl(conn_idx)),TASK_NONE);

杰米谢伯特
离线
最后一次见到:5个月3周前
已加入:2014-10-24 14:17
对话框,

对话框,

我与你们的一位工程经理进行了通信,他的建议是发送以下信息,而不是发送GAPC\u DISCONNECT,从而解决了延迟问题。

ke_msg_send_basic(LLC_LE_LINK_SUP_TO,ke_BUILD_ID(TASK_LLC,gapc_get_conhdl(conn_idx)),TASK_NONE);

PM\U对话框
离线
最后一次见到:13小时51秒前
工作人员
已加入:2018-02-08 11:03
嗨,杰米谢伯特,

嗨,杰米谢伯特,

很高兴你解决了你的问题,谢谢你的指示。

谢谢,下午好