This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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



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

  • 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()函数

    希望对您有所帮助!

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