簡體   English   中英

從多個XBee Series 2B端點接收數據

[英]Receiving data from multiple XBee Series 2B EndPoints

我正在從事一個涉及XBee系列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 ,長地址是ATSHATSL的組合。 我不太了解python-xbee,無法說出它們在ZigBee對象中的存儲位置。

附加信息:

節點發現與發送I / O樣本不同。 當主機將ATND發送到其本地XBee時,XBee模塊將發送廣播發現消息,並將響應傳遞回主機。 主機可以解析響應,以獲取地址和遠程模塊中的“節點標識符”(ATNI字符串)。

主機可以從該地址列表發送ATIO命令到遠程節點並解析響應。

我不熟悉Python-XBee庫,所以我不知道它如何實現節點發現,節點表管理以及向發現的節點發送“遠程AT命令”。

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']

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM