我发现一个奇怪的现象:配置:-DSECURE=1
-DZG_SECURE_DYNAMIC=0
uint8 zgPreConfigKeys = TRUE;uint8 zgUseDefaultTCLK = TRUE; 未编译SE_PROFILE 选项
编译了NV_RESTORE 选项
此时若协调器上电,终端可成功加入网络,掉电再上电,rejoin the net.
若协调器掉电,终端可通过其他路由成功加入网络,但终端掉电再上电后,join the net。
跟踪发现在ZDOInitDevice 函数中ZDApp_RestoreNetworkState()返回ZDO_INITDEV_NEW_NETWORK_STATE ,即 NLME_RestoreFromNV() 失败
我想请问下为什么协调器不在时,终端NLME_RestoreFromNV() 会有问题?终端加入网络时,协调器必须在线吗?
VV:
你开了Trust center link key,只有协调器是trust center, 所以协调器不在时就不行,因为其他设备不是trust center
具体你可以看下zigbee specificcation 上面有讲开了trust center以后的入网流程