私はしばらくこれに固執しています。Pythonのデバイスにシリアルコマンドを送信する必要があります。形式の例を次に示します。
ser = serial.Serial('/dev/ttyO1',baudrate=115200)
ser.write('\xAA\x04\x05\x00\x00\x00')
.write(〜hex bytes〜)の形式を使用して通信すれば、問題なく通信できます。
ただし、より大きなデータのチャンクを受信する必要がある場合、デバイスの通信プロトコルは物事をパケットに分割し、各パケットの受信を確認する必要があります。パケットごとに個別のser.write()コマンドを入力しているときに手根管症候群になるのを防ぐために、パケットのカウント/確認を行うループを作成します。これが私が持っているものです:
for n in range(0,num_packets,1):
x = '\\x'"%0.2x"%(n)
print('Picture Ready Host Ack')
ser.write('\xAA\x0E\x00\x00' + x + '\x00')
time.sleep(.1)
response = ser.read(ser.inWaiting())
image_write(response,base_path, filename)
ただし、二重スラッシュ('\ x'..)は2つのスラッシュを与えます。
'\xaa\x0e\x00\x00\\x05\x00'
変数xを定義すると、単一のスラッシュ('\ x'...)が問題を返しますが、次のようになります。
ValueError: invalid \x escape
...ヘルプ?