XBee から送信されたフレームを読み取る Python スクリプトを実装しています。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 を使用できないことがわかります。それを解決するために私がしなければならないことを知っていますか?
また、次のように 4 バイトをまとめて読み取っていました。
read = ser.read(4)
...そして以前と同じようにしようとします(次の位置を取得しようとします(read[x+1]
))が、同様のことを教えてくれます...
変換は、XOR
次の char および への変換で構成され0x20
ます。
何か案が?