ESP-IDF BLE扫描广告包

问题描述

我正在开发ESP32芯片,并试图从广告中获取所有可用信息。为此,我将NORDIC的nRF connect应用与准备广告商

enter image description here

一起使用

我扫描设备并成功读取了全名,但是我想从广告中提取所有信息。

sudo xattr -dr com.apple.quarantine /Applications/GoLand.app 
sudo chmod -R 777 /Applications/GoLand.app

您知道为什么case ESP_GAP_BLE_SCAN_RESULT_EVT: if(param->scan_rst.search_evt == ESP_GAP_SEARCH_INQ_RES_EVT) { if(!alreadyDiscovered(param->scan_rst.bda)) { printf("##############################\n"); esp_log_buffer_hex("!!!!",param->scan_rst.ble_adv,62); printf("##############################\n"); printf("ESP_GAP_BLE_SCAN_RESULT_EVT\n"); printf("Device found: ADDR="); for(int i = 0; i < ESP_BD_ADDR_LEN; i++) { printf("%02X",param->scan_rst.bda[i]); if(i != ESP_BD_ADDR_LEN -1) printf(":"); } // try to read the complete name uint8_t *adv_name = NULL; uint8_t adv_name_len = 0; adv_name = esp_ble_resolve_adv_data(param->scan_rst.ble_adv,ESP_BLE_AD_TYPE_NAME_CMPL,&adv_name_len); if(adv_name) { printf("\nFULL NAME="); for(int i = 0; i < adv_name_len; i++) printf("%c",adv_name[i]); } printf("\n\n"); addDevice(param->scan_rst.bda); } } 不起作用

解决方法

esp_log_buffer_hex()处于INFO级别的日志。如果您未设置要记录的服务的日志级别,则不会看到消息。

确保您运行

esp_log_level_set("!!!!",ESP_LOG_INFO)

在调用esp_log_buffer_hex()以启用您要记录的消息之前。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...