我正在从事一个涉及XBee Series 2B无线电的项目,并且可以使用一些建议来确定数据包来自哪个终端设备。该设置包括在Raspberry Pi Model B上运行的Python 2.7应用程序。
Python-XBee 2.1.0文档指出:
ZigBee设备将此行为扩展为包括自动解析“ ND”,节点发现,AT命令响应。
ND AT响应的参数字段将采用以下格式:
{"source_addr": two bytes,
"source_addr_long": eight bytes,
"node_identifier": string,
"parent_address": two bytes,
"device_type": one byte,
"status": one byte,
"profile_id": two bytes,
"manufacturer": two bytes,
}
我的意思是ZigBee的I / O示例消息包含上述参数字段。
source_addr ==端点无线电的16位MY参数吗?
可以通过以下方式获得:
ser = serial.Serial('/dev/ttyUSB0', 9600)
xbee = ZigBeer(ser)
myID = xbee.source_addr
谢谢!
最佳答案
我认为I / O样本是对远程ATIO
命令的响应,因此它们将遵循远程AT响应的格式,并包括长短地址。
在XBee模块上,短地址是ATMY
,长地址是ATSH
和ATSL
的组合。我不太了解python-xbee,无法说出它们在ZigBee
对象中的存储位置。
附加信息:
节点发现与发送I / O样本不同。当主机将ATND发送到其本地XBee时,XBee模块将发送广播发现消息,并将响应传递回主机。主机可以解析响应,以获取地址和远程模块中的“节点标识符”(ATNI字符串)。
主机可以从此地址列表发送ATIO
命令到远程节点并解析响应。
我不熟悉Python-XBee库,所以我不知道它如何实现节点发现,节点表管理以及向发现的节点发送“远程AT命令”。
关于python - 从多个XBee Series 2B端点接收数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19408264/