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

Zstack白名单

我想法是:通过PC机串口发送命令控制终端设备的退网和入网。

协调器串口接收到退网指令,执行ZDP_MgmtLeaveReq(ExtiNet_DstAddr,IeeeAddr,0,1,0)让终端设备退网,并清除相应的白名单;这样终端设备会一直发送入网请求;

协调器串口接收到入网指令后,将指令中的MAC地址记录保存,添加到白名单中,使终端设备入网。

问题是:退网后,终端一直发送入网请求,协调器一直在对比白名单,导致协调器串口只能偶尔接收到入网命令,请问这该怎么办?

YiKai Chen:

你ZDP_MgmtLeaveReq(ExtiNet_DstAddr,IeeeAddr,0,1,0)的rejoin參數設置成1當然設備會一直rejoin,試試改成ZDP_MgmtLeaveReq(ExtiNet_DstAddr,IeeeAddr,0,0,0)

user4711142:

回复 YiKai Chen:

改成0之后,会导致设备不主动进行网络发现请求。

user4711142:

回复 YiKai Chen:

如果改为0,会导致终端不主动进行加入网络请求。无法入网

Alvin Chen:

ZDP_MgmtLeaveReq
你去看一下参数* @fnZDP_MgmtLeaveReq** @briefThis builds and send a Mgmt_Leave_req message.** @paramdstAddr – destination address of the message*IEEEAddr – IEEE adddress of device that is removed*RemoveChildren – set to 1 to remove the children of the*device as well. 0 otherwise.*Rejoin – set to 1 if the removed device should rejoinafterwards. 0 otherwise.

YiKai Chen:

回复 user4711142:

rejoin改为0,只会导致终端leave reset後不主动进行加入网络请求

Alvin Chen:

回复 user4711142:

你在DEV_STATE_CHANGE_IND里面重新去扫网,ZDOInitDevice(0)

user4711142:

回复 Alvin Chen:

能不能讲的详细一点,这个DEV_STATE_CHANGE_IND是怎么回事?
我是想终端远距离放置,只通过协调器控制终端的入网和退网。对于终端上电后,没有任何人为操作。

YiKai Chen:

回复 user4711142:

一般我們設備上面都會有個按鈕,按了再去作终端的入网和退网

user4711142:

回复 YiKai Chen:

如果我要远程控制,上电的时候可以通过按下按键让其入网;在工作过程中终端附近没有人,该怎么实现只用协调器控制设备的退网和入网呢?

YiKai Chen:

回复 user4711142:

那你就只能把rejoin設置成1

赞(0)
未经允许不得转载:TI中文支持网 » Zstack白名单
分享到: 更多 (0)