我使用的是Z-STACK3.0 作为终端设备入网。
调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);函数后,如果找不到网络,则BDB会产生BDB_COMMISSIONING_NO_NETWORK事件,但是在BDB_COMMISSIONING_NO_NETWORK事件产生之前,BDB内部会执行 bdb_setFN();函数来恢复出厂。
当我再次调用bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);的时候,入网成功(入网成功后,BDB内部为什么不清除恢复出厂标志?? 需要用户自己清除吗????)。
这时候如果设备重启,在zgInit();里边检测到ZCD_STARTOPT_DEFAULT_CONFIG_STATE 标志置位,就进行恢复出厂操作,这样的话,我设备保存的网络信息就全部丢失。
请问,这样的设计意图是什么??还是软件本身的BUG??? 如果需要用户清除恢复出厂标志的话,是不是收到入网成功的回调后立即清除ZCD_STARTOPT_DEFAULT_CONFIG_STATE ???
还有,为什么我的程序感觉执行很慢? 从上电到初始化完成,大约需要2S的时间,有什么方法能够解决这个问题吗?
假如我用一个终端做开关控制一盏灯,灯用户按下开关后,设备唤醒,然后重入网,然后开灯,这个过程需要差不多三四秒的时间,这样明显的延时是有问题的,请问怎么解决这个问题, 我用的是TI的Z3.0例程中的GenericApp这个工程。
VV:
唤醒以后不需要重新入网的,只有在发送数据没有没有ack的情况下,或者是掉电重新上电的情况下需要重新入网