zigbee打印路由表、邻居表

一、了解主要函数

先来看一下TI官方的一个API的定义:

函数原型

ZStatus_t NLME_Get Request( ZNwkAttributes_t NIBAttribute,uint16 Index, void  *Value ),

功能

允许相邻的更高层去获取网络信息库的属性值

参数描述

NIBAttribute—仅支持如下属性:

nwkCapabilityInfo  获取网络容量信息

nwkNumNeighborTableEntries  获取有效的邻居表个数

nwkNeighborTable  获取邻居表地址索引

nwkNumRoutingTable Entries 获取有效的路由表个数

nwkRoutingTable 获取邻居表地址索引

在ZNwkAttributes_t枚举类型中有定义

 

Index—用于表的索引,邻居表和路由表都是数组,代表调用第几个

 

Value—指向包含属性值的内存位置的指针  读取的结果指向的地址

 

ZStatus_t—定义在 ZComDef.h 中的状态值。

二、调用函数实现

     1、邻居表打印

          byte ntnum=0;
         NLME_GetRequest(nwkNumNeighborTableEntries,0,&ntnum); 
         
         byte index=0;
         neighborEntry_t* ntTable;
         uint8 *pNtBuf = NULL;
         
         pNtBuf =osal_mem_alloc((short)(ntnum*sizeof(neighborEntry_t)));
         
         if(pNtBuf!=NULL){
         ntTable = (neighborEntry_t *)pNtBuf;
         for(index=0;index<ntnum;index++)
              {
                 NLME_GetRequest(nwkNeighborTable,index,(void *)ntTable);
                WRITE_ZIGBEE("nwkNeighborTable[%d]:\r\n",index);
                WRITE_ZIGBEE("neighborAddress:%04x\r\n",ntTable->neighborAddress);
                WRITE_ZIGBEE("neighborExtAddr:");
                 for(i=0;i<8;i++)
                 {
                   WRITE_ZIGBEE("%02x ",ntTable->neighborExtAddr[7-i]);
                 }
                 WRITE_ZIGBEE("\r\n");
                 WRITE_ZIGBEE("age:%d\r\n",ntTable->age);
                 WRITE_ZIGBEE("linkInfo->txCounter:%d\r\n",ntTable->linkInfo.txCounter);
                 WRITE_ZIGBEE("linkInfo->txCost:%d\r\n",ntTable->linkInfo.txCost);
                 WRITE_ZIGBEE("linkInfo->rxLqi:%d\r\n",ntTable->linkInfo.rxLqi);
                 WRITE_ZIGBEE("linkInfo->txFailure:%d\r\n\r\n",ntTable->linkInfo.txFailure);
                ntTable++;
              }
         } 

2、路由表打印

         uint8 *pRtBuf = NULL;
         rtgItem_t* rtTable;
         pRtBuf =osal_mem_alloc((short)rtnum* sizeof(rtgItem_t));
         if(pNtBuf!=NULL)
         {
         rtTable = (rtgItem_t *)pRtBuf;
         for(index=0;index<rtnum;index++)
              {
                NLME_GetRequest(nwkRoutingTable,index,(void *)rtTable);
                WRITE_ZIGBEE("nwkRoutingTable[%d]:\r\n",index);
                WRITE_ZIGBEE("dstAddress:%04x\r\n",rtTable->dstAddress);
                WRITE_ZIGBEE("nextHopAddress:%04x\r\n",rtTable->nextHopAddress);
                WRITE_ZIGBEE("expiryTime:%d\r\n",rtTable->expiryTime);
                WRITE_ZIGBEE("status:%d\r\n",rtTable->status);
                WRITE_ZIGBEE("options:%d\r\n\r\n",rtTable->options);
                rtTable++;
              }
         }

参考链接:https://blog.csdn.net/mahaichao540174345/article/details/7973785

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiye_pianzhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值