微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > z-stack协议栈如何控制节点加入网络?

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

时间:10-02 整理:3721RD 点击:

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

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 routers
  dstAddr.addrMode = AddrBroadcast;
  dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVZCZR;
  ZDP_MgmtPermitJoinReq(&dstAddr, 0xFF, 1, FALSE);
 
  ...........
 
  // disable permit joining on all routers
  dstAddr.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.

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

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

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

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

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

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

BR

Alan

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

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

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



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

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

VV:

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top