主题中讨论的其他部件:BLE堆栈
大家好!
我正在尝试使用SimpleBLEBroadcaster示例中的v BLE 3.0 的扫描请求报告功能。 我阅读了HCI BLE堆栈API和TI BLE供应商特定的HCI指南,但到目前为止我没有成功。 这就是我所做的:
1.从 堆栈库中的build_config.opt取消注释-DEXTRA_ADV_FEAT=SCAN_REQ_RPT_CFG。
2.在 SimpleBLEBroadcaster_init()中添加了HCI_EXT_ScanReqRptCmd (HCI_EXT_ENable_SCAN_REQUEST_REPORT)。 这始终是成功的:
//启动设备
void GAPRole_StartDevice(&SIMPLEBLEBroadcaster_BroadcasterCBs);
//使用GAP注册HCI/Host Messages
GAP_RegisterForMsgs (selfEntity);
//配置蓝牙低能耗协议堆栈以返回扫描请求报告事件
hciStatus_t状态= HCI_EXT_ScanReqRptCmd (HCI_EXT_ENable_scan_request_report);
如果(status == HCI_SUCCESS){
//Success!
} 否则{}
3.在 SimpleBLEBroadcaster中检查这些事件。StackMsg:
开关(pMsg->event) { 案例HCI_GAGE_EVENT_EVENT: { //处理HCI消息 交换机(pMsg->status) { 案例HCI_LE_EVENT_CODE: { hciEvt_BLEScanReqReport_t* scanRequestReport =(hciEvt_BLEScanReqReport_t*)pMsg; IF (scanRequestReport -> BLEEventCode == HCI_BLE_SCAN_REQ_REPORT _EVENT) { //如果收到扫描请求报告,请执行某些操作 } } 中断;
IF (scanRequestReport -> BLEEventCode == HCI_BLE_SCAN_REQ_REQ_REPORT _EVENT)从不为TRUE。
我尝试了不同的解决方案,但它仍然不起作用。 非常感谢你的帮助:)。
巴西,
Ismael
**EDIT:广告类型已设置为可扫描无方向以接收扫描请求。