ЭКРАН:
ПРИМЕЧАНИЕ : насколько я знаю, экран фактически не может отправлять гекс.Чтобы сделать это, используйте echo
или printf
. Я использовал предложения из этого поста для записи в последовательный порт, а затем использовал информацию из другого поста для чтения изпорт, со смешанными результатами.Я обнаружил, что использование экрана является «более простым» решением, поскольку оно открывает сеанс терминала непосредственно с этим портом.(Я пишу проще в кавычках, потому что screen имеет действительно странный интерфейс, IMO, и требует дополнительного чтения, чтобы понять это.)
Вы можете выполнить эту команду, чтобы открыть сеанс экрана, тогда все, что вы введете, будетбудет отправлен в порт, плюс возвращаемые значения будут напечатаны под ним:
screen /dev/ttyS0 19200,cs8
(Измените приведенное выше, чтобы соответствовать вашим потребностям в скорости, четности, стоп-битах и т. д.) Я понимаю, что экран не«Линукс командная строка», как конкретно просит пост, но я думаю, что это в том же духе.Кроме того, вам не нужно каждый раз вводить эхо и кавычки.
ECHO:
Следуйте ответу преторианского дроида.ОДНАКО, это не работало для меня, пока я также не использовал команду cat (cat < /dev/ttyS0
) , пока я отправлял команду echo.
PRINTF:
Я обнаружил, что можно также использовать команду printf '% x':
c="\x"$(printf '%x' 0x12)
printf $c >> $SERIAL_COMM_PORT
Снова, для printf, перед отправкой команды запустите cat < /dev/ttyS0
.