我正在尝试制作字节帧,我将通过 UDP 发送该帧。我有类Frame,它具有属性sync、frameSize、data、checksum等。我使用十六进制字符串来表示值。像这样:
testFrame = Frame("AA01","0034","44853600","D43F")
Run Code Online (Sandbox Code Playgroud)
现在,我需要将这些十六进制值连接在一起并将它们转换为字节数组,如下所示?!
def convertToBits(self):
stringMessage = self.sync + self.frameSize + self.data + self.chk
return b16decode(self.stringMessage)
Run Code Online (Sandbox Code Playgroud)
但是当我打印转换后的值时,我没有得到相同的值,或者我不知道正确读取 python 表示法:
This is sync: AA01
This is frame size: 0034
This is data:44853600
This is checksum: D43F
b'\xaa\x01\x004D\x856\x00\xd4?'
Run Code Online (Sandbox Code Playgroud)
因此,第一个单词转换正常(AA01 -> \xaa\x01),但(0034 -> \x004D)它不一样。我尝试使用bytearray.fromhex因为我可以在字节之间使用空格,但得到了相同的结果。你能帮我通过 UDP 发送相同的十六进制字吗?