シリアル通信で制御コードを含むデータの送信/受信する簡易的な方法です。
ここでは、pyserialを使用します。
以下は、Armadillo-640を使って、RS232Cインタフェースで通信する例で説明します。
1. pythonとpyserialのインストール
Armadillo-640をインターネットに接続可能なネットワークに接続して、下記コマンドでpythonとpyserialをインストールします。
root@armadillo:~# apt-get update
root@armadillo:~# apt-get install python3
root@armadillo:~# apt-get install python3-pip
root@armadillo:~# python3 -m pip install pyserial
2. 制御コードを含むデータ送信の方法
例として、下記のようなpythonスクリプトファイル(seri_out.py)を作成します。
Armadillo-640のRS232Cインタフェースのデバイスファイル名:/dev/ttymxc2
ボーレート:38400
送信データ:"Hello"というテキストをSTX(制御コード:0x02)、ETX(制御コード:0x03)で囲ったデータ
seri_out.py
import serial
ser = serial.Serial('/dev/ttymxc2', 38400)
cmd = bytearray([0x02,0x48,0x65,0x6c,0x6c,0x6f,0x03])
ser.write(cmd)
補足)cmd = bytearray([0x02,0x48,0x65,0x6c,0x6c,0x6f,0x03])の行について
bytearray内の16進数は、下記に対応しています。
0x02:STX(制御コード)
0x48:H(0x48)
0x65:e(0x65)
0x6c:l(0x6c)
0x6c:l(0x6c)
0x6f:o(0x6f)
0x03:ETX(制御コード)
下記のようにコマンドを実行すると、"Hello"というテキストをSTX(制御コード:0x02)、ETX(制御コード:0x03)で囲ったデータが送信されます。
root@armadillo:~# python3 seri_out.py
3. 制御コードを含むデータ受信の方法
例として、下記のようなpythonスクリプトファイル(seri_in.py)を作成します。
Armadillo-640のRS232Cインタフェースのデバイスファイル名:/dev/ttymxc2
ボーレート:38400
受信データ:7Byte受信すると表示する
seri_in.py
import serial
ser = serial.Serial('/dev/ttymxc2', 38400)
res = ser.read(7)
print(res)
下記のようにコマンドを実行後、7Byte受信すると受信データを表示します。
root@armadillo:~# python3 seri_in.py
上述のseri_out.pyで、"Hello"というテキストをSTX(制御コード:0x02)、ETX(制御コード:0x03)で囲ったデータ(7Byte)を受信すると、下記のように表示されます。
b'\x02Hello\x03'