我们看到一个问题、即在加入时(有时)从 ZNP 收到截断的 ZDO:nodeDescRsp 消息。
这会导致 AREQ ZDO:NodeDescRsp 数据包不可解析、因为它比 MT 规范定义的短。
Error while parsing ZDO:nodeDescRsp (len:6), error: Error: Expected a single parsed message got 0 from data d7d080d7d000
如果我们转储 NPI 数据包、我们将看到以下内容:
fe 06 45 82 d7 d0 80 d7 d0 00 41
这个数据包的 FCS 有效、数据包读取为地址0xd0d7、状态0x80、nwkaddrofinterest 0xd0d7、logical_cmplxdescavai_userdescavai 0x00、(剩余部分缺失)
长度为6表示 MT 被指示发送一个6字节响应到 nodeDescRsp 数据包。 遗憾的是、负责处理 Zigbee -> MT (处理类似的 ZDO 命令)的代码似乎不在 ZNP 代码库(blob?)中。
每次我们发现该问题时、截断处于同一点、状态始终为0x80。
从 Wireshark 来看、数据包看起来是有效的:
Frame 37699: 106 bytes on wire (848 bits), 106 bytes captured (848 bits) on interface 0 Internet Protocol Version 4, Src: 192.168.1.3, Dst: 192.168.1.3 User Datagram Protocol, Src Port: 17760, Dst Port: 17760 TI Radio Packet Info IEEE 802.15.4 Data, Dst: 0x0000, Src: 0xd0d7 ZigBee Network Layer Data, Dst: 0x0000, Src: 0xd0d7 ZigBee Application Support Layer Data, Dst Endpt: 0, Src Endpt: 0 ZigBee Device Profile, Node Descriptor Response, Rev: 21, Nwk Addr: 0xd0d7, Status: Success Sequence Number: 228 Status: Success (0) Nwk Addr of Interest: 0xd0d7 Node Descriptor .... .... .... .010 = Type: 2 (End Device) .... .... .... 0... = Complex Descriptor: False .... .... ...0 .... = User Descriptor: False .... 0... .... .... = 868MHz BPSK Band: False ..0. .... .... .... = 902MHz BPSK Band: False .1.. .... .... .... = 2.4GHz OQPSK Band: True 0... .... .... .... = EU Sub-GHz FSK Band: False Capability Information: 0x00 Manufacturer Code: 0x1015 Max Buffer Size: 80 Max Incoming Transfer Size: 80 Server Flags: 0x2a00 .... .... .... ...0 = Primary Trust Center: False .... .... .... ..0. = Backup Trust Center: False .... .... .... .0.. = Primary Binding Table Cache: False .... .... .... 0... = Backup Binding Table Cache: False .... .... ...0 .... = Primary Discovery Cache: False .... .... ..0. .... = Backup Discovery Cache: False .... .... .0.. .... = Network Manager: False 0010 101. .... .... = Stack Compliance Revision: 21 Max Outgoing Transfer Size: 80 Descriptor Capability Field: 0x00 .... ...0 = Extended Active Endpoint List Available: False .... ..0. = Extended Simple Descriptor List Available: False
此测试使用 CC2652以及最新的 SimpleLink SDK 和 Develco 运动传感器执行。
随着配对的传感器越来越多(我们目前正在评估 ZNP 固件和配置的总容量)、这种情况似乎也越来越多。 但这可能是我的偏见。
有人能帮忙吗?