Линейная программа Linux, последовательная передача (COM-порт), Hex

8181
Lyndon White

Поэтому мне нужна программа, которую я могу запустить на встроенном Linux (OpenWRT 8.09), через командную строку, я должен быть в состоянии передавать 8N1, мне нужно передавать в HEX (не ascii,) и предпочтительно также в десятичном виде.

Насколько я могу судить, микроком и пикоком не передают гекс.

Редактировать пояснение: я хочу ввести данные в программу в шестнадцатеричном формате, и пусть она отправляет двоичное (8N1) представление каждой шестизначной шестнадцатеричной пары.

3
Я думаю, вы имеете в виду, что он должен передавать файлы в двоичном формате, а также (или вместо) ASCII. pavium 14 лет назад 2
Не файлы, я хочу посылать байты, которые я ввожу с клавиатуры, как br @ ys ternimal в Windows. Кроме того, я не могу просто отправить ascci эквиваленты, как некоторые операции, которые мне нужны, чтобы отправить corrispongd без печатных символов Lyndon White 14 лет назад 0
@oxinabox: файлы, данные, что угодно. чтобы уточнить, вам нужен режим передачи BINARY вместо режима ASCII, и вы хотите иметь возможность вводить данные для передачи в шестнадцатеричном виде. quack quixote 14 лет назад 1
8N1 = 8 битов данных, без битов четности и 1 стоповый бит. Peter Mortensen 14 лет назад 0

3 ответа на вопрос

1
John T

Если программа не позволяет передавать в шестнадцатеричном формате, есть обходные пути. Вы можете передать информацию, odчтобы преобразовать ее в гекс перед отправкой в ​​microcom или picocom.

например, преобразовать «некоторый текст» в шестнадцатеричный код:

эхо "некоторый текст" | od -tx1 | вырезать -c 8- | tr-d ""
к сожалению, od не включен в дистрибутив opnwrt - для этого потребуется перекомпиляция ОС. openwrt не очень хорош, я думаю, что установка debian или даже freebsd может быть лучшим вариантом, хотя это будет означать перенос и кросс-копирование Lyndon White 14 лет назад 0
@oxinabox: на чем работает openwrt? Вы могли бы кросс-компилировать `od` для среды openwrt, а затем, если он находится на маршрутизаторе,` scp` - просто двоичный файл по сети. quack quixote 14 лет назад 0
Могу ли я получить больше информации о том, как сделать этот трубопровод? Я создал специальную программу, которая преобразует шестнадцатеричное или десятичное число или binery, взятые в качестве параметра, в соответствующий поток binery. Как мне передать это через com программу? Lyndon White 14 лет назад 0
1
srnka

Попробуйте использовать CuteCom: http://cutecom.sourceforge.net/

Это мертвый проект, но он отлично работает и может показывать шестнадцатеричное представление символов.

Но он графический, поэтому вы не можете использовать его во встроенном Linux (если у вас там нет поддержки X и QT4).

0
MarSoft

Я думаю, что sstermдолжно работать на вас. Он написан на Python (что, вероятно, плохо), но основан на консоли и поддерживает шестнадцатеричный ввод и вывод.

Вы можете запустить его так:

ssterm /dev/ttyAMA0 -b 9600 -i hex -o split 

Затем он должен прочитать шестнадцатеричные символы из стандартного ввода, преобразовать каждые 2 символа в байт и отправить этот байт в последовательный.

Также он будет считывать данные с устройства и отображать их hexdumpаналогично: шестнадцатеричное представление слева и ascii-представление справа.

Похожие вопросы