主题中讨论的其他器件:CC2340R5
工具与软件:
下午好!
我使用 cc2340r5和 simplelink_lowpower_f3_sdk_8_10_01_02。
我的程序基于 basic_ble 并进行了一些逻辑修改。
我的问题是、 在 BLE 连接已初始化后、是否可以获取 RSSI?
我知道您可以从广播包获取 RSSI、或者在连接期间(如此处所示)
但我将尝试使用 HCI_ReadRssiCmd 来获取此值。 我可以确定我传递了正确的连接句柄、但因此、在处理 BLEAPPUTIL_HCI_COMMAND_COMPLET_EVENT_CODE 事件时、我得到的 pReturnParam 等于0。 在一篇 与另一个芯片相关的文章中、我们说 HCI_ReadRssiCmd 仅在建立 BT 连接后才能正常工作。
一般而言、可以获取已建立连接的 RSSI、还是仍然需要执行发送广播或重新连接的过程才能获得该值?
此外、我将提供具有函数调用和事件处理程序的代码、我可能漏掉了某些内容
HCI_ReadRssiCmd(conn_handle);
void BleConnection::hciGAPEventHandlerImpl(uint32 event, BLEAppUtil_msgHdr_t *pMsgData) { switch (event) { case BLEAPPUTIL_HCI_COMMAND_COMPLETE_EVENT_CODE: { hciEvt_CmdComplete_t *pHciMsg = (hciEvt_CmdComplete_t *)pMsgData; switch (pHciMsg->cmdOpcode) { case HCI_READ_RSSI: { int8_t rssi = *pHciMsg->pReturnParam; MenuController::getInstance()->printf( MenuController::getInstance()->rowToUint8( MenuController::MenuRows::APP_INFO_FIELD), 0, "rssi %u", rssi); } break; default: break; } } break; default: break; } }