This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

zstack的ZIGBEEPRO协议中,默认的可以加入设备数量是不是20个

Other Parts Discussed in Thread: Z-STACK

我看到的程序如下:

1、在nwk_globals.h中

    #if ( STACK_PROFILE_ID == ZIGBEEPRO_PROFILE )

           uint8 CskipRtrs[1] = {0};

           uint8 CskipChldrn[1] = {0};

     #elif ( STACK_PROFILE_ID == HOME_CONTROLS )

           uint8 CskipRtrs[MAX_NODE_DEPTH+1] = {6,6,6,6,6,0};

           uint8 CskipChldrn[MAX_NODE_DEPTH+1] = {20,20,20,20,20,0};

            。。。。。。。。。

2、在nwk_globals.c中

     #if !defined( NWK_MAX_DEVICE_LIST )

        #define NWK_MAX_DEVICE_LIST     20

   #endif

 

    #if ( STACK_PROFILE_ID == ZIGBEEPRO_PROFILE )

         #define MAX_NODE_DEPTH      20

         #define NWK_MODE            NWK_MODE_MESH

         。。。。。。。。

以上两处定义了如果是ZIGBEEPRO协议,最大深度为20,最大关联表数量为20,但uint8 CskipRtrs[1] = {0};  uint8 CskipChldrn[1] = {0};这两个却定义第二级可挂载路由器和终端都为0,是不是就说明ZIGBEEPRO协议默认可挂载设备数量只能为20,,即关联表的数量。

我的疑惑是不知道是不是我想的这样的,或者在其他地方还有另外设置?

  

    

  • 您是可以自己定义网络深度及最大节点数量的

  • 是不是修改这个两个uint8 CskipRtrs[1] = {0}; uint8 CskipChldrn[1] = {0};即可;改成这样uint8 CskipRtrs[MAX_NODE_DEPTH+1] = {6,6,6,6,6,0}; uint8 CskipChldrn[MAX_NODE_DEPTH+1] = {20,20,20,20,20,0};可以吗。

  • 是的,在协议栈中,有以下几个参数影响网络拓扑的形态:

    Cm(nwkMaxChildren):每个父节点可以连接的子节点的总个数;

    Rm(nwkMaxRouters):在Cm中,可以是路由节点的个数,Rm<=Cm;

    Lm:网络最大深度,协调器的深度为0。

    这三个参数的值在Z-stack中分别由变量CskipChldrn、CskipRtrs、MAX_NODE_DEPTH决定。这三个变量可以在NWK中的nwk_globals.c 和 nwk_globals.h 两个文件中查找

  • 哦。谢谢。

    修改这个两个uint8 CskipRtrs[1] = {0}; uint8 CskipChldrn[1] = {0};后, 还属于ZIGBEEPRO协议吗。

    在ti的Z-Stack Developer‘s Guide中,有说这样一句话 After choosing legal values, the developer needs to ensure not to use the standard stack profile and instead
    set it to network-specific (i.e. change the STACK_PROFILE_ID in “nwk_globals.h” to NETWORK_SPECIFIC) because the values are different from the values defined for the ZigBee profile. Then the MAX_DEPTH parameter in “nwk_globals.h” may be set to the appropriate value.  

    说不能再用ZIGBEEPRO协议, 而要改成NETWORK_SPECIFIC协议了。