你好,
在我的应用程序中,我试图实现网络发现功能。我在一个数字网格工作,我想找到网络中的所有节点。出于测试目的,我使用了连接控制台的XCTU。
在XCTU中,我使用uart连接到mac地址为0x0013A2004125E0F5的设备。我在网络中找到的另一个rf模块是0x0013A20040FCDD56。
我试图追溯XCTU所做的工作,以找到这一个模块。下面是发现的控制台会话:
07-21 2017 12:38:32.351,-,API, " NODE2,0013A2004125E0F5,XBee Pro DigiMesh 2.4,8073,COM9 - 9600/8/N/1/N,3 "
07-21-2017 12:32:13.635, 0,发送,7 e0004085b4e54fa
07-21-2017 12:32:13.661, 1 RECV 7 e0007885b4e54000082f8
07-21-2017 12:32:13.699 2发送7 e000408024e4463
07-21-2017 12:32:26.036 3 RECV 7 e001e88024e4400fffe0013a20040fcdd56204e4f44453300fffe0100c105101e57
07-21-2017 12:32:26.050 4发送7 e000f175c0013a20040fcdd56fffe02523fd8
07-21-2017 12:32:26.106 5 RECV 7 e000f975c0013a20040fcdd56fffe523f0258
发送07-21-2017 12:32:26.120,6日,7 e000f175d0013a20040fcdd56fffe02254300
07-21-2017 12:32:26.186 7 RECV 7 e0010975d0013a20040fcdd56fffe2543000181
发送07-21-2017 12:32:26.200,8日,7 e000f175e0013a20040fcdd56fffe024856c9
07-21-2017 12:32:26.256 9 RECV 7 e0011975e0013a20040fcdd56fffe485600184ce7
发送07-21-2017 12:32:26.270,10日,7 e000f175f0013a20040fcdd56fffe025652be
RECV 07-21-2017 12:32:26.337, 11日,7 e0011975f0013a20040fcdd56fffe56520080734d
发送07-21-2017 12:32:26.352,12日,7 e000f17600013a20040fcdd56fffe024150d4
RECV 07-21-2017 12:32:26.407, 13日,7 e001097600013a20040fcdd56fffe4150000056
为了清晰起见,这里是Pastebin:https://pastebin.com/kCgNWxJ4
如果我没理解错的话,这个过程是这样的:
- XCTU为我的设备设置NT(13秒)
- XCTU设置(网络发现开始)
- ND的调任来了。这里我不知道如何解码AT命令参数:
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
我清楚地看到那里有找到的设备的mac地址,但其他字节是什么,它们代表什么?另外,如果发现了不止一个装置会发生什么?
- XCTU发送R?(到远端设备),并接收到无效的命令回答-什么是R?在命令吗?我在Digimesh数据表中找不到。
- XCTU发送%C(到远程设备)并得到答案,但在这里我也找不到%C命令是什么。
最后,XCTU从外部设备读取硬件和软件版本,并设置API模式。
总结一下:什么是“R”?和“%C”AT命令,ND响应的格式是什么?如何解码发现的设备?我将感激所有的帮助。
PS:我使用的是XBee PRO S1模块。