TI中文支持网
TI专业的中文技术问题搜集分享网站

设备退离网络后的复位问题

在第三种情况下,我想删除NV,可以实现么?

因为让他退网,在开启NV的情况下,即使我禁止入网,也会直接恢复到以前的网络,我想通过清除NV,防止这个事情发生

YiKai Chen:

先調用 zgWriteStartupOptions( ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) ); 然後呼叫SystemResetSoft();即可

user4711142:

回复 YiKai Chen:

 我用的协议栈里有这个SystemReset();复位函数;在ZDO_ProcessMgmtLeaveReq中有一段代码是这么处理的,这样的结果有两个bug:

1、设备退网了,但是协调器没有接收到Mgmt_Leave_rsp。

2、当退网方式为不重新连接时,依然重新连接

不知道自己复位是不是影响了MAC层的退网操作

YiKai Chen:

回复 user4711142:

你是從协调器發出leave request還是從设备發出leave request?

user4711142:

回复 YiKai Chen:

协调器发出让终端设备退网的请求,终端设备检测到Mgmt_Leave_req后,终端调用ZDO_ProcessMgmtLeaveReq执行退网操作。

YiKai Chen:

回复 user4711142:

协调器发出让终端设备退网的请求,终端设备检测到Mgmt_Leave_req后,照理說终端不需要再调用ZDO_ProcessMgmtLeaveReq执行退网操作。

user4711142:

回复 YiKai Chen:

终端检测到Mgmt_Leave_req,协议栈会自动调用ZDO_ProcessMgmtLeaveReq,我是在这个函数里面添加了自定了的清除NV功能。但是在这添加会有上述所说的2个bug。想问一下如果我想让终端退网,终端退网后删除NV信息应该在哪执行?或者说添加到代码的哪个地方

YiKai Chen:

回复 user4711142:

终端检测到Mgmt_Leave_req,协议栈会自动调用DO_LeaveInd不是ZDO_ProcessMgmtLeaveReq

user4711142:

回复 YiKai Chen:

 这个的意思是用ZDO_ProcessMgmtLeaveReq来处理Mgmt_Leave_Req的请求么

user4711142:

回复 YiKai Chen:

YiKai Chen:

回复 user4711142:

是的

赞(0)
未经允许不得转载:TI中文支持网 » 设备退离网络后的复位问题
分享到: 更多 (0)