我扫描设备并成功读取了全名,但是我想从广告中提取所有信息。
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);
}
}
不起作用
答案 0 :(得分:1)
esp_log_buffer_hex()
处于INFO
级别的日志。如果您未设置要记录的服务的日志级别,则不会看到消息。
确保您运行
esp_log_level_set("!!!!", ESP_LOG_INFO)
在调用esp_log_buffer_hex()
以启用您要记录的消息之前。