Zstack之RSSI信号值获取以及显示

来源:互联网 发布:js。push Array[0] 编辑:程序博客网 时间:2024/06/12 01:33
在zigbee设备建立了连接之后,我们一般在应用中都还是很关心它们之间的通讯信号强度的。

获取以Zstack为基础的zigbee通信设备的信号强度一般来说有两种方式:第一种是通过访问CC2530底层的信号状态寄存器,然后对其中数值进行计算,其中还需要参考电压值和温度,这种方法比较麻烦。第二种就是直接读取zigbee设备的AF消息结构体中的RSSI数值即可。在这里,我根据自己的实验和网上搜集的资料,介绍下第二种获取和显示RSSI值的方式。

RSSi值所在的结构体为:afIncomingMSGPacket_t,在该结构体中,有两个成员变量与通信质量有关。它们分别是:afIncomingMSGPacket_t->rssi和afIncomingMSGPacket_t->LinkQuality。其中rssi:received signal strenth indicator:即接收信号强度指示,是最显然的信号强度值。此数据类型为int8型,且为补码,所以需要先转换成原码才可用于显示。必须明白的一点是RSSI显然是从负数-0之间的一个数值,单位是dBm.所以实际的信号强度值为:(0xFF-rssi)(负数补码转原码).

代码示例:pkt->rssi=0xff-pkt->rssi.

然后再对实际的信号强度值进行ADCII码转换或者其他方式转换后供显示或其他之用。

代码示例:rssi_buf[0]=‘-’;

rssi_buf[1]=pkt->rssi/10+0x30;

rssi_buf[2]=pkt->rssi%10+0x30;

      HalUARTWrite(S0,rssi_buf,3);

0 0
原创粉丝点击