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

z-stack协议栈如何控制节点加入网络?

一个节点设备在未加入网络前,先禁止加入网络,需加入网络时,通过操作按键允许加入网络,如何操作? 

VV:

The joining permission can be configured using the NLME_PermitJoiningRequest() function. The function has one parameter, PermitDuration, which defines the length of time which the coordinator/router will be allowing associations. The values 0x00 and 0xff indicate that permission disabled or enabled, respectively without a time limit. Values 0x01 – 0xFE are the number of seconds to allow joining.

To enable/disable joining on all routers in the network, the ZC (Zigbee Coordinator) can issue Mgmt_Permit_Joining_req message with broadcast address by calling the ZDP_MgmtPermitJoinReq() function. The following codes snippet shows how to use the function:

zAddrType_t dstAddr;
 ...........
 // enable permit joining on all routersdstAddr.addrMode = AddrBroadcast;dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;ZDP_MgmtPermitJoinReq(&dstAddr, 0xFF, 1, FALSE);
 ...........
 // disable permit joining on all routersdstAddr.addrMode = AddrBroadcast;dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;ZDP_MgmtPermitJoinReq(&dstAddr, 0x00, 1, FALSE);

More information regarding the function can be found in the SWRA195 Z-Stack Application Programming Interface (API) document.

Alan Yi:

回复 VV:

對不起,有些疑惑還請W釋疑~

(1)這個動作是否有針對性? 還是協調器、路由器或是終端設備都可以使用。

(2)這個動作使用的時機與目的?

(3)要使用此功能,編譯環境該如何設定?

(4)啟動設備預設為不要入網,該在何處設定初始值?

(5)已經入網的設備,需要再次做此動作嗎?

BR

Alan

VV:

回复 Alan Yi:

这个功能的目的是为了允许或者禁止新的设备加入网络,主要针对已经在网络里面的设备,并且只有协调器和路由器有这个功能,因为协调器和路由器有接收新设备的能力,终端设备只能加入别的设备,不能接受其他设备。

NLME_PermitJoiningRequest()只针对设备自己操作,相当于本地的。

ZDP_MgmtPermitJoinReq是通过无线的方式发送出去,不仅对自己有效,而且发送无线数据控制其他的路由设备。


AndyChen:

回复 VV:

很详细。问一下,贴的那一段英文是哪个文档上的,好像不是Documents里面的文档。

felix shih:

回复 AndyChen:

http://processors.wiki.ti.com/index.php/Z-Stack_FAQ

quan Chen:

回复 VV:

VV:

上文说的三条指令:     dstAddr.addrMode = AddrBroadcast;                                                                                  是如下图的位置吗?                                         dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;                                                     ZDP_MgmtPermitJoinReq(&dstAddr, 0xFF, 1, FALSE);   

赞(0)
未经允许不得转载:TI中文支持网 » z-stack协议栈如何控制节点加入网络?
分享到: 更多 (0)