читання з послідовного з командного рядка 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 .... і у відповідь я отримую нескінченний потік, що повторює те саме повідомлення. Будь-які ідеї? Сам пристрій повинен повторювати команду, яку я надсилаю один раз, але тут все одно, що я отримую дивні відгуки.
користувач391339

Я перевірив, що відгуки не є "справжніми" за допомогою серійного аналізатора. Пристрій повторює команду лише один раз, але за допомогою вищезазначених команд я отримую шалене нескінченне повторення на термінальному виході.
користувач391339

Чи працює з двійковими даними?
ransh

@ransh - Дивіться шістнадцяткову частину відповіді. Вам в кінцевому підсумку знадобиться людина або інструмент, який розуміє або може перетворити інженер на конкретні бінарні дані.
Jirka Hanika
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.