协调器调用函数ZDP_MgmtLeaveReq去删除设备,设备端注册ZDO_LEAVE_IND_CBID来判断收到LeaveReq并重置某些配置参数。
现在遇到以下问题:
1,在协调器未发ZDP_MgmtLeaveReq时,设备也会触发ZDO_LEAVE_IND_CBID,根据结构体参数NLME_LeaveInd_t。哪些值是ZDP_MgmtLeaveReq触发引起的?
2,结构体NLME_LeaveInd_t中的request是什么?
VV:
1,第一个问题没太明白,哪些值是ZDP_MgmtLeaveReq触发引起的?什么意思
2, 可以参考下Zigbee Specification(R20)里面的, 3.6.1.10.3 Upon Receipt of the Leave Command Frame
requets = TRUE,应该是发给parent的,需要广播给其他的子设备。
Aries Lord:
回复 VV:
1,找到问题了,ZDP_MgmtLeaveReq函数会触发NLME_LeaveReq函数,如果我协调器广播ZDP_MgmtLeaveReq,会造成所有Router都去执行NLME_LeaveReq函数?
但是真正执行NLME_LeaveReq的只能介于父节点(parent)和子节点(child)之间吧?如果广播的话,是不是意味着父节点向子节点发了LeaveReq,子节点也向父节点发LeaveReq?这样的话父节点和子节点都会触发ZDO_LEAVE_IND_CBID?