获取终端的IEEE的解决办法是IEEE Address Request
积累
得到父节点的网络地址:uint16 NLME_GetCoordShortAddr( void );
得到父节点的物理地址:void NLME_GetCoordExtAddr( byte * );
得到自己的网络地址:uint16 NLME_GetShortAddr( void );
得到自己的物理地址:byte *NLME_GetExtAddr( void );
无线获取物理地址(IEEE)或者网络地址(短地址)
根据已知物理地址查询远程设备网络地址,作为一个广播信息发送给网络中的所有设备:
afStatus_t ZDP_NwkAddrReq( byte *IEEEAddress, byte ReqType,
byte StartIndex, byte SecurityEnable )
根据已知网络地址查询远程设备物理地址,作为一个广播信息发送给网络中的所有设备:
afStatus_t ZDP_IEEEAddrReq( uint16 shortAddr, byte ReqType,
byte StartIndex, byte SecurityEnable )
本地获取物理地址(IEEE)或者网络地址(短地址)
此方法快速查询,不启动无线查询,而是根据已存储于地址管理器中的网络(物理)地址查询物理(网络)地址:
查找基于网络地址的物理地址:
uint8 APSME_LookupExtAddr( uint16 nwkAddr, uint8* extAddr );
查找基于物理地址的网络地址:
uint8 APSME_LookupNwkAddr( uint8* extAddr, uint16* nwkAddr );
你的问题是终端通过路由入网没所以协调器本地查询是找不到的此处只要使用
afStatus_t ZDP_IEEEAddrReq( uint16 shortAddr, byte ReqType,
byte StartIndex, byte SecurityEnable );
在ZDO回调中解析即可