diff --git a/src/baros_ble.c b/src/baros_ble.c index 407757b..7d115a1 100644 --- a/src/baros_ble.c +++ b/src/baros_ble.c @@ -238,7 +238,13 @@ static int ble_gap_event(struct ble_gap_event *event, void *arg) { case BLE_GAP_EVENT_DISC: { struct ble_hs_adv_fields fields; - ESP_ERROR_CHECK(ble_hs_adv_parse_fields(&fields, event->disc.data, event->disc.length_data)); + esp_err_t err = ble_hs_adv_parse_fields(&fields, event->disc.data, event->disc.length_data); + + if(err != 0) { + ESP_LOGE(TAG, "error parsing discovery fields: 0x%02x", err); + + return err; + } if( fields.svc_data_uuid16_len == 3 && @@ -294,6 +300,7 @@ static int ble_gap_event(struct ble_gap_event *event, void *arg) { case BLE_GAP_EVENT_DISCONNECT: ESP_LOGI(TAG, "disconnect; reason=%d\n", event->disconnect.reason); + //esp_event_post(EVENT_BAROS_BLE, BAROS_BLE_DISC, discovery, sizeof(baros_ble_discovery_t), portMAX_DELAY); /* Connection terminated; resume advertising */ ble_advertise();