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

CC2530: ZStack 2.51 a 版本 协调器主动删除已入网的终端或路由节点的信息,函数返回true,1秒之后再发一次返回false,再过一两秒,协调器就自动复位了,所有的节点也都退网了,并没有实现删除单个终端或路由的功能,请问这个函数操作是否有其他方式

Part Number:CC2530Other 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大佬求教

Cherry Zhou:

您好我们已经收到您的问题并反馈,预计将于24小时内给您答复。谢谢。

,

YiKai Chen:

據我所知ZDP_MgmtLeaveReq/NLME_LeaveReq並不會造成协调器重启,應該是你的程序有什麼問題才會讓协调器重启,建議你排查一下你修改的程序

,

xuan ouyang:

协调器在组网状态下,接收节点的任何包都没有问题,除了0x3b,其他0x3d等命令都不会有任何问题,而且第一次发0x3b命令也都没有问题,发第二次后,一两秒后协调器就会重启,麻烦看下代码有没有问题

,

YiKai Chen:

你程序裡面不去調用Del_EndPoint_net就不會协调器重启嗎?

,

xuan ouyang:

是的,调用一次也不会,但是间隔1s连续调用两次,就会导致协调器重启

,

xuan ouyang:

调用一次Del_EndPoint_net不会,后面操作其他指令30s,没有任何问题,但是再调用一次Del_EndPoint_net,就会导致协调器重启

,

YiKai Chen:

試著把Del_EndPoint_net內的程序一部分一部份去掉看看是哪部分造成的

,

Cherry Zhou:

ZDP_MgmtLeaveReq 不会导致协调器复位。 我们建议您检查您的应用程序代码、以查看它在何处导致复位。

为了更好的解决您的问题,您是否能提供监听器日志?

同时请您检查是否是以下原因:是否没有从网络中正确删除器件、协调器重启或其他内容? 

以及Leave Requests不会删除本地设备信息,这通常是在接收到实际Leave数据包时发生。 我们不确定它是否在 Z-Stack 2.51 中可用,但 ZDApp_LeaveUpdate 会显示从网络中完全删除设备必须执行哪些 API。

赞(0)
未经允许不得转载:TI中文支持网 » CC2530: ZStack 2.51 a 版本 协调器主动删除已入网的终端或路由节点的信息,函数返回true,1秒之后再发一次返回false,再过一两秒,协调器就自动复位了,所有的节点也都退网了,并没有实现删除单个终端或路由的功能,请问这个函数操作是否有其他方式
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1