情景:父节点退网时,同时也让一级子节点退网;一级子节点退网时,也让二级子节点退网。
当父节点退网时,执行以下函数:
leaveReq.removeChildren = true;
……………………..
NLME_LeaveReq( &leaveReq );
…………………………….
按我的理解,他会广播数据包,通知其子节点退网。
问题是:子节点收到该数据包后,相应的处理函数在哪里?因为我们是做照明,希望灯泡退网时(即恢复出厂设置)能够闪烁提示。
不知道TI是不是把这段代码封装了,不对外开放。
qingquan chen:
我自己找了一下,可能是这个API:void ZDO_LeaveInd( NLME_LeaveInd_t* ind )(等待debug确认)
问题是:即便一级子节点收到数据包,进入这个函数:void ZDO_LeaveInd( NLME_LeaveInd_t* ind )。
在这个函数内部只复位了本地设备,并没有执行NLME_LeaveReq( &leaveReq ),继续通知二级子节点。
VV:
如果是空中发出来的leave request,接收端的处理一定是ZDO_LeaveInd