我试图从我的网络中的协调员那里发现设备。 所以我向协调员发送了一个ND命令,我正确地收到了来自其他Xbee的响应。
下一步是存储我在网络应用程序中收到的信息,以便发送命令和数据。
然而,我仍然缺少的是框架中的某些部分。到目前为止,我已经映射了这样的框架:
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 :(得分: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
这个,afaik,意味着在帧的最后部分,没有给出关于设备地址的信息。只有信息是SL和SH。
答案 1 :(得分:0)
16位网络地址是您标记为“MY”(0x1785)的地方,64位MAC地址是SH / SL(00 13 A2 00 40 B4 50 23)的组合。