web-dev-qa-db-ja.com

Linuxコマンドラインプログラム、シリアル(COMポート)送信、16進数

したがって、組み込みLinux(OpenWRT 8.09)で実行できるプログラムが必要です。コマンドラインを介して、8N1を送信できる必要があります。また、HEX(ASCIIではなく)で送信する必要があり、10進数でも送信する必要があります。

私が知る限り、microcompicocomは16進数を送信しないでください。

説明の編集:プログラムに16進数でデータを入力し、2桁の16進数ペアごとにバイナリ(8N1)抑制を送信させたい。

3
Lyndon White

ssterm はあなたのために働くはずだと思います。 Python(おそらく悪い)で書かれていますが、コンソールベースであり、16進の入力と出力をサポートしています。

次のように起動できます。

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

次に、stdinから16進文字を読み取り、各2文字をバイトに変換して、そのバイトをシリアルに送信する必要があります。

また、デバイスからデータを読み取り、それをhexdumpのような方法で表示します。左側に16進表現、右側にASCII表現です。

1
MarSoft

CuteComを使用してみてください: http://cutecom.sourceforge.net/

まだ死んだプロジェクトですが、正常に動作し、文字の16進表現を表示できます。

ただし、グラフィカルであるため、組み込みLinuxでは使用できません(XサポートとQT4がない場合)。

enter image description here

1
srnka

プログラムで16進数での送信が許可されていない場合は、回避策があります。情報をodにパイプして、microcomまたはpicocomに送信する前に16進数に変換できます。

たとえば、「一部のテキスト」を16進数に変換します。

エコー「テキスト」| od -tx1 | cut -c 8- | tr -d ""
1
John T