获取自身的和父节点网络地址、MAC地址
获取自身的和父节点网络地址、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; uint8 myMAC; uint8 pNWK; uint8 pMAC; }RFTX;void ShowInfo(void){ RFTX rftx; uint8 buf; uint8 changline={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=ch+((ch<10)?'0':'7'); ch=*xad&0x0F; dest[(i<<1)+1]=ch+((ch<10)?'0':'7');}}
页:
[1]