TI中文支持网
TI专业的中文技术问题搜集分享网站

协调器获取多个终端地址

一个协调器连接十个终端,如何能获取十个终端的短地址,求思路

VV:

终端在入网成功以后会发送

 device Announce,协调器收到这个device Announce就知道他们的地址了

aa qq:

temp=pkt->srcAddr.addr.shortAddr;

 

wenqi lu:

回复 VV:

device Announce ??是记录了我协调器连接的10个终端的地址吗?

wenqi lu:

回复 aa qq:

但是我需要获取10个终端

wenqi lu:

回复 VV:

HI VV/:

device Announce ??是记录了我协调器连接的10个终端的地址吗?还是组网成功的终端就会发生一个device Announce,然后我需要处理10次吗?

Viki Shi:

回复 wenqi lu:

每个终端都会发送device Announce,里面包含它本身的地址

Y.SH. Tang:

最笨有效的方法:

终端入网后,直接把自己的网络地址发送给协调器不就可以了吗?

void SendAddressToCoor( void )

 {   uint8 AddrData[3];   

 AddrData[0] = 0x00;    

 uint16 ShortAddr =  NLME_GetShortAddr();

 AddrData1] = ShortAddr>>8;  

AddrData[2] = ShortAddr & 0x00FF;  

 SendData(0x0000, AddrData, 4);

 }

VV:

回复 Y.SH. Tang:

两种方法,

1)节点在入网的时候都会发送Device Announce,这个Device Announce是广播数据,所以每个设备的Device Announce,Coordinator都能收到,而且在Device Announce 都带有这个设备的短地址,那么你的Coordinator也就可以获得所有终端设备的短地址了。

2)如果错过了Device Announce,那么在协议栈里面有现成的API ZDP_IEEEAddrReq()函数也可以使用获得终端设备的地址,具体参考附件的文档。

wenqi lu:

回复 Y.SH. Tang:

HI Y.SH. Tang:

       之前也是只想到这个办法,但是当要获取更多的终端并记录就会很麻烦

赞(0)
未经允许不得转载:TI中文支持网 » 协调器获取多个终端地址
分享到: 更多 (0)