2014-10-31 92 views
0

我試圖從協調器中發現設備,在我的網絡中。 因此,我向協調員發送了一個ND命令,並且我正確接收了其他Xbee的響應。Xbee節點發現響應

下一步將存儲我在Web應用程序中收到的信息,或者發送命令和數據。

但是,我仍然缺少的是框架respose中的某些部分。到目前爲止,我已經制定這樣的框架:

1  7E     start frame  
===== =================== MESSAGE LENGHT 
2-3 0x00 0x19   -> 25 
===== =================== PACKET TYPE 
4  88     -> response to a remote AT command 
5  02     frame ID 
===== =================== AT COMMAND 
6-7 0x4E 0x44   "ND" 
8  00     status byte (00 -> OK) 

===== =================== MY - Remote Address 
9-10 0x17 0x85 
===== =================== SH - SERIAL NUMBER HIGH 
11-14 0x00 0x13 0xA2 0x00 
===== =================== SL - SERIAL NUMBER LOW  
15-18 0x40 0xB4 0x50 0x23 
===== =================== SIGNAL  
19 20 
= ======== NI - Node Identifier 
20 00 
21 FF  
22 FE  
23 01 
24 00   
25 C1  
26 05 
27 10  
28 1E  
===== ===== CHECKSUM (25th bytes from MESSAGE LENGHT) 
29 19 

所以,在這裏我可以在這個響應查找設備的地址? 我的猜測是在消息的NI部分,但是我沒有找到任何有關數據如何組織的示例/信息。

難道有人指着我正確的方向嗎?

回答

0

正如有人告訴我在dig.com論壇

NI<CR>     (Variable length) 
PARENT_NETWORK ADDRESS (2 Bytes)<CR> 
DEVICE_TYPE   (1 Byte: 0=Coord, 1=Router, 2=End Device) 
STATUS     (1 Byte: Reserved) 
PROFILE_ID    (2 Bytes) 
MANUFACTURER_ID  (2 Bytes 

因此,尋找熱塑成型到我的幀響應:

00 --- Node Identifier variable, (here 1 byte = 00 because no value is set up). 
FFFE --- parent network address (2 bytes) 
01 --- device type 
00 --- status 
C105 --- profile id 
101E --- manufacturing id 

這一點,據我所知,意味着在幀的最後一部分,沒有關於設備地址的信息被給出。只有信息是SL和SH。

0

16位網絡地址是您標記爲「我」(0x1785)的地址,而64位MAC地址是SH/SL(00 13 A2 00 40 B4 50 23)的組合。

+0

你是對的@tomlogic你知道如何在發送遠程AT命令時使用16位網絡地址嗎?在每個文件中,我只使用了64位紅色。 – 2014-11-04 14:31:11

+0

您可能可以將64位IEEE地址設置爲全部0xFF,以便XBee模塊將使用16位網絡地址。確保您使用的是最新的固件。 **但最終,使用64位IEEE地址並使用0xFFFE作爲網絡地址更可靠(並且不困難)**在某些802.15.4網絡中,網絡地址可能會改變 – tomlogic 2014-11-06 19:06:27