Search code examples
arduinoxbeearduino-ide

Xbee Node Discovery Response


I'm trying to discover devices, from a coordinator, in my network. So I sent an ND command to the coordinator and I'm correctly receiving response from other Xbee.

The next step will be to store the information I've received in a web application, in oder to send commands and data.

However, what I'm still missing is some parts in the frame respose. So far I've mapped the frame like this:

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  

So, where I can find in this response the address of the device ? My guess is in the NI part of the message but, I haven't find any example/information of how the data are organised.

Could someone point me in the right direction?


Solution

  • As someone told me in the dig.com forum

    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
    

    So, loking to my frame response:

    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
    

    This, afaik, means that in this last part of the frame, no information about address of the device are given. Only information are the SL and SH.