从机在广播状态,实际不广播
时间:10-02
整理:3721RD
点击:
1. 基于peripheral做的应用,在稳定性测试时,发现以下现象:
频繁的用手机连接断开和peripheral的连接,几十次以后,会出现设备不能重新恢复广播的情况,设备重启才能恢复。
针对上述现象做软件记录,发现断开后,协议栈 gaprole 回调的状态确实在 广播状态,但是实际设备并没有广播。
这种现象可以重现,请问怎么做可以避开这个问题?
备注:1 设备 CC2541
2 协议栈是最新的协议栈
3 多款安卓和苹果手机都可以重现此问题
产品等着量产,急待回复,谢谢。
怀疑是程序逻辑问题,比如说,如果程序里还运行其他任务,占用了比较长的时间【几个ms】,可能会导致协议栈来不及处理而造成该问题。请排查一下这部分
Viki Shi,
你好,感谢你的解答,如你所描述,假如是程序占用时间过长,从而造成协议栈状态出错,那么我程序里可以通过什么来获取当前协议栈状态出错了呢?
个人认为更好的办法应该是减少长时间的任务占用,比如说,如果是因为数据传输,那可以降低单次数据量。你的情况,可以选择断开连接一定次数后,让器件复位恢复广播
正常使用过程中,很难出现这个现象,高频率快速才会出现。
断开一定次数器件复位恢复,是可以间接解决这个问题,但是用户体验不是太好。
软件没有办法知道协议栈是否运行异常吗?