Чтение с USB-устройства с использованием bash и raspberry pi 3? - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь поймать ответ от устройства, подключенного к USB.С этим кодом:

sudo stty -F /dev/ttyUSB0 speed 115200 cs8 -cstopb -parenb -echo
sudo stty raw; cat > /home/received.log < /dev/ttyUSB0
echo "Monitor started"

На порте готов, отправьте запрос команды на устройство

echo -en '\x5A\x00\x00\x0D\x0A\x71' > /dev/ttyUSB0

, затем прочитайте журнал и вставьте ответ в другой файл, преобразовав его должным образом xxd -plain/home/received.log> /home/output.txt

, поэтому я могу показать данные, cat -v

Но мне нужно что-то более стабильноеэтот код показывает мне эту ошибку:

stty: 'standard input': Inappropriate ioctl for device

, что странно, потому что оно работало ...

Я хотел бы перехватить ответ и сохранить его в переменной.

1 Ответ

0 голосов
/ 04 июля 2019

Я предлагаю избавиться от stty raw.

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

Если это сработало, вы можете обнаружить некоторые нежелательные побочные эффекты, такие как:

  • Backspace не стирает символ, который вы пропустили
  • control-c не завершит ваш процесс

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

FWIW, я делаю то же самое с Arduino для Mac, Windows (cygwin) и Linux (для чтения через usb / последовательный порт), и у меня не было соблазна stty raw ни в одной из этих сред.

...