Правильный способ получения передачи Bluetooth в Android (стоп-бит)

#android #bluetooth #data-transfer

#Android #bluetooth #передача данных

Вопрос:

Я пытаюсь получить некоторые данные с датчика через Bluetooth. Датчик отправляет мне 8-битные пакеты. Проблема в том, что данные имеют разную длину (несколько раз по 8 бит), поэтому я не могу определить конец данных.

Теперь я добавляю строку вместе и проверяю возврат каретки, но проблема в том, что это специфично для моего датчика (в конце строки у меня возврат каретки).

Данные датчика для одного измерения выглядят так:

 547.8  5.688  22.40  .0000 .0000  .0000 rn
547.8  855.688  22.40  .0000 .0000  .0000 rn
  

Я отправляю данные этого датчика каждую секунду на устройство Android. Android-устройство получает 8-битные фрагменты, но я не могу обнаружить стоп-бит.

Есть ли способ обнаружить стоп-бит или что-то в этом роде, когда я получил все данные для одного ввода?

Я получаю передачу по Bluetooth, как в примере Bluetooth-чата Android.

Спасибо, Тони

Ответ №1:

В данных всегда должен быть способ найти конец каждого блока, и вы просто продолжаете читать, пока эта точка не будет найдена. Часто это целая строка (заканчивается новой строкой), как здесь, или это может быть значение счетчика в первых одном или двух байтах (или символах). Нельзя полагаться на данные, поступающие за одно чтение или аналогичные.

Обратите внимание, что «стоп-бит» используется в физических последовательных кабелях и появляется после каждого байта, поэтому, если он вам здесь не нужен.