This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2745R10-Q1:RSSI 读数

Guru**** 2528390 points
Other Parts Discussed in Thread: BLE-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1559606/cc2745r10-q1-rssi-reading

器件型号:CC2745R10-Q1
Thread 中讨论的其他器件:BLE-STACK

工具/软件:

我已为 CC2745 安装最新的 SDK (simplelink_lowpower_f3_SDK_9_11_00_18)。 如何读取该 SDK 中的 RSSI。

此外、请分享此 SDK 的所有 API 详细信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Anto、

    为了在新 SDK 中读取 RSSI 值、您需要解析外设/中央事件处理程序中传入的消息数据包。 如果将 RSSI 值作为外围设备读取、则可以使用  BLEAPPUTIL_SCAN_REQ_RECEIVED  事件屏蔽。 这样、每次广播设备收到扫描请求时、便可访问 RSSI 信息。 下面是如何访问 Case 语句 Where 内的 RSSI 值的示例 pMsgData 是指向通用消息结构的指针。

     case BLEAPPUTIL_SCAN_REQ_RECEIVED:
     {
      int rssi_value; 
      BLEAppUtil_AdvEventData_t* lpts_scanReqReceived = (BLEAppUtil_AdvEventData_t*)pMsgData;
      rssi_value = lpts_scanReqReceived->pBuf->pScanReqRcv.rssi;
      break;
     }

    如果将 RSSI 值作为中央设备读取、则可以使用  BLEAPPUTIL_ADV_REPORT  事件屏蔽。 这样、您 就可以在每次发送广播时读取您周围正在广播的每个设备的 RSSI 值。

     case BLEAPPUTIL_ADV_REPORT:
     {
     int rssi_value;
      BLEAppUtil_ScanEventData_t *scanMsg = (BLEAppUtil_ScanEventData_t *)pMsgData;
      rssi_value = scanMsg->pBuf->pAdvReport.rssi;
      break;
     }

    如需更多信息、请单击此处 (从扫描请求部分获取 RSSI):  通用访问配置文件 (GAP)—SimpleLinkTm 低功耗 F3 SDK BLE5-Stack 用户指南 9.11.00 文档

    通用 BLE-Stack API 文档: TI BLE5-Stack API 文档:BLE-Stack API 参考

    谢谢、

    Eshaan Tibrewala

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Eshaan:

    该 RSSI 读数适合广播时间。 我需要连接的器件的 RSSI 读数。 连接成功后、我需要持续监控 RSSI。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Anto、

    感谢您的澄清。 您可以通过几种方法持续监控程序中的 RSSI 值、最好的方法实际上取决于您的用例。 如何规划 RSSI 监控?

    1、持续监控 RSSI 值的最简单方法是使用连接监控。 在连接监控中、您使用另一个芯片持续监控自身与连接设备之间的 RSSI 值。 这将为您提供主设备和已连接设备之间的 RSSI 值、以及连接监控设备和已连接设备之间的更强 RSSI 值。

    否则、您也可以订阅连接事件或 HCI 事件。 我已经概述了以下两个方面:

    case BLEAPPUTIL_CONN_EVENT_ALL:
    {
        int rssi_value;
        BLEAppUtil_gapConnData_t* connData = (BLEAppUtil_gapConnData_t *) pMsgData;
        rssi_value = connData->connEventRpt.lastRssi;
        break;
    }
    
    
    
    case BLEAPPUTIL_HCI_LE_EVENT_CODE:
    {
        int rssi_value;
        hciEvt_BLECteConnectionIqReport_t* hciData = (hciEvt_BLECteConnectionIqReport_t*)pMsgData;
        rssi_value = hciData.rssi;
        break;
    }

    这三种方法中的任何一种都应该有效、但如果您能提供您的用例、我可以更好地建议使用哪种方法。 谢谢。

    Eshaan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、  

    我只需要读取已连接设备的 RSSI、 我正在将 BLE 用作外设设备。 我 无法 在代码中获取事件 BLEAPPUTIL_CONN_EVENT_ALL。

    我 需要持续监控所连接器件的 RSSI 强度、并必须根据 RSSI 状态更改 PHY 值以实现快速数据传输。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Eshaan:

    工作正常、谢谢