Python 远程控制时Xbee LED闪烁不一致
我试图使用XBee上的路由器闪烁LED,该路由器由协调器API XBee控制。协调器Xbee连接到运行以下程序的Raspberry Pi。LED持续闪烁整整4个周期,但在此之后,它闪烁不一致(卡住,不亮,然后超快速闪烁,再次卡住)。有时,即使在程序停止后,LED也会在几秒钟后闪烁。是什么导致了延迟和不一致,我没有弄清楚。如果有人给我指点,我将不胜感激。谢谢 波特率:9600Python 远程控制时Xbee LED闪烁不一致,python,led,xbee,blink,Python,Led,Xbee,Blink,我试图使用XBee上的路由器闪烁LED,该路由器由协调器API XBee控制。协调器Xbee连接到运行以下程序的Raspberry Pi。LED持续闪烁整整4个周期,但在此之后,它闪烁不一致(卡住,不亮,然后超快速闪烁,再次卡住)。有时,即使在程序停止后,LED也会在几秒钟后闪烁。是什么导致了延迟和不一致,我没有弄清楚。如果有人给我指点,我将不胜感激。谢谢 波特率:9600 from xbee import XBee, ZigBee import serial import time ser
from xbee import XBee, ZigBee
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 9600)
xbee = ZigBee(ser)
while True:
try:
xbee.send('remote_at',
frame_id='A',
dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
dest_addr='\xFF\xFE',
options='\x02',
command='P2',
parameter='\x05')
time.sleep(1)
xbee.send('remote_at',
frame_id='A',
dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
dest_addr='\xFF\xFE',
options='\x02',
command='P2',
parameter='\x04')
time.sleep(1)
except KeyboardInterrupt:
break
xbee.send('remote_at',
frame_id='A',
dest_addr_long='\x00\x00\x00\x00\x00\x00\xFF\xFF',
dest_addr='\xFF\xFE',
options='\x02',
command='P2',
parameter='\x04')
ser.close()
首先,通过设置
dest\u addr\u long
(并且根本不设置dest\u addr
),尝试从广播数据包切换到单播数据包。我记得广播数据包总共被发送了三次,以确保它们在远程设备上被接收。您的网络上可能没有太多流量,但我认为您将看到单播的时间安排更可靠
第二,尝试切换到115200个基点。它将简化Raspberry Pi和协调器之间的通信,并消除可能的串行缓冲延迟。不幸的是,这并没有解决问题。在深入阅读数据手册()之后,我发现:P10:“如果DI缓冲区已满,则必须实施硬件或软件流控制,以防止溢出(主机和模块之间的数据丢失)。”P11:“当接收到射频数据时,数据进入DO缓冲区,并通过串行端口发送到主机设备。一旦DO缓冲区达到容量,任何额外的传入RF数据都将丢失”。有没有办法知道哪个缓冲区(DI或DO)已满?我怀疑这是缓冲区溢出。您每秒发送一次小数据包。