1

我正在实现一个 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.

任何想法?

4

1 回答 1

1

你似乎把事情复杂化了——究竟ser.read()返回了什么?单个字符串?如果是这样:

read = ser.read()
if ord(read) != 0x7d:
    #escaped char
    read = ord(ser.read()) ^ 0x20
于 2013-04-23T19:48:22.817 回答