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

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

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

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

547.8  5.688  22.40  .0000 .0000  .0000 \r\n
547.8  855.688  22.40  .0000 .0000  .0000 \r\n

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

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

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

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

1 Ответ

1 голос
/ 03 ноября 2011

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

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

...