Блютуз rfcomm умирает после прочтения первого чанка

Здравствуйте, я пытаюсь прочитать данные с датчика (Sensaris Sensopod) через Bluetooth, и я сталкиваюсь с проблемой ниже: после многих попыток мне удалось подключиться с помощью:

hciconfig hci0 sspmode 1
sdptool add SP
rfcomm connect /dev/rfcomm0 xx:xx:xx:xx:xx:xx 1 &

а потом я использую

cat /dev/rfcomm0

и я получаю около 30 строк данных, а затем он просто ничего не делает. Когда я закрываю его с помощью ^c и снова пробую кошку, она снова ничего не показывает (команда остается открытой)

Я попробовал это на Xubuntu и Rasbian (Rpi) и получил те же результаты

1 ответ

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

rfcomm connect /dev/rfcomm0 xx:xx:xx:xx:xx:xx 1 &

использование

rfcomm bind 0 xx:xx:xx:xx:xx:xx 1

это также создаст /dev/rfcomm0 и будет связано с каналом RFCOMM номер 1 (поэтому убедитесь, что ваше устройство использует этот канал RFCOMM). После этого вы можете подключиться к нему с помощью стандартных последовательных утилит, таких как picocom или minicom, например:

picocom /dev/rfcomm0

Вы должны быть в состоянии читать и писать на сенсор, как и в случае с другим типом последовательного порта.

Другие вопросы по тегам