at_kazutaka.bito
2022年4月11日 9時40分
コマンドのみで、シリアル通信で制御コードを含むデータを送信する方法です。
1. ボーレートを設定
ここでは、Armadillo-640のRS232Cインタフェースで通信する場合で説明します。
ここでは、下記のように設定します。
シリアル通信するデバイスファイル:/dev/ttymxc2
ボーレート:38400
Armadillo-640上で、sttyコマンドで設定します。
root@armadillo:~# stty -F /dev/ttymxc2 38400
(本例以外の設定をする場合、デバイスファイル名、ボーレートは読み替えてください)
2. 制御コードを含むデータを送信
ここでは、echoコマンドを使ってデータを送信します。
ASCIIコードを8進数で表記することで、制御コードも送信できます。
例として、"Hello"というテキストをSTX(制御コード:0x02)、ETX(制御コード:0x03)で囲って送信します。
root@armadillo:~# echo -ne \\002\\0110\\0145\\0154\\0154\\0157\\003 > /dev/ttymxc2
\\0の後ろに、1~3文字のASCIIコードを8進数にした値を記述します。
上記のコマンドでは、下記のような対応になります。
\\002:STX(制御コード:0x02)
\\0124:H(0x48)
\\0145:e(0x65)
\\0154:l(0x6c)
\\0154:l(0x6c)
\\0157:o(0x6f)
\\003:ETX(制御コード:0x03)