打印
[ZigBee]

获取自身的和父节点网络地址、MAC地址

[复制链接]
1198|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YingziSeek|  楼主 | 2014-12-30 09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

获取自身的和父节点网络地址、MAC地址

1、实验内容: 协调器上电后建立网路,路由器自动加入网络。然后路由器调用相关的API函数获取本身的网络地址、MAC地址,父节点网络地址和父节点MAC地址,然后通过串口将其发送到PC端的串口调试助手

2、知识补充:获取本身的网络地址、MAC地址,父节点网络地址和父节点MAC地址的API函数。

     uinit16 NLME_GetShortAddr(void)  返回该节点的网络地址。

     byte*   NLME_GetExtAddr(void)  返回指向该节点MAC地址的指针。

     uint16 NLME_GetCoordShortAddr(void) 函数返回父节点的网络地址

     void    NLME_GetCoordExtAdd(byte* buf)该函数的参数是指向存放父节点的MAC地址的缓冲区的指针。

     此外,在ZigBee还有,已知节点的网络地址查询节点的IEEE地址或已知节点的IEEE地址查询该节点的网络地址。


3、部分程序
void ShowInfo(void);void To_string(uint8* dest,char* src,uint8 length);typedef struct RFTXBUF{ uint8 myNWK[4]; uint8 myMAC[16]; uint8 pNWK[4]; uint8 pMAC[16]; }RFTX;void ShowInfo(void){ RFTX rftx; uint8 buf[8]; uint8 changline[2]={0x0A,0x0D}; uint16 nwk; nwk=NLME_GetShortAddr();To_string(rftx.myNWK,(uint8*)&nwk,2);      //uint8*4 uint16=uint8*2To_string(rftx.myMAC,NLME_GetExtAddr(),8);//uint8*16 byte*8 nwk=NLME_GetCoordShortAddr();To_string(rftx.pNWK,(uint8*)&nwk,2);NLME_GetCoordExtAddr(buf);To_string(rftx.pMAC,buf,8); HalUARTWrite(0,"NWK:",osal_strlen("NWK:")); HalUARTWrite(0,rftx.myNWK,4);  HalUARTWrite(0,"  MAC:",osal_strlen("  MAC:")); HalUARTWrite(0,rftx.myMAC,16);  HalUARTWrite(0,"  p-NWK:",osal_strlen("  p-NWK:")); HalUARTWrite(0,rftx.pNWK,4);  HalUARTWrite(0,"  p-MAC:",osal_strlen("  p-MAC:")); HalUARTWrite(0,rftx.pMAC,16);  HalUARTWrite(0,changline,2);}void To_string(uint8 *dest,char* src,uint8 length)//二进制转化为十六进制数
{  uint8* xad;  uint8 i=0;  uint8 ch;  xad=src+length-1;  for(i=0;i<length;i++,xad--)  {   ch=(*xad>>4)&0x0F;  //除以十六   dest[i<<1]=ch+((ch<10)?'0':'7');   ch=*xad&0x0F;   dest[(i<<1)+1]=ch+((ch<10)?'0':'7');  }}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:努力学习就好

13

主题

507

帖子

1

粉丝