首先,我在AT模式下测试了2个XBee(系列2)的通信,并且都正常工作。
然后我将协调器更改为API模式,并在路由器处于AT模式时运行以下脚本。我成功了并收到了路由器消息。但是,我无法使路由器处于API模式并将消息发送给协调器。我不确定我是否可以只做简单的发送命令,或者我是否需要指定地址或者是否必须格式化fames。
每个xbee都连接到PC。我正在使用python 3.4。
API模式下的协调员接收消息:
from xbee import XBee,ZigBee
import serial
ser = serial.Serial('/dev/...', 9600)
xbee = ZigBee(ser)
while True:
try:
response = xbee.wait_read_frame()
print(response)
except KeyboardInterrupt:
break
ser.close()
其他人是否已完成此操作或了解可帮助我解释API中的路由器如何工作的网站?我想要做的就是从路由器向协调器发送消息。
答案 0 :(得分:1)
无论设备是配置为协调器,路由器还是终端设备,API模式的工作方式都相同。如果您的路由器始终向协调器发送数据,则无需在API模式下运行 - 只需将其保持在AT模式,DH
且DL
设置为0
。它会自动将帧发送到协调器,其中包含串行端口上的所有数据。
如果您出于某种原因需要在路由器上使用API模式,只需使用您已在协调器上使用的python-xbee库。
答案 1 :(得分:0)
要在API模式下进行通信,您必须发送帧。
框架由页眉和页脚组成。
有一些库可以帮助您在API中进行通信
http://ftp1.digi.com/support/utilities/digi_apiframes2.htm
此网站向您展示如何在API中进行通信