某次编译烧写后,路由节点不能接收协调器发出的心跳包,在组网成功几秒钟后,自动重新组网;
经过代码回滚查看后,该问题依然存在,排除代码逻辑问题;
从现象上来看,是路由节点没有接收到协调器发出的心跳包(SAMPLEAPP_PERIODIC_CLUSTERID),从而导致的重新组网;
但不知道这是什么原因导致的?
编译选项如下:
ZTOOL_P1
xNV_RESTORE
xMT_TASK
xMT_SYS_FUNC
xMT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
某次编译烧写后,路由节点不能接收协调器发出的心跳包,在组网成功几秒钟后,自动重新组网;
经过代码回滚查看后,该问题依然存在,排除代码逻辑问题;
从现象上来看,是路由节点没有接收到协调器发出的心跳包(SAMPLEAPP_PERIODIC_CLUSTERID),从而导致的重新组网;
但不知道这是什么原因导致的?
编译选项如下:
ZTOOL_P1
xNV_RESTORE
xMT_TASK
xMT_SYS_FUNC
xMT_ZDO_FUNC
xLCD_SUPPORTED=DEBUG
是的!
刚刚烧录代码验证了一下,采用原始的SampleApp代码,现象是一样的;
原始代码上自定义配置内容:
协调器PANID固定为0xABCD;路由器默认为0xFFFF;
开启AES加密;
信道号设置为0x1A;
其他配置内容未做修改;
原因确认了,在开启AES加密后导致的该问题。
我在2.5.1a的原始代码中做了如下修改:
1,在f8wConfig.cfg中,-DSECURE=0 修改为 -DSECURE=1;
2,在f8wConfig.cfg中,修改DDEFAULT_KEY的值为
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0xFF, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"
3,在ZGlobals.c中,修改zgPreConfigKeys的值为TRUE;
调试结果:
1,在第1,2部完成后,并且zgPreConfigKeys的值为FALSE的时候,协调器和路由器能够正常通讯;
2,在第1,2部完成后,将zgPreConfigKeys的值修改为TRUE的时候,协调器和路由器的通讯出现上面描述的问题;