微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2540在扫描的时候能读取RSSI吗?

CC2540在扫描的时候能读取RSSI吗?

时间:10-02 整理:3721RD 点击:

在central端,GAPCentralRole_StartRssi函数能读到RSSI的值,,但是这个需要连接之后才能读到。

现在想请问下,1,在扫描的时候,能够读到RSSI的值吗?

2,Packet Sniffer接收蓝牙信号后,每次跟着RSSI的值,请问,Packet Sniffer是怎么工作的,一直在扫描吗?扫描间隔呢?

顶起来啊,,没人回答我啊。。

你应该再仔细看下主从机的源码,有很多值得研究的地方,

主机Role Event Callback回调函数里GAP_DEVICE_INFO_EVENT里是告知主机接收到从机的Adv Data或者Scan Response,

pEvent->deviceInfo结构体成员里有很多重要的参数,其中就包括rssi值。大多数时候,别人比较关注他的:

uint8 *pEvtData;          //!< Data field of advertisement or SCAN_RSP

当然,也有你要的rssi

ghostyu的回答给了我很大的启发!我想请问如果不扫描,simpleBLEPeripheral#1是否可以读取到simpleBLEPeripheral#2的rssi值。

你好有相关的例程吗,可以发送一段怎么调用的具体程序给我吗?

在不连接的情况下,我读取的pEvent->deviceInfo结构体里的rssi一直是4,这正常嘛?
另外, 应该怎么从uint8 *pEvtData;数据里找出rssi?

    case GAP_DEVICE_INFO_EVENT:
      {
        simpleBLEAddDeviceInfo( pEvent->deviceInfo.addr, pEvent->deviceInfo.addrType );
        int8 rssiAver;
        int8 newRSSI = -(pEvent->deviceInfo.rssi);

按照如上红色字体 方法读取RSSI,就可以了。

谢谢,终于明白了。

先前我一直是在下面这个事件里找RSSI的,值始终不变。

case GAP_DEVICE_DISCOVERY_EVENT:
{
// discovery complete
simpleBLEScanning = FALSE;

}

仔细看这个宏的定义才发现一个是扫描过程执行,一个是扫描完成后执行。

 

十分感谢,ghostyu和Mr Tao ,想进一步问一下,现阶段测出点对点的rssi了,下一步您是如何推进的。谢谢了。

Mr Hu,我现在只是调研阶段,还未运用到实际的应用中,不过,初步设想可以用这个rssi测距,进而达到定位的效果。

十分感谢Mr Dong,我也在做室内定位,现在主要处于课题后期。关于rssi测距的精度建模上,还没有考虑。现在主要考虑节点的接入问题。

您客气了Mr Hu,精度于定位应该是一个比较关键也比叫棘手的问题,我这边还没有考虑关于精度的问题,不过,听说有一些可参考的指纹算法,具体我也不太清楚,有时间看一下。

我通过测试发现,这个值和sniffer抓取出来的相差10dbm,请问你遇到过吗?

我通过测试发现,这个值和sniffer抓取出来的相差10dbm,请问你遇到过吗?

 你好,请问你这个问题现在解决了么?请教怎么解决的啊?

也没解决啊。我还丢包严重

你的这个构想有进展么,实现定位了么

我想读取多路的rssi,应该怎么弄个呢,在一个广播信道上怎么读取个个从设备的RSSI呢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top