ESP-IDF BLE扫描广告包

时间:2020-09-11 05:29:50

标签: bluetooth-lowenergy esp32 esp-idf

我正在开发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); } } 不起作用

1 个答案:

答案 0 :(得分:1)

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

确保您运行

esp_log_level_set("!!!!", ESP_LOG_INFO)

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