まず、シリアルポートから受信したデータを'response'に読み込ませています。
python
1response = binascii.b2a_hex(ser.readline())
次に、取得したデータの中の必要な部分を切り出します。
python
1data = response[30:38].decode('utf-8')
最後に、出力をしています。
python
1print('ID:%s'%(data))
ここでシリアルポートからくるデータは'ab'なのですが、
'utf-8'でデコードしているにも関わらず、
'6162'とバイナリデータをただ文字列に変換しただけのデータが出力されてしまいます。
何かいい解決方法はないでしょうか?よろしくお願いします。
---補足1---
みなさん回答ありがとうございます。
python
1res0 = ser.readline() 2res1 = binascii.b2a_hex(res0) 3res2 = res1.decode('utf-8')
として受信して見た結果が以下の通りです。
python
1b'~\x00\x10\x90\x00\x13\xa2\x00AQ\xed\x8c\x15\xe2\x01ab\r\n' 2b'7e0010900013a2004151ed8c15e20161620d0a' 37e0010900013a2004151ed8c15e20161620d0a
以上引き続きよろしくお願いします。
回答3件
あなたの回答
tips
プレビュー