我正在开发一种使用蓝牙低功耗与BLE设备通信的应用程序。问题是项目需要高度连续的数据交换才能工作。
目前我开发了4个片段,它们共享相同的BluetoothGatt信息和相同的数据阵列。当我连接到BLE设备时,我将连接优先级设置为高,然后我开始写入循环,每50分钟写入数据,通常只有4个字节。
同时我开始阅读并更新界面。 我注意到如果我停止写入,我每50毫升收到一个数据包,但如果我让写入循环工作,读取时间从50毫升增加到100或更多。 这不是一个真正的大问题,但它会减少所有的系统性能。
我在互联网上寻找解决方案,但我没有发现什么,除了连接优先级已经帮助了我很多,我想知道是否有人从未管理过这样的问题以及他是如何做到的。感谢
答案 0 :(得分:1)
您正在使用的BLE设备有一些名为"连接间隔"。它设置在设备的固件中。最小值为7.5毫秒,但通常设置为30毫秒或更长(iOS甚至不会在低于20-30毫秒的时间间隔内工作,否则它将丢失数据包)。
因此,当设计BLE设备固件时,连接间隔设置为某个值是安全的并且适用于大多数移动设备,并且对于节省电池也非常重要。
这意味着您可以在每个连接间隔内转移到设备或从设备转移一次,如果是读取,写入或通知,则无需转移。
某些设备具有允许更改连接间隔的配置设置,但如果您只是想知道发生了什么,那就是它。