芯片不复位的前提下,终端需要清除哪些网络数据才能够实现退出网络的功能
YiKai Chen:
可以參考Cetri在 e2e.ti.com/…/1343379 的回覆
Alvin Chen:
回复 YiKai Chen:
void bdb_resetLocalAction(void)
{//Process reset as nwk leave if the device is on the network and is able to process itif((ZG_BUILD_JOINING_TYPE) && (bdbAttributes.bdbNodeIsOnANetwork) && (!(bdbAttributes.bdbCommissioningMode & BDB_COMMISSIONING_MODE_PARENT_LOST))){NLME_LeaveReq_t leaveReq;// Set every field to 0osal_memset( &leaveReq, 0, sizeof( NLME_LeaveReq_t ) );bdb_setFN();NLME_LeaveReq( &leaveReq );return;}else{bdb_setFN();ZDApp_ResetTimerStart( 500 );}
}
lzc lzc:
回复 Alvin Chen:
您好,感谢您的回答:
1.正常入网状态下,该函数调用了NLME_LeaveReq()函数,会开启一个复位任务;
2.如果是假入网状态,调用NLME_LeaveReq会失败
lzc lzc:
回复 YiKai Chen:
您好,如果是该帖中直接调用ZDApp_LeaveReset函数的话。并不能解决假入网状态。
Alvin Chen:
回复 lzc lzc:
你用下面的code去清除NV.StartOption= ZCD_STARTOPT_CLEAR_STATE|ZCD_STARTOPT_CLEAR_CONFIG;osal_nv_write(ZCD_NV_STARTUP_OPTION,0,sizeof(uint8), &StartOption)
lzc lzc:
回复 Alvin Chen:
您好,我记得该nv设置是需要复位后,初始化时才会有作用
YiKai Chen:
回复 lzc lzc:
如果你要device leave但是不要复位可以參考Cetri在 e2e.ti.com/…/1343379 的回覆
lzc lzc:
回复 YiKai Chen:
您好,我需要的是通过手动清除终端中网络信息和改变网络状态来让其恢复成出厂状态。
请问您知道具体需要做什么呢?
YiKai Chen:
回复 lzc lzc:
可以使用下列的原始碼来让其恢复成出厂状态
zgWriteStartupOptions(ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) );
SystemResetSoft();
lzc lzc:
回复 YiKai Chen:
您好,前提是不进行复位