2

pyUSBバージョン 1.6というモジュールを使用しており、センサーと通信しようとしています。

接続をセットアップし、センサーの ROM から読み取ることができます。接続されたセンサーはマスター/スレーブ関係になるため、必要なデータを受信するにはセンサーにメッセージを送信する必要があります。

現在、write関数は文字列または読み取り専用バッファーのみを受け入れることができます。USB デバイスに 16 進バイト0xFE, 0x04, 0x00, 0x03, 0x00, ,0x010xD5送信する必要があります0xC5
それを文字列または読み取り専用バッファとしてエンコードする方法がわかりません。

write メソッドを呼び出す方法は次のとおりです。これは彼らが提供するサンプルコードです。

# write bytes (serial mode)

print h.write('Hello world!\r\n")

16 進数のバイトを転送するにはどうすればよいですか?

4

1 に答える 1

6
byte_ints = [0xFE, 0x04, 0x00, 0x03, 0x00, 0x01, 0xD5, 0xC5] # Python recognises these as hex.
byte_str = "".join(chr(n) for n in byte_ints)

または、文字列内の 16 進数の各ペアの前に \x を置くこともできます。

'\xfe\x04\x00\x03\x00\x01\xd5\xc5'

Python 3 では、次のようにする必要があります。

b'\xfe\x04\x00\x03\x00\x01\xd5\xc5'

(つまり、ユニコードではなくバイト文字列)

于 2011-06-15T17:47:42.907 に答える