Other Parts Discussed in Thread: Z-STACK
方法一,协调器根据16位短地址找mac地址,然后调用ZDP_MgmtLeaveReq()删除该节点信息
现象:节点入网成功后,协调器接收到删除节点操作消息,执行以下函数,第一发 ret返回 true(1),第二次发 ret返回 false(0),过一两秒后协调器自动重启了,之前入网的节点也都掉网了
/*********************方法一 start**************************/
zAddrType_t addr_delet;
 uint8 IEEEbuf[8]={0};
 uint8 ret[1];
 addr_delet.addrMode = Addr16Bit;
 addr_delet.addr.shortAddr =shortaddr;
 AddrMgrExtAddrLookup(addr_delet.addr.shortAddr, IEEEbuf );
 if(ZDP_MgmtLeaveReq((zAddrType_t *)&addr_delet,IEEEbuf ,FALSE,FALSE,FALSE)== ZSuccess){
 HalUARTWrite(0,ret,1);//打印删除终端成功标志
 }else{
 HalUARTWrite(0,ret,1);//打印删除终端成功标志
 }
/*******************方法一 end**********************/
方法二:协调器根据16位短地址找mac地址,然后调用AssocRemove()删除该节点信息
现象:节点入网成功后,协调器接收到删除节点操作消息,执行以下函数,第一发 ret返回 true(1),第二次发 ret返回 false(0),过一两秒后协调器就自动重启了,之前入网的节点也都掉网了
/*********************方法二 start**************************/
NLME_LeaveReq_t req;
 req.extAddr = IEEEbuf;
 req.removeChildren = FALSE;
 req.rejoin = FALSE;
 req.silent = FALSE;
 ret[0]=NLME_LeaveReq(&req); //通过leave命令 清除 stale device相关条目;
ret[0]=AssocRemove(IEEEbuf);//这个函数调用才能生效,前面一行的不行
 return ret[0];
/*******************方法二 end**********************/
TI大佬求教
				
        		
