在做协调器与上位机进行通信时,往往我们想看到网络地址,这时调用NLME_GetShortAddr()就能得到,但是如果想显示出来就没那么容易了,需要用到下面这个函数,而调用方法是:trans_nwkaddr_to_uint8(NLME_GetShortAddr())。
void trans_nwkaddr_to_uint8(uint16 x)
{
//nwk_addr[4];
uint8 temp_nekaddr[2];
uint8* p_x;
uint8 c;
uint8 temp;
int nwk_addr_numb = 0;
uint8 temp_data[80];
p_x = temp_nekaddr;
temp_nekaddr[0] = HI_UINT16(NLME_GetShortAddr());
temp_nekaddr[1] = LO_UINT16(NLME_GetShortAddr());
for(int i=0;i<2;i++)
{
c = (*p_x>>4)& 0xf;
if (c > 9)
{
temp = ('A'+c-10);
temp_data[nwk_addr_numb++] = temp;
}
else
{
temp = ('0'+c);
temp_data[nwk_addr_numb++] = temp;
}
//LSDigit
c = *p_x & 0xf;
if (c > 9)
{
temp = ('A'+c-10);
temp_data[nwk_addr_numb++] = temp;
}
else
{
temp = ('0'+c);
temp_data[nwk_addr_numb++] = temp;
}
p_x++;
}
for(int i=0;i<4;i++)
nwk_addr[i] = temp_data[i];
}