7

16 進コマンドで制御できるハードウェアを使用しています。ASCII コマンドを使用する他のデバイスの telnet 制御に使用する Python コードのスニペットを既にいくつか持っています。

16 進コマンドを送信するにはどうすればよいですか? たとえば、skt.send('some ascii command\r')16 進数値を変更するにはどうすればよいですか?また、それらの値を格納するのに最適なデータ型は何ですか?

ありがとう。

4

2 に答える 2

13

Python 2では、文字列リテラルを使用します。

skt.send('\x12\r')

Python 3では、バイトリテラルまたはbytes.fromhex:を使用します

skt.send(b'\x12\r')
skt.send(bytes.fromhex('12 0d'))

いずれの場合も、このbytearray型は、整数とバイトリテラルを使用して作成できる可変(変更可能)型であるため、おそらく便利です。

skt.send(bytearray([0x02, 0x03, 0x00, 0x00, 0x05]))
于 2012-08-08T13:28:59.223 に答える
2

Python 3 では、優れたbytes.fromhex()機能も備えています。

>>> bytes.fromhex('AA 11 FE')
b'\xaa\x11\xfe'
>>> bytes.fromhex('AA11FE')
b'\xaa\x11\xfe'
于 2012-08-08T13:33:55.223 に答える