Thread 中讨论的其他器件:SysConfig
您好!
我正在定制板上使用 SimpleLink 6.30.1.03。
我使用了简单的 perheral OAD 示例、并进行了以下修改:
-已将 PDU 大小更改为255
-地址模式为公共地址
-使用2个传统广播集:
advSet 1仅接受白名单中设备的连接
advSet 2接受来自所有器件的连接
发送事件 GAP_DEVICE_INIT_DONE_EVENT 时,我使用 GapAdv_enable()启用 advSet1。
当一个新的中央设备想要连接时、我按下定制板上的一个按钮、此按钮禁用 advSet1并启用 advSet2。
在中央器件成功连接后、advSet2被禁用、advSet1被启用。
当中央设备断开连接并在几分钟后尝试连接到外设时、它可以在不按按钮的情况下进行连接。
这种方法没有任何问题。
但是、当外设长时间没有连接(大约1小时或更长时间)时、连接中央设备时出现问题。
当中央设备尝试连接时、外设接收事件 GAP_LINK_established 事件。
然后、外设立即禁用 advSet1、然后没有广播集处于活动状态。
这将断开中央设备的连接、并且无法再将其连接到外设。
为了进行调试、我将 ADV 状态记录到了 UART 中。
当中央设备成功连接时、我的 UART 日志如下所示:
GAP_EVT_ADV_END_AFTER_DISABLE:启用 advSet1状态:0
GAP_EVT_ADV_SET_TERMINATED: advSet1针对 connHandle 0被禁用
GAP_EVT_ADV_START_AFTER_ENABLE:启用 advSet1
BLE_GAP_LinkEstabled():状态:0
加密成功
BLE_processGapMessage():GAP_LINK_PARAM_UPDATE 完成
当连接未成功时:
GAP_EVT_ADV_END_AFTER_DISABLE:启用 advSet1状态:0
GAP_EVT_ADV_SET_TERMINATED:在 CONN 0之后禁用高级设置0
BLE_GAP_LinkEstabled():状态:0
我可以看到、事件 GAP_EVT_ADV_START_AFTER_ENABLE 未发送。
此外、当我在智能手机上打开 BLE 应用时、器件不再可见
是否有人知道外设为什么要禁用 advSet1?
此致
Thomas