Quantcast
Channel: Zigbee 和 Thread
Viewing all articles
Browse latest Browse all 16962

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

$
0
0

我用的协议栈是 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地址该怎么处理?


Viewing all articles
Browse latest Browse all 16962

Trending Articles