接收来自多个系列的XBee 2B端点数据(Receiving data from multiple

2019-10-18 19:02发布

我的工作,涉及到的XBee系列2B收音机,可以使用在某些方面的意见,确定数据包来自哪个终端设备的项目。 所述设置包括一个Python 2.7应用上的覆盆子裨模型B.运行

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

谢谢!

Answer 1:

我认为,I / O样品到远程响应ATIO命令,这样就遵循一个远程的格式AT响应,并包括短期和长期的地址。

上的XBee模块,短地址是ATMY ,长地址是的组合ATSHATSL 。 我不知道蟒蛇-的XBee不够好,说在那里它们被存储在ZigBee对象。

附加信息:

节点发现比发送I / O的样本不同。 当主机发送ATND到其本地的XBee,所述的XBee模块发送一个广播发现消息,并将响应返回给主机。 主机可以解析为地址的响应,并且从所述远程模块的“节点标识符”(ATNI字符串)。

从这个地址列表,主机可以发送ATIO命令到远程节点并解析响应。

我不熟悉Python的的XBee库,所以我不知道它是如何实现节点发现,节点表的管理,并发送“远程AT命令”来发现的节点。



Answer 2:

该数据包的XBee是一个字典

from xbee import ZigBee 
import serial

ser = serial.Serial('/dev/ttyAMA0', 9600)
xbee_conn=ZigBee(ser)
xbee_conn.at(command='ND')
while True:
    try:
        packet = xbee.wait_read_frame()
        print packet
    except KeyboardInterrupt:
        break
ser.close()

为了获取数据访问它的字典:

source_address_long = packet['parameter']['source_addr_long']

希望这可以帮助。



文章来源: Receiving data from multiple XBee Series 2B EndPoints