чтение из сериала из командной строки Linux

51

У меня есть устройство с последовательным портом, которое я хотел бы проверить с помощью командной строки Linux.

Я могу использовать stty и echo для отправки команд на последовательный порт, но когда устройство отвечает, у меня нет возможности прочитать, что идет с последовательного порта. Я использую

stty -F /dev/ttyS0 speed 9600 cs8 -cstopb -parenb && echo -n ^R^B > /dev/ttyS0

отправить команду на устройство. Устройство работает и отправляет ответ через 300 мс. Как мне распечатать этот ответ на консоли с помощью командной строки?

Эрин С
источник

Ответы:

56

Так же, как с выходом. Пример:

cat /dev/ttyS0

Или же:

cat < /dev/ttyS0

Первый пример - это приложение, которое открывает последовательный порт и передает то, что оно читает с него, на свою stdoutконсоль. Второй - это оболочка, направляющая трафик последовательного порта в любое приложение, которое вам нравится; это конкретное приложение затем просто передает stdinего stdout.

Чтобы лучше видеть трафик, вы можете предпочесть шестнадцатеричный дамп:

od -x < /dev/ttyS0
Джирка ханика
источник
илиsocat stdio /dev/ttyS0
pstanton
Я отправил команду на устройство, с которым я работаю. Команда: echo "1GAINS" | sudo tee / dev / ttyUSB0 .... и в ответ я получаю бесконечный поток, повторяющий одно и то же сообщение. Есть идеи? Само устройство должно повторить команду, которую я посылаю один раз, но здесь я получаю странную обратную связь.
user391339
Я проверил, что обратная связь не является "реальной", используя последовательный анализатор. Устройство выводит команду обратно только один раз, но, используя приведенные выше команды, я получаю безумное бесконечное повторение на выходе терминала.
user391339
Работает ли это с двоичными данными?
ранш
@ransh - Смотрите часть ответа в шестнадцатеричном дампе. В конечном итоге вам понадобится человек или инструмент, который понимает или может реконструировать эти конкретные двоичные данные.
Джирка Ханика