连接后没有服务和特征值
时间:10-02
整理:3721RD
点击:
这个故障很偶发,我们蓝牙协议是1.4的,目前只在两个设备上发现了,每个设备发现一次,具体现象为:连接上以后,没有特征值和服务,在超时时间内一直没有断开,超时断开后,可以正常广播,再次重连时,也是没有特征值和服务。用我们自己的APP或者Lightblue,情况都是一样的,抓包图如下:
从上图可以看出,Master发了exchange_MTU_Req后,Slaver没有回应exchange_MTU_Rsp。这些操作应该都是最低层的,我们是不参与的,那么什么情况会出现这种情况呢?
这个抓包的数据是对的,在连接状态下,两个设备没有数据的交互的情况下,主从机按照设定的连接参数进行握手,也就是按照一定的连接间隔相互发送空数据。抓包的数据是这样理解的,上图说明你没有在连接时交换数据而已。
这是正常设备的抓包图,同样是用lightblue连接的,和故障的差别是:在主机发了ATT_Exchange_MTU_Req后,从设备会回个ATT_Exchange_MTU_Rsp的包,然后再读服务和特征值,故障时刻就只有主机发包过程,没有从设备回包的过程了。这个过程都是L2CAP层,我们怎么控制呢?或者说怎么会影响到呢?
Hi Bibo:
我也遇到这个问题,你那边找到原因了没?
谢谢!