TI论坛
直播中

谢辅仁

7年用户 144经验值
私信 关注
[问答]

请问协调器如何获取终端的IEEE地址?

终端入网后,协调器要向网关上报加入的终端的信息,此时需要获得终端的IEEE地址。网上查了不少资料,大概意思是终端入网过程中发自身数据给协调器时,含有自身的IEEE地址,协调器会把终端的信息存储在“设备表”中,但怎么从设备表中读取对应短地址终端的IEEE地址数据呢?ZDO_ParseAddrReq()函数返回值好像只是信息标识符,应用层调用ZDO_ParseAddrRsp()对数据包解析也不清楚怎么使用,请指教哈

回帖(2)

庄当甜

2018-8-10 08:58:42
1  您可以利用NLME.h里面定义的专门API来让终端设备获取自身的IEEE地址再发送给协调器
获取设备自身IEEE地址

extern byte *NLME_GetExtAddr( void );
2 您也可以利用OnBoard.c里定义的全局变量aExtendedAddress获取IEEE地址,如下:
uint8 * pValue[Z_EXTADDR_LEN];
osal_memcpy(pValue, &aExtendedAddress, Z_EXTADDR_LEN);
3 您也可以利用利用zb_GetDeviceInfo()函数
希望对您有所帮助!
举报

谢辅仁

2018-8-10 09:05:01
引用: 小Qhhui 发表于 2018-8-10 08:58
1  您可以利用NLME.h里面定义的专门API来让终端设备获取自身的IEEE地址再发送给协调器
获取设备自身IEEE地址

谢谢您的答复,我在协调器上使用APSME_LookupExtAddr(shortaddr,extaddr)根据已知短地址也获取到了终端的IEEE地址
举报

更多回帖

发帖
×
20
完善资料,
赚取积分