In my application i am trying to implement network discovery functionality. I am working in a DigiMesh and I would like to find all nodes in the network. For testing purposes I have used XCTU with console connected.
In XCTU I was connected using uart to a device with mac address 0x0013A2004125E0F5. The other rf module I found in the network was 0x0013A20040FCDD56.
I was trying to trace back what XCTU did in order to find this one module. Here is the console session of the discovery:
07-21-2017 12:38:32.351,-,API,"NODE2,0013A2004125E0F5,XBee Pro DigiMesh 2.4,8073,COM9 - 9600/8/N/1/N,3"
Pastebin here for clarity: https://pastebin.com/kCgNWxJ4
If I understand correctly the procedure went like this:
- XCTU sets NT (13 seconds) for my the device
- XCTU sets (The network discovery starts)
- Ansfer for ND comes. Here I dont know how to decode the AT command parameter:
FF FE ---- 00 13 A2 00 41 25 E0 AB ---- 20 4E 4F 44 45 31 00 FF FE 01 00 C1 05 10 1E
I see clearly that there is the mac address of the found device in there, but what are the other bytes, what do they stand for? Also what would happen if more than one device would be found?
- XCTU sends R? (to remote device) and receives invalid command answer- What is R? at command? I cannot find it in the Digimesh datasheet.
- XCTU sends %C (to remote device) and gets the answer but here as well I cannot find what is %C command.
At the end XCTU read the hardware and software version from the external device and sets the API mode.
To summarize: What are "R?" and "%C" AT commands and what is the format of ND response? How to decode found devices? I would appreciate all help.
PS: I am using XBee PRO S1 modules.