Xbee отправляет неверные ответы ZDO

Я играю с двумя Xbees, один определен как координатор, другой как маршрутизатор. Я хочу читать информацию о сети с возможностью взаимодействия, поэтому я решил использовать сообщения ZDO.

Я отправляю такое сообщение ((идентификатор профиля 0x00 00, идентификатор кластера 0x00 31) и получаю, например, следующий ответ от маршрутизатора:

7E 00 2D 91 00 13 A2 00 40 E5 F0 B4 FB CE 00 00 80 31 00 00 01 2C 00 01 00 01 58 CE C1 8D 7A 3F 2D 40 AB F0 E5 40 00 A2 13 00 00 00 04 02 00 FF 33

Идентификатор кластера правильных ответов: 0x 80 31

Сосредоточив внимание на данных RF, у меня есть следующее:

2C 00 01 00 01 58 CE C1 8D 7A 3F 2D 40 AB F0 E5 40 00 A2 13 00 00 00 04 02 00 FF

Теперь я пытаюсь декодировать эту шестнадцатеричную строку и сталкиваюсь с некоторыми проблемами.

С моей точки зрения, эта строка должна быть закодирована, как определено в спецификации ZigBee от 2012 года, в таблицах 2.126 и 2.127.

К сожалению, это не работает для меня. Если я проигнорирую, что первый байт должен быть статусом, и возьму первые два из них, я смогу прочитать NeighborTableEntries, StartIndex, NeighborTabelListCount. Но когда дело доходит до NeighTableList, я могу прочитать только расширенный идентификатор PAN, расширенный адрес и сетевой адрес, остальная часть строки не соответствует стандарту. Я делаю что-то не так или xbee не соответствует стандарту?


person solick    schedule 05.11.2015    source источник


Ответы (1)


2C = Sequence Number
00 = Status (Success)
01 = 1 entry (total)
00 = starting at index 0
01 = 1 entry (in packet)
58 CE C1 8D 7A 3F 2D 40 = Extended Pan ID
AB F0 E5 40 00 A2 13 00 = IEEE address
00 00 = NodeId
04 = (Coordinator, RxOnWhenIdle)
02 = (Unknown Permit Join)
00 = (Coordinator)
FF = (LQI)

Значения после NodeId являются битовыми масками, а не байтами.

person kyork    schedule 05.11.2015