如何以十六进制字节格式编码数据包?

时间:2019-07-10 22:32:56

标签: python hex ascii encode

我正在写一个可以与正在设计的新系统的设备通信的类。我需要发送以十六进制构造,以字节编码的命令。我在这里找到了一些非常接近的答案,但是我总是遇到解决方案的问题。我认为这里缺少一些愚蠢的东西。

我需要发送的消息看起来像这样(这也是我用来显示当前遇到的问题的示例): \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'

结果与以前相同,所以我在这里做错了什么?

0 个答案:

没有答案