调用zgWriteStartupOptions后无法重新入网
设备初始不允许入网,使用按键策略调用ZDOInitDevice后成功入网,再使用按键调用zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE );初始化入网状态后,再触发按键调用ZDOInitDevice,无法入网,抓包发现没检测到初始化入网后使用ZDOInitDevice发出来的包,所以不能入网,请问是什么原因所导致的?
设备能否 入网 不单取决于 自身是否寻网,同时 也需要确认 协调器 是否打开permit join 允许设备入网!
你确定 第二次 触发按键调用ZDOInitDevice 时, 协调器是开启 允许入网的 ?
协调器一直是处于permit join的状态,只要重新下载路由程序即可入网,但初始化后遍会出现不能入网的问题,我对比了一下初始化后_NIB的参数,有其他数据与重新下载后的不一样,其中一项是_NIB.nwkState = NWK_ROUTER;是否已经分配了网络状态后,不会重新搜索网络的问题。
对了!
执行 zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE ); 之后 你有没有执行复位?
如果没有执行复位 _NIB.nwkState 是不会改变的!
没有改变即意味只 系统不会重新寻网~~~
执行 了zgWriteStartupOptions( ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE );后有使用了SystemResetSoft(); 进行了复位,问题依然存在。复位后还是_NIB.nwkState = NWK_ROUTER;