本人使用CC2540标准例程SimpleBLEPeripheral进行开发BLE控制设备,目前底层固件和通信命令已经使用TI提供的ios端lightblue软件测试通过,同时自己开发的ios端控制软件也调试OK,ios端数据通信正常;但是使用安卓端软件控制时,有明显的数据通信延时。
备注:安卓发包指令和相关数据通信结构和ios是一致的,同样的安卓软件用来控制其他BLE设备时,数据通信正常。
不知道是什么原因造成安卓端在我们现有设备上的通信延时。
moon mike:
另外,请问一下,安卓端有没有类似于lightblue一样的测试工具呀?
key dongle:
回复 moon mike:
(1)看下那个有延迟的BLE设备与其他BLE设备的连接参数等有什么差异,同时需要注意ios和android的蓝牙连接要求要求也是不同的,对比一下。
(2)似乎还没有吧。
Yan:
回复 moon mike:
moon,
你可以可以用一下TI 的packet sniffer 抓包看看你的连接参数的情况,这个能一目了然。
moon mike:
回复 key dongle:
hi, key
首先我的ios和安卓端软件发包属性都定义为WRITE_NO_RSP,同时BLE设备端软件数据写入属性定义为GATT_PROP_WRITE_NO_RSP。
1、使用ios软件连接发送数据时,数据通信没有延迟;
2、同样条件下使用andriod软件连接发送相同数据,刚开始连接时,数据通信也是正常的,大概过了几秒钟之后,数据通信开始出现明显的延迟。
对比了一下其他BLE设备的连接参数,没有发现什么异常,另外,您提到的ios和android的蓝牙连接要求要求也是不同的,这个能明细一下嘛,我不太了解这部分差异。。
thanks。。。。
moon mike:
回复 Yan:
hi,Yan
我用packet sniffer抓包的情况如下,但是不知是否正常。
貌似用packet sniffer抓包,很多数据包都捕获不到。
Yan:
回复 moon mike:
moon,
从这个图来看,都是正常的, 50ms的connection interval。
之后有没有connection update 的请求呢?
moon mike:
回复 Yan:
hi,Yan
正常通信时的抓包截图:
异常数据通信时抓包截图:
我感觉像是手机软件的问题,不是我BLE设备底层软件的问题,您觉得呢?
key dongle:
回复 moon mike:
参考附件P22,看到ios对连接时间参数要求相对较严。
moon mike:
回复 Yan:
手机对BLE设备发包一段时间之后,有connection update 的请求。
key dongle:
回复 moon mike:
参考附件P22,可看到ios对蓝牙连接参数相对较严的。