refer to  http://blog.csdn.net/tanqiuwei/article/details/7640952

第一种方法,利用NLME.h里面定义的专门API

获取设备自身IEEE地址
extern byte *NLME_GetExtAddr( void );

获取设备自身网络地址
extern uint16 NLME_GetShortAddr( void );

获取父设备网络地址
extern uint16 NLME_GetCoordShortAddr( void );

获取父设备IEEE地址
extern void NLME_GetCoordExtAddr( byte * );

第二种方法:
利用zb_GetDeviceInfo()函数
查看该函数定义即可知用法:
void zb_GetDeviceInfo ( uint8 param, void *pValue )
{
switch(param)
{
    case ZB_INFO_DEV_STATE:
      osal_memcpy(pValue, &devState, sizeof(uint8));
      break;
    case ZB_INFO_IEEE_ADDR:
      osal_memcpy(pValue, &aExtendedAddress, Z_EXTADDR_LEN);
      break;
    case ZB_INFO_SHORT_ADDR:
      osal_memcpy(pValue, &_NIB.nwkDevAddress, sizeof(uint16));
      break;
    case ZB_INFO_PARENT_SHORT_ADDR:
      osal_memcpy(pValue, &_NIB.nwkCoordAddress, sizeof(uint16));
      break;
    case ZB_INFO_PARENT_IEEE_ADDR:
      osal_memcpy(pValue, &_NIB.nwkCoordExtAddress, Z_EXTADDR_LEN);
      break;
    case ZB_INFO_CHANNEL:
      osal_memcpy(pValue, &_NIB.nwkLogicalChannel, sizeof(uint8));
      break;
    case ZB_INFO_PAN_ID:
      osal_memcpy(pValue, &_NIB.nwkPanId, sizeof(uint16));
      break;
    case ZB_INFO_EXT_PAN_ID:
      osal_memcpy(pValue, &_NIB.extendedPANID, Z_EXTADDR_LEN);
      break;
}
}
例如要获取设备短地址,可以这样:
uint16 my_short_addr;
zb_GetDeviceInfo(ZB_INFO_SHORT_ADDR,my_short_addr);

第三种方法:利用上述zb_GetDeviceInfo()函数的定义,同样可知,通过读取_NIB的值也可以获取地址信息,如下调用即可
uint16 my_short_addr = _NIB.nwkDevAddress;

第四种方法:直接读NV,方法如下:
#include "OSAL_Nv.h"
uint8 pValue[8];
osal_nv_read(ZCD_NV_EXTADDR ,0 , Z_EXTADDR_LEN, pValue);
pValue里保存的即是设备扩展地址

第五种方法,利用OnBoard.c里定义的全局变量aExtendedAddress获取IEEE地址,如下:
uint8 pValue[Z_EXTADDR_LEN];
osal_memcpy(pValue, &aExtendedAddress, Z_EXTADDR_LEN);

第六种方法,利用ZMacGetReq()函数,如下:
#include "ZMAC.h"
#include "zmac_internal.h"
uint8  pValue[Z_EXTADDR_LEN];

ZMacGetReq(ZMacExtAddr,pValue);

其中第3中方法是获得NIB属性,NIB属性如下:

typedef struct
{byte  SequenceNum;byte  PassiveAckTimeout;byte  MaxBroadcastRetries;byte  MaxChildren;byte  MaxDepth;byte  MaxRouters;//neighborEntry_t *       pNeighborTable;byte  dummyNeighborTable;     // to make everything a byte!!byte  BroadcastDeliveryTime;byte  ReportConstantCost;byte  RouteDiscRetries;//rtgEntry_t *                pRoutingTable;byte  dummyRoutingTable;      // to make everything a byte!!byte  SecureAllFrames;byte  SecurityLevel;byte  SymLink;byte  CapabilityInfo;uint16 TransactionPersistenceTime;byte   nwkProtocolVersion;// non-standard attributesbyte  RouteDiscoveryTime;byte  RouteExpiryTime;        // set to 0 to turn off expiration of routes// non-settableuint16  nwkDevAddress;byte    nwkLogicalChannel;uint16  nwkCoordAddress;byte    nwkCoordExtAddress[Z_EXTADDR_LEN];uint16  nwkPanId;// Other global items - non-settablenwk_states_t  nwkState;uint32        channelList;byte          beaconOrder;byte          superFrameOrder;byte          scanDuration;byte          battLifeExt;uint32        allocatedRouterAddresses;uint32        allocatedEndDeviceAddresses;byte          nodeDepth;// Version 1.1 - extended PAN IDuint8         extendedPANID[Z_EXTADDR_LEN];// Key informationuint8      nwkKeyLoaded;nwkKeyDesc nwkActiveKey;nwkKeyDesc nwkAlternateKey;// Zigbee Pro extensionsuint8      nwkAddrAlloc;uint8      nwkUniqueAddr;uint8      nwkLinkStatusPeriod;   // The time in seconds betwee link status// command framesuint8      nwkRouterAgeLimit;     // The number of missed link status // command frames before resetting the // link cost to zerouint8      nwkUseMultiCast;// ZigBee Pro extentions: MTO routinguint8      nwkIsConcentrator;             // If set, then the device is concentratoruint8      nwkConcentratorDiscoveryTime;  // Time period between two consecutive MTO route discoveryuint8      nwkConcentratorRadius;         // Broadcast radius of the MTO route discoveryuint8      nwkAllFresh;uint8      nwkSrcRtgExpiryTime;uint16     nwkManagerAddr;        // Network Manager Addressuint16     nwkTotalTransmissions;uint8      nwkUpdateId;
} nwkIB_t;

其中第6中方法是获得MIB属性,MIB属性如下:

// MAC PIB Attributes
enum
{ZMacAckWaitDuration                   = MAC_ACK_WAIT_DURATION,ZMacAssociationPermit                 = MAC_ASSOCIATION_PERMIT,ZMacAutoRequest                       = MAC_AUTO_REQUEST,ZMacBattLifeExt                       = MAC_BATT_LIFE_EXT,ZMacBattLeftExtPeriods                = MAC_BATT_LIFE_EXT_PERIODS,ZMacBeaconMSDU                        = MAC_BEACON_PAYLOAD,ZMacBeaconMSDULength                  = MAC_BEACON_PAYLOAD_LENGTH,ZMacBeaconOrder                       = MAC_BEACON_ORDER,ZMacBeaconTxTime                      = MAC_BEACON_TX_TIME,ZMacBSN                               = MAC_BSN,ZMacCoordExtendedAddress              = MAC_COORD_EXTENDED_ADDRESS,ZMacCoordShortAddress                 = MAC_COORD_SHORT_ADDRESS,ZMacDSN                               = MAC_DSN,ZMacGTSPermit                         = MAC_GTS_PERMIT,ZMacMaxCSMABackoffs                   = MAC_MAX_CSMA_BACKOFFS,ZMacMinBE                             = MAC_MIN_BE,ZMacPanId                             = MAC_PAN_ID,ZMacPromiscuousMode                   = MAC_PROMISCUOUS_MODE,ZMacRxOnIdle                          = MAC_RX_ON_WHEN_IDLE,ZMacShortAddress                      = MAC_SHORT_ADDRESS,ZMacSuperframeOrder                   = MAC_SUPERFRAME_ORDER,ZMacTransactionPersistenceTime        = MAC_TRANSACTION_PERSISTENCE_TIME,ZMacAssociatedPanCoord                = MAC_ASSOCIATED_PAN_COORD,ZMacMaxBE                             = MAC_MAX_BE,ZMacMaxFrameTotalWaitTime             = MAC_MAX_FRAME_TOTAL_WAIT_TIME,ZMacMaxFrameRetries                   = MAC_MAX_FRAME_RETRIES,ZMacResponseWaitTime                  = MAC_RESPONSE_WAIT_TIME,ZMacSyncSymbolOffset                  = MAC_SYNC_SYMBOL_OFFSET,ZMacTimestampSupported                = MAC_TIMESTAMP_SUPPORTED,ZMacSecurityEnabled                   = MAC_SECURITY_ENABLED,// Proprietary ItemsZMacPhyTransmitPower                  = MAC_PHY_TRANSMIT_POWER,ZMacChannel                           = MAC_LOGICAL_CHANNEL,ZMacExtAddr                           = MAC_EXTENDED_ADDRESS,ZMacAltBE                             = MAC_ALT_BE,// JunkZMacACLDefaultSecurityMaterialLength  = 0,     // not implementedZMacTxGTSId                           = 1,     // not implementedZMacUpperLayerType                    = 2,     // not implementedZMacRxGTSId                           = 3,     // not implementedZMacSnoozePermit                      = 4      // not implemented
};

转载于:https://www.cnblogs.com/-song/archive/2013/03/13/3331820.html

Zigbee 获取设备地址信息相关推荐

  1. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

  2. 小程序获取用户地址信息api

    小程序获取用户地址信息api 前台部分 <view class="address-wraper"><view bindtap="chooseAddres ...

  3. 微信h5获取用户地址信息

    微信h5页面获取用户地址信息(vue+Java)(清风竹语) 前言: 与之前获取用户信息相同,这次获取用户地址信息也是在用户进入该页面之后,通过取得用户经纬度,在调用高德地图的api获得位置信息. 流 ...

  4. 获取IP地址信息的API合集

    今天给大家分享一些获取IP地址信息的API合集 一.ip.cn查询网获取当前客户端IP 二.ip查询网获取当前客户端IP 三.百度获取IP地址信息 四.本站获取当前客户端IP信息 五.其他平台获取IP ...

  5. WEB开发 高德地图应用,初始加载,地图定位,层级变化控制,根据经纬度获取详细地址信息,点击事件以及地图自适应

    1.前台html位置准备 <div id="Sharingrouter">             <div id="container" r ...

  6. Android -- 获取设备硬件信息

    Android – 获取设备硬件信息 通过 Build 获取指定字段信息: 信息 方法 例子 主板 Build.BOARD PAR 系统定制商 Build.BRAND HUAWEI 硬件名称 Buil ...

  7. Android 获取设备各种信息以及其它

    做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能. TelephonyManager tm = (Tele ...

  8. Linux下获取设备IPMI信息常用工具

    1.asu (1)概述 asu是IBM官方提供的一个命令行工具,全称IBM Advanced Settings Utility,可以对IMM进行操作. (2)安装 从官网上下载asu对应的RPM安装包 ...

  9. iOS开发-获取设备型号信息

    开发中有的时候查看设计统计数据,或者通过日志查看错误信息,这个时候我们就需要获取获取设备信息,看下关于设备有几种方法: 1 2 3 4 5 NSLog(@"%@",[[UIDevi ...

最新文章

  1. 防止代码变质的思考与方法
  2. 无刷新提交表单(非Ajax实现)
  3. 软件商店下载java_Sun升级Java应用商店
  4. WPF中读取txt文件并让其在RichTextBox中显示
  5. k8s:组件网络通讯方式
  6. 指令篇: 查看系统版本信息___uname
  7. JSP页面的继承(extends)
  8. IROS 2017上,这些厂商将会给我们展示什么样的黑科技?
  9. 网页动态加载图片 通过JS和jquery实现。
  10. 虚拟机如何设置ftp服务器,虚拟机设置ftp服务器配置
  11. c语言求20项FBNC,大学C语言 结业作业 暗影行者
  12. TF2.0-tf.keras.layers.Concatenate
  13. WinHTTP Web Proxy Auto-Discovery Service
  14. python求解LeetCode习题Fraction to Recurring Decimal
  15. 有幸为鲍勃大叔的封山之作《匠艺整洁之道》写了推荐序,顺手赠书!
  16. 后端开发面试自我介绍_Java后端面试总结
  17. 计算机注册表管理,注册表命令,教您电脑怎么打开注册表编辑器
  18. Photoshop照片模糊变清晰大全
  19. Python自动化测试中的参数化使用
  20. iOS之Swift实现二维码扫描

热门文章

  1. Android开发技巧——大图裁剪
  2. 通过错误的sql来测试推理sql的解析过程
  3. ASP.NET MVC 登录验证
  4. Spring Boot快速搭建Spring框架
  5. 液态金属和Liquidmetal公司
  6. Android windowSoftInputMode属性解析
  7. android 帧动画的使用
  8. android BufferedOutputStream的使用
  9. minSdkVersion = targetSdkVersion = compileSdkVersion
  10. 关于@Autowired后Spring无法注入的问题