Python 远程控制时Xbee LED闪烁不一致

Python 远程控制时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

我试图使用XBee上的路由器闪烁LED,该路由器由协调器API XBee控制。协调器Xbee连接到运行以下程序的Raspberry Pi。LED持续闪烁整整4个周期,但在此之后,它闪烁不一致(卡住,不亮,然后超快速闪烁,再次卡住)。有时,即使在程序停止后,LED也会在几秒钟后闪烁。是什么导致了延迟和不一致,我没有弄清楚。如果有人给我指点,我将不胜感激。谢谢 波特率:9600

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)已满?我怀疑这是缓冲区溢出。您每秒发送一次小数据包。