Как увеличить скорость чтения GATT характеристик BLE?
Работаю над проектом передачи потока данных между устройством с Bluetooth (TI CC2650) и android. Для этого необходимо выполнять чтение GATT характеристики, в которую записывается необходимая информация с чипа, со скоростью не менее 24 кбит/с. Спецификация Bluetooth Low Energy позволяет такую скорость передачи. Работаю в Android Studio и использую стандартные библиотеки для BLE, предлагаемые студией. При запросе на чтение с Мастер устройства характеристики Slave устройства через команду mBluetoothLeService.readCustomCharacteristic() или mBluetoothLeService.readCharacteristic() время до момента, когда данные становятся доступными, составляет минимум 100 мс. При увеличении размера GATT характеристики время может достигать 1500 мс. С чем связано данное ограничение и как его можно обойти?
Характеристики же не для этого предназначены. Это не механизм скоростной передачи данных, а механизм уведомления окружающих потребителей о значениях характеристик.
Bluetooth LE и Bluetooth в частности, предлагают несколько механизмов (стандартов) для потоковой передачи данных (A2DP и т.п.).
Вообще, в готовых BLE-модулях программируется интервал отправки характеристик, ведь это влияет на энергопотребление модулем. Так что, если и оставаться в предложенной концепции забивания гвоздей микроскопом, то нужно искать способы настройки BLE-модуля.
Спасибо за ответ, к сожалению под рукой только микроскоп.
Вообще, в готовых BLE-модулях программируется интервал отправки характеристик, ведь это влияет на энергопотребление модулем. Так что, если и оставаться в предложенной концепции забивания гвоздей микроскопом, то нужно искать способы настройки BLE-модуля.
В моем случае сначала происходит соединение двух устройств, после чего клиент запрашивает у сервера значение определенных характеристик. При запросе от клиента сервер отправляет значения, которые записаны в данной характеристике. Непонятна причина, почему клиент, в нашем случае устройство андроид, редко отправляет запросы, либо долго обрабатывает полученную из характеристик информацию. На сервере менял min/max connection time, что привело к улучшению временных характеристик передачи данных, но все равно скорость остается низкой. Также увеличение MTU не привело к ощутимым результатам.
Bluetooth LE и Bluetooth в частности, предлагают несколько механизмов (стандартов) для потоковой передачи данных (A2DP и т.п.).
В BLE-модуле используется Bluetooth 4.2. В готовом Bluetooth стеке для модуля есть только возможность работы с GATT характеристиками и OAD. Возможно ли самому перейти на механизмы потоковой передачи данных?