Central 与 Peripheral 连接后。Central 能很快知道 Peripheral 断电引起的断开连接?
主机烧录 Central , 从机 烧录Peripheral
连接上我用led1亮 来标记,断开连接我用led 不亮 来标记。
实际中。连接后led1 亮了。然后,我把从机断电后要经过3~4秒 主机的led1 才不亮,就是说从机断电3~4秒后,主机才会知道已经断开了。
问题来了:
主机要怎么第一时间知道 从机因断电或者离主机太远引起的断开连接, 就不说第一时间吧,但是3~4秒有点太久了。
是不是可以连接后,然后主机通过循环读取RSSI来判断 ,如果可以,应该用什么函数,
问题就是这样, 主机要怎么第一时间知道 从机因断电或者离主机太远引起的断开连接, 就不说第一时间吧,但是3~4秒有点太久了。
亲爱的 @YAN ~~ 赶紧现身~~~
Can you please try below way
Modify below
// Go to WAITING state, and then start advertising
if( pPkt->reason == LL_SUPERVISION_TIMEOUT_TERM )
{
gapRole_state = GAPROLE_WAITING_AFTER_TIMEOUT;
}
else
{
gapRole_state = GAPROLE_WAITING;
}
To:
// Go to WAITING state, and then start advertising
// if( pPkt->reason == LL_SUPERVISION_TIMEOUT_TERM )
// {
gapRole_state = GAPROLE_WAITING_AFTER_TIMEOUT;
// }
// else
// {
// gapRole_state = GAPROLE_WAITING;
// }
可以自己写一个周期性的特征值Read事件,或者从机上实现一个心跳的Notify,主机通过传送的数据判断是否断开。
手机上底层是无法修改的,所以最好采用传送数据来判断,不等待底层异常。