Thread 中讨论的其他器件:BLE-STACK
工具/软件:
我已为 CC2745 安装最新的 SDK (simplelink_lowpower_f3_SDK_9_11_00_18)。 如何读取该 SDK 中的 RSSI。
此外、请分享此 SDK 的所有 API 详细信息。
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.
工具/软件:
我已为 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)—SimpleLink 低功耗 F3 SDK BLE5-Stack 用户指南 9.11.00 文档
通用 BLE-Stack API 文档: TI BLE5-Stack API 文档:BLE-Stack API 参考
谢谢、
Eshaan Tibrewala
您好、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