如何获得RSSi值,从广播中
一个主设备和从设备,不进行连接,主设备如何从从设备的广播中得到RSSI?
希望能给些提示和建议,谢谢!
一般做法是建立连接后,调用函数才能获取RSSI
不知道你的目的为何,但是我查了一下源码,主机的回调函数GAP_DEVICE_INFO_EVENT可告知主机收到的从机的广播数据,这个里面就包括RSSI值。所以从理论上来说也不是不能实现
pan,
在simpleBLECentral.c中,simpleBLECentralEventCB()函数里面GAP_DEVICE_INFO_EVENT 事件,这是设备查找,找到从设备广播的时候的事件。
在这下面:pEvent->deviceInfo.rssi就是 广播中得到的RSSI的值了。
谢谢你的提示,我在试验后,给予证明
RSSI是来表示接收机测量电路所得到的接收机输入的平均信号强度指示,从广播中读取的RSSI数据,则是怎么计算出来的呢
显示的是十进制,比如210,先转换为二进制,11010010,由于第一位符号位是1代表负数,所以二进制原码为10101101,就是-45dBm
请问你试验成功了没有,我找了很久都找不到rssi在哪里读取的,
从机直接把RSSI值广播出来就可以了
设置扫描 广播的周期:
GAP_SetParamValue( TGAP_GEN_DISC_SCAN, DEFAULT_SCAN_DURATION );
可以找到参数的定义
#define TGAP_GEN_DISC_SCAN 2 //!< Minimum time to perform scanning, when performing General Discovery proc (mSec)
// Scan duration in ms
#define DEFAULT_SCAN_DURATION 4000
请问这两个参数有什么区别
嗨Yan,为什么这个帖子直接按你说的获取Rssi的值,就不行呢。代码如下
int8 newRSSI = -(pEvent->deviceInfo.rssi); LCD_WRITE_STRING_VALUE("RSSI -dB:",(uint8)(newRSSI),10,HAL_LCD_LINE_1);
也不行啊。。。这个RSSI值就是测得广播设备的广播RSSI值的
帖子地址 http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/78284/222958.aspx#222958
同问!
同问?zouzou liang
设置扫描 广播的周期:
GAP_SetParamValue( TGAP_GEN_DISC_SCAN, DEFAULT_SCAN_DURATION );
可以找到参数的定义
#define TGAP_GEN_DISC_SCAN 2 //!< Minimum time to perform scanning, when performing General Discovery proc (mSec)
// Scan duration in ms
#define DEFAULT_SCAN_DURATION 4000请问这两个参数有什么区别