#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:
В данных всегда должен быть способ найти конец каждого блока, и вы просто продолжаете читать, пока эта точка не будет найдена. Часто это целая строка (заканчивается новой строкой), как здесь, или это может быть значение счетчика в первых одном или двух байтах (или символах). Нельзя полагаться на данные, поступающие за одно чтение или аналогичные.
Обратите внимание, что «стоп-бит» используется в физических последовательных кабелях и появляется после каждого байта, поэтому, если он вам здесь не нужен.