I'm working on a project to transfer data between a Bluetooth device (TI CC2650) and android. To do this, it is necessary to perform a reading of the GATT characteristic at a speed of at least 24 kbps. The Bluetooth Low Energy specification allows this transfer rate. I work in Android Studio and use standard libraries for BLE offered by the studio. When requesting a read from a master device, the characteristics of a slave device using the mBluetoothLeService.readCustomCharacteristic ()
or mBluetoothLeService.readCharacteristic ()
command is at least 100 ms until the data is available. By increasing the size of the GATT characteristics, the time can reach 1500 ms. What is the reason for this limitation and how can it be circumvented?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The read operation requires one roundtrip per chunk. And the round trip time is at least one multiple of the connection interval.
If you use notifications instead, you can pump such messages very fast since multiple packets can be sent every connection event. Also try increase mtu and use LE data length extention when possible.