BluetoothGattCallback медленно обрабатывает данные с устройства BLE - PullRequest
0 голосов
/ 12 апреля 2020

Я читаю данные BLE с устройства, которое обновляет характеристики c каждые 25 мс, затем android получает уведомление каждые 25 мс через onCharacteristicChanged () обратный вызов.

Поскольку я это делаю читая и записывая вызовы одновременно, я реализовал очередь Queue (Runnable) , поэтому я не пропускаю ни одной команды чтения / записи, которую добавляю в очередь при каждом обратном вызове onCharacteristicChanged () .

Когда очередь исполняемых объектов обрабатывается, я использую onCharacteristicWrite () и onCharacteristicRead () для выполнения операции чтения / записи длиной не более 20 бит.

Проблема заключается в асинхронных обратных вызовах onCharacteristicWrite () и onCharacteristicRead () очень медленные и обрабатывают одну работоспособную очередь только каждые 100 мс. Поскольку я получаю новые данные каждые 25 мс, очередь становится все длиннее и длиннее ...

Как я могу ускорить время обработки обратных вызовов? Мой код внутри onCharacteristicRead () и onCharacteristicWrite () в основном считывает биты и транслирует их в приложение, ничего сложного, поэтому мне интересно, если это ограничение android.

Спасибо за помощь!

...