Блютуз 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
Вы должны быть в состоянии читать и писать на сенсор, как и в случае с другим типом последовательного порта.