如何使用python将接收到的数据从串口解密到USB?

时间:2015-07-14 11:13:46

标签: python encryption raspberry-pi embedded-linux zigbee

当我们从连接到PC的zigbee发送消息到另一个连接到树莓派板的Zigbee时。我们收到一条消息,类似于我从Zigbee Connected PC发送的消息 例如:* Hello World *,但是在接收器部分我正在使用加密数据获取Hello World(带有Header位和Check-sum位) 但我只需要接收器终端中的Hello World 在接收器终端中Zigbee连接到树莓派用于接口,我使用串口转USB电缆。 这是我用于Serial to USB的简单python代码

import serial
from time import sleep

ser = serial.Serial('/dev/ttyUSB0', 9600, rtscts=1, timeout=0)
while True:
       line = ser.read(ser.inWaiting())
       if len(line) > 0:
                       print line
       sleep(1)
ser.close() 

我正在获取结果类型,请求帮助

pi@raspberrypi ~/iot/XBeeAPI/Python $ python temperlm.py 
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���####��~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
~#�}3�@ȶ���#Hello World�~#�}3�@ȶ���#Hello World�
^CTraceback (most recent call last):
File "temperlm.py", line 9, in <module>
sleep(1)
KeyboardInterrupt

1 个答案:

答案 0 :(得分:0)

您的XBee模块配置为“API模式”,它使用格式化的数据包而不是“透明串行模式”,它只是直接传递串行数据。对于简单应用或串行电缆更换,透明串行模式非常棒。一旦你开始使用XBee模块做更多事情(比如发送AT命令和与网络上的多个设备通信),你通常会切换到API模式。

查看模块上的ATAP设置 - 0用于透明序列,1用于API模式,2用于“转义API模式”,其中某些字符被转义,以便更容易检测到帧的开始。

请务必阅读有关这些模式的XBee文档,以便更好地了解每种模式的差异和优缺点。