GATT特性BLE读取速度慢

Posted

技术标签:

【中文标题】GATT特性BLE读取速度慢【英文标题】:Slow reading speed of GATT characteristics BLE 【发布时间】:2018-11-26 09:12:11 【问题描述】:

我正在开发一个在蓝牙设备 (TI CC2650) 和 android 之间传输数据的项目。为此,必须以至少 24 kbps 的速度读取 GATT 特性。低功耗蓝牙规范允许这种传输速率。 我在 Android Studio 工作并使用工作室提供的 BLE 标准库。当请求从主设备读取时,使用mBluetoothLeService.readCustomCharacteristic ()mBluetoothLeService.readCharacteristic () 命令的从设备的特性至少需要 100 毫秒才能获得数据。通过增加 GATT 特性的大小,时间可以达到 1500 ms。这种限制的原因是什么?如何规避?

【问题讨论】:

Continues of this thread 【参考方案1】:

读取操作需要每个块进行一次往返。并且往返时间至少是连接间隔的一倍。

如果您改用通知,则可以非常快速地发送此类消息,因为每个连接事件都可以发送多个数据包。还可以尝试增加 mtu 并尽可能使用 LE 数据长度扩展。

【讨论】:

感谢您的回答。我尝试了通知,更改了 MTU 和连接间隔。更改 MTU 后,Android 开始浪费更多时间来处理大包。当我使用通知时,一些包丢失了。我认为Android中的问题。它无法在要求的时间内处理包裹。你知道我该如何应对吗? Android 不会丢失通知包,所以你的问题一定出在其他地方。您应该查看 hci snoop 日志(您可以在 Android 开发人员设置中将其打开,然后传输到计算机并在 Wireshark 中查看)以查看所有时间和数据包。或者更好的是,使用空气嗅探器。 是的,Android 不会丢失通知,但有时它会读取两次下一个包。例如,我发送了三个包:第一个 1,2,3,第二个 4,5,6,第三个 7,8,9。在 Android 上也收到三个包,但第一个 1,2,3,第二个 7,8,9 和第三个 7,8,9。包裹的数量总是正确的。可能,这是因为在我们的程序保存之前的包之前已经重写了包。你怎么看?

以上是关于GATT特性BLE读取速度慢的主要内容,如果未能解决你的问题,请参考以下文章

xss下载到外接硬盘下载速度慢

xss下载到外接硬盘下载速度慢

性能:Android JCIFS 文件读取速度慢

在 GATT Android 中获取 BLE 特性的值

nas 视频剪辑 读取慢

H5PY 键读取速度慢