设备的网络出现问题,似乎进入了以下(ZDapp.c)部分:
如果( Events & ZDO_DEVICE_RESET )
{
#ifdef ZBA_RESPUNFLED_NWKKEY
IF ( devState == dev_end_device_unauth )
{
ZDSecMgrFallbackNwkKey();
}
否则
#endif
{//
设置NV启动选项以强制"新"加入。
zgWriteStartupOptions( ZG_Note_RESET_INSTRATE_NOTE_ST_ST_NOTE/
已在网络中设置ZG_NOTE_RESET_ST_ST_ST_STACDEFAST_ST_ST_ST_STACDEFAULT/
调用
SystemResetSoft();
}
时不会返回
结果,它变为dev_end_device_unauth。 它以前曾参加协调员的工作,但由于长期的联系不佳,
它失去连接。 然后,它加入,但失去了信任中心的身份验证。
关于它为什么失去信任中心的身份验证的任何提示?
要解决此问题,我添加了编译选项ZBA_EMLORT_NWKKEY,但这会产生副作用。
如果设备由于与原始协调人的连接不良而失去连接,它将突然跳转到最近的协调人(不允许加入)。
如果没有编译选项ZBA_RESPLET_NWKKEY,它将不会跳到最近的协调器,但它将始终重置(由于SystemResetSoft();)
是否有更改此行的建议/方法:
{//
设置NV启动选项以强制“新”加入。
zgWriteStartupOptions( ZG_STARTUP_Set, ZCD_STARTOPT_DEFAULT_NETWORK_STATE );
//设备已处于unauth状态,因此重置
//注意:调用
SystemResetSoft();
}将不会返回
这样它就不会重置设备? 因为,如果设备是一个灯开关,它会意外地关闭灯,这不是恢复网络的好方法。
请提供建议。 谢谢你。
