嗨,对话,
我正在用移动应用程序、BLE Scanner测试bms项目代码,并使用RTT来监视代码的运行。在通过绑定程序后,我想通过按移动应用的断开来断开与绑定设备的通信,但发现代码未达到bms\U任务的“case BLE\u EVT\u GAP\u DISCONNECTED:”。然而,如果我关掉手机的蓝牙,大约需要30秒,代码会达到“case BLE\u EVT\u GAP\u DISCONNECTED:”,然后最后断开通信。
问题1:在关闭手机蓝牙之前,是否可以响应移动应用程序的断开连接?
问题2:30秒的计时器是什么让代码达到“case BLE\u EVT\u GAP\u DISCONNECTED:”?好像不是监控定时器,conn\u params->sup\u timeout?因为BLE\ u SUPERVISION\ u TMO\ u TO\ u MS(conn\ u params->sup\ u timeout)=20000,而不是30000。
Q3在bms项目代码的handle\ evt\ gap\ connected()中,定时器“conn\ pause\ peripheral”的用途是什么?
谢谢你的帮助。
设备:
你好nigelyang,
关于第一个问题,这取决于移动电话应用程序的用户界面。从你关掉手机的蓝牙到代码到达BLE\u EVT\u GAP\u DISCONNECTED,大概需要30秒。请注意,主设备只发送一次断开或终止消息,如果从设备没有接收到,则不会再次发送。监控超时为30秒,符合蓝牙规范。请检查handle\u evt\u gap\u connected()函数,您将看到在5000次滴答声之后,conn\u pause\u timer\u cb()将被触发。此函数用于更新连接参数。
谢谢,下午好
嗨,对话,
在第一个问题之后,有没有办法让DA14681(bonded)知道与手机应用程序的断开连接?因为代码无法到达BLE\u EVT\u GAP\u DISCONNECTED。如果手机应用被用户关闭,SDK中没有任何响应机制?我需要知道中央和外围之间不再通信的意义,然后关闭电源以节省电池电量。
谢谢你的帮助
你好nigelyang,
您的问题与移动应用程序的实现有关,而与SDK机制无关。正如我在上一篇文章中已经提到的,移动应用程序只会发送一次断开或终止消息,如果外设无法接收到,则不会再次发送。请尝试使用嗅探器以确保移动应用程序发送断开连接/终止消息,好吗?亚博国际官网平台网址
谢谢,下午好