В Linux я хочу отправить командную строку (т.е. некоторые данные) на последовательный порт (содержащий управляющие символы) и прослушать ответ (который также обычно может содержать управляющие символы).
Как я могу сделать это как можно проще в Linux? Пример ценится!
serial-port
Alex
источник
источник
Ответы:
Все устройства в Unix сопоставлены с файлом устройства, последовательные порты будут
/dev/ttyS0
/dev/ttyS1
....Сначала посмотрим на разрешения для этого файла, давайте предположим, что вы используете
/dev/ttyS1
.ls -l /dev/ttyS1
Вам понадобится доступ для чтения и записи. Если это общая система, вам следует рассмотреть последствия безопасности, открывающие ее для всех.
Очень простой грубый метод записи в файл - использовать простую
echo
команду.и читать
Вы можете запустить кошку в одном терминале, а эхо - во втором.
Если все происходит бессмысленно, то перед началом отправки может потребоваться настройка скорости передачи, битовых настроек.
stty
сделаю это. !! ПРИМЕЧАНИЕ stty будет использовать stdin в качестве дескриптора файла по умолчанию для воздействия.Эквивалентные команды.
Это может быть достаточно для того, чтобы написать что-нибудь и войти? Не уверен, что вы пытаетесь достичь.
Для более интерактивного, помните, ваш подход к настройкам по умолчанию будет использовать
minicom
это просто программа, которая делает все, что я упомянул до сих пор. (похоже на гипертерминал в Windows, вы можете быть знакомы).Промежуточное решение, будет использовать терминальную программу, например,
screen
которая будет работать на последовательном устройстве.man screen
man minicom
man stty
за дополнительной информациейисточник
# stty -speed 38400 -f /dev/ttyUSB1
возвращаетсяstty: invalid argument '-speed'
Все, что вам нужно сделать, это открыть два терминала. В первом терминале у вас
cat
все с устройства, напримерв другом терминале вы можете отправлять произвольные шестнадцатеричные символы и текст в терминал, например, следующим образом:
Команда
echo -e
включает интерпретацию обратной косой черты.Разумеется, необходимо убедиться, что (i) последовательные настройки (скорость, длина слова, ctrl потока и т. Д.) Верны и (ii) последовательное устройство (на другом конце) не блокируется.
источник
Программы, которые общаются с последовательными устройствами:
или из оболочки вы можете сделать:
источник
exec 99<&-
илиexec 99>&-
должны быть использованы. Или возможно оба?Это может быть лучшим подходом:
источник
Вы можете читать и записывать на устройство одновременно:
Ваше сообщение будет отправлено на второй
cat
изstdin
, а первыеcat
реле ответ наstdout
, превращая ваш терминал в чат.Чтобы закончить
ctrl-c
,fg
затемctrl-c
снова запустите .источник