我正在实现一个 Python 脚本来读取 XBee 发送的帧。PC 将接收帧并处理它们。
我有一个问题,因为我在 XBee 中使用 AP=2,所以所有帧都可以有转义字符。我想检测它们并在使用它们之前输入真实值。
这是我读取转义字节的代码片段:
read = ser.read()
if(toHex(read) != '7d'): #toHex converts a byte in Hex representation
#escaped char
read = logical_xor(ser.read(), 20) #you have to take the next character and make xor
#################################
def logical_xor(str1, str2):
return bool(str1) ^ bool(str2)
但它告诉我 str 不能用于该操作。你知道我必须做什么来解决它吗?
另外,我曾经像这样一起读取四个字节:
read = ser.read(4)
...并尝试与以前相同(尝试获得下一个位置(read[x+1]
))但它告诉我类似的事情......
转换包括XOR
生成下一个字符和0x20
.
任何想法?