我正在写一个可以与正在设计的新系统的设备通信的类。我需要发送以十六进制构造,以字节编码的命令。我在这里找到了一些非常接近的答案,但是我总是遇到解决方案的问题。我认为这里缺少一些愚蠢的东西。
我需要发送的消息看起来像这样(这也是我用来显示当前遇到的问题的示例):
\x02\x31\x00\x00\x31\x03
我尝试过:
>>> binascii.unhexlify('023100003103')
b'\x021\x00\x001\x03'
这不是我所需要的,这里解码ASCII似乎有问题,但是我不确定。
>>> struct.pack('bbbbbb', 0x02, 0x31, 0x00, 0x00, 0x31, 0x03)
b'\x021\x00\x001\x03'
由于给出了相同的答案,所以我仍然认为这是ASCII的问题,但仍无法确认。
>>> a = [2, 49, 0, 0, 49, 3]
>>> arr = bytes(a)
>>> print(arr)
b'\x021\x00\x001\x03'
结果与以前相同,所以我在这里做错了什么?