关于zigbee 使用zstack 发送数据的问题
时间:10-02
整理:3721RD
点击:
我们的需求是,根据rssi值的大小来进行定位
现在节点一广播
节点二接收到广播的数据包,提取里面的rssi值,根据定义得知rssi是(int)整型,可是 haluartwrite 函数只能发送unsigned char* 型的数据,
于是我进行强制转换,将转换后的数据作为数据发送给协调器,协调器得到数据之后,将unsigned char*型的数据转换为int型,int型数据根据asc码转换,通过串口打印出来。
思路是这样的,可是两个过程的rssi值都是乱码的状态,还请知道的大神指点一下,这个问题应该怎么解决才可以得到rssi值?
(1) rssi的int是int8, 就一个字节
(2)你是从哪个函数获得RSSI的?
int z= pkt->rssi;
我是这样拿出来的。此时的rssi值是负值
然后取负,变为正数。
int z= pkt->rssi;
int a=-z;
unsigned char* j;
j=(unsigned char*)a;
这是我强制转换unsigned char*,使用点播将rssi值发给协调器,现在的rssi值还是正确的。
int x;
unsigned char* y;
y=pkt->cmd.Data;
x=(int)y;
HalUARTWrite(0,&asc_16[x/10],1);
HalUARTWrite(0,&asc_16[x%10],1);
但是现在打印出来的时候数据就乱码了,请问这个是怎么回事?