Я новичок в разработке BLE. Я хочу отправить большой объем данных через соединение BLE с максимальной пропускной способностью.
У меня есть сервер GATT, работающий в Linux, и клиент, работающий в качестве приложения на Android. Я создал собственную характеристику с максимально допустимым размером (512 байт). Я запрашиваю его из приложения с операцией чтения. Каждый раз, когда я получаю вызов для чтения на стороне сервера, я изменяю его значение до тех пор, пока не закончу со всеми данными (я знаю, что это не лучший способ, но сейчас это не проблема).
Что касается параметров соединения с использованием android requestConnectionPriority (CONNECTION_PRIORITY_HIGH), я могу видеть, что они пытаются согласовать интервал соединения 7,5 мс, но по какой-то причине он изменяется до 15 мс и остается там. Может быть, мой телефон не поддерживает его, но я так не думаю.
Следующая и главная проблема - MTU. Используя hcidump, я вижу, что они начинают согласовывать MTU, поскольку я вижу Запрос MTU от клиента со значением 517 (по умолчанию) и Ответ сервера с тем же значением. Но когда я запускаю обмен данными, я вижу (используя Wireshark), что пакеты содержат только 32 байта полезной нагрузки. Я не знаю, является ли это ограничением для моего адаптера Bluetooth.