微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > TI大神,请教下zigbee关联表的一些问题

TI大神,请教下zigbee关联表的一些问题

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

我用的协议栈是 zstack 2.5.1a,最近在测试中发现关联表的一些问题,希望TI大神帮解答下

按照协议栈里的  #define NWK_MAX_DEVICE_LIST     30 ,协调器关联表里应该最多能允许30个设备直接挂接在它下面,也就是关联表里最多有30个设备的相关信息,以上理解如果没错,下面是我读取关联里的子设备mac地址操作:

   uint8 _nodeCounter;
   uint8 _assocNum=0;

   uint8 assoclist[243];
   for ( _nodeCounter = 0; _nodeCounter < NWK_MAX_DEVICES; _nodeCounter++ )
   {
      AddrMgrEntry_t addrEntry;
      addrEntry.user = ADDRMGR_USER_ASSOC;
      addrEntry.index = _nodeCounter;
      if ( AddrMgrEntryGet( &addrEntry ) )
      {
         //HalUARTWrite(0,addrEntry.extAddr,Z_EXTADDR_LEN);
        osal_memcpy(&assoclist[_assocNum*8],addrEntry.extAddr,Z_EXTADDR_LEN);
        _assocNum++;
      }

   }

通过打印出assoclist这个数组,发现关联表里会有mac全是ff的地址出来,正常情况下如果这个index为空的话,应该是无法进入if条件判断的吧,实际测试发现,关联表这些mac为ff的地址似乎也是实际占用着表的位置,导致设备接入几个后协调器返回给设备的信息里就告诉无法接入了。这种情况下试了下只能通过zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE)重建网络,其他的assoc操作好像不行,这会对已经加入的设备造成问题,所以不知出现这种ff地址该怎么处理?

你打印的是地址表的内容,不是关联表的内容。

你可以直接答应Assoclist里面的,看下短地址是否有FF的。

无法接入是,节点发送beacon request,协调器回复的beacon显示满了吗?

感谢VV的答复,按照提示我打印出关联表里所有的shortAddr,除去加入的正常的短地址,其他的地址都是FF。。。

   uint8 shortlist[62];

   for ( _nodeCounter = 0; _nodeCounter < NWK_MAX_DEVICES; _nodeCounter++ )
   {
      osal_memcpy(&shortlist[_nodeCounter*2],&AssociatedDevList[_nodeCounter].shortAddr,2);

   }

  无法接入,是我加打印发现,没有用抓包,zdapp.c里, 函数networkDesc_t* ZDApp_NwkDescListProcessing(void)里有过滤的  if ( !pNwkDesc->routerCapacity )
     {   continue;  }程序进入continue,由此判断协调器回复信息应该是满了。我想知道当地址表里出现大量的FF地址,该怎么删除。

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

网站地图

Top