Android — данные теряются при чтении на устройстве Bluetooth rfcomm

У меня есть устройство Bluetooth, которое подключено к смартфону Android через профиль Bluetooth SPP.

После успешного подключения устройство открывает устройство rfcomm.

handle = open("/dev/rfcomm0", O_RDWR | O_NOCTTY | O_SYNC);

После успешного подключения смартфон отправляет данные на устройство.
Он отправляет 3 последовательных сообщения по несколько байтов на устройство. Это подтверждается после просмотра журнала отслеживания устройства Bluetooth.

Однако блокирующее чтение на стороне устройства Bluetooth никогда не сможет прочитать первые 2 сообщения, после чего оно прочитает все остальные сообщения.

Тот же эксперимент проводится путем написания автономного скрипта, который начинает считывать данные на устройстве rfcomm, как только SPP-соединение успешно, но и здесь результат тот же.

Пожалуйста, укажите, что может пойти не так.

0

Решение

Более или менее это была временная проблема.

Приложение на устройстве запрашивает стек Bluetooth для создания SPP-соединения с телефоном Android. При успешном соединении SPP / dev / rfcomm0 устройство создается стеком Bluetooth.

Как только канал rfcomm создан, телефон Android отправляет данные на устройство, но к этому времени приложение на устройстве не обновлялось при создании устройства rfcomm. Поскольку для rfcomm нет ридеров, стек Bluetooth сбрасывает все данные, полученные с телефона Android.

Выполняли этот эксперимент несколько раз, как только он заработал.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]