main/ble_gap.c

changeset 31
ec5c7794dcd6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main/ble_gap.c	Mon Apr 17 14:54:35 2023 +0200
@@ -0,0 +1,58 @@
+/**
+ * @file ble_gap.c
+ * @brief BLE GAP service.
+ */
+
+#include "config.h"
+
+
+static const char *TAG = "ble_gap";
+
+static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param)
+{
+    switch (event) {
+	case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT:
+        	ble_balkon_adv_set_complete_handle();
+        	break;
+	case ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT:
+        	break;
+	case ESP_GAP_BLE_ADV_START_COMPLETE_EVT:
+        	//advertising start complete event to indicate advertising start successfully or failed
+        	if (param->adv_start_cmpl.status != ESP_BT_STATUS_SUCCESS) {
+        	    ESP_LOGE(TAG, "Advertising start failed");
+        	}
+        	break;
+	case ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT:
+        	if (param->adv_stop_cmpl.status != ESP_BT_STATUS_SUCCESS) {
+        	    ESP_LOGE(TAG, "Advertising stop failed");
+        	} else {
+        	    ESP_LOGI(TAG, "Stop adv successfully");
+        	}
+        	break;
+    	case ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT:
+        	ESP_LOGI(TAG, "update connection params status = %d, min_int = %d, max_int = %d,conn_int = %d,latency = %d, timeout = %d",
+                  param->update_conn_params.status,
+                  param->update_conn_params.min_int,
+                  param->update_conn_params.max_int,
+                  param->update_conn_params.conn_int,
+                  param->update_conn_params.latency,
+                  param->update_conn_params.timeout);
+        	break;
+    	default:
+		ESP_LOGI(TAG, "gap_event_handler(%d) unknown event", event);
+        	break;
+    }
+}
+
+
+void ble_balkon_gap_register(void)
+{
+    esp_err_t ret;
+
+    ret = esp_ble_gap_register_callback(gap_event_handler);
+    if (ret){
+        ESP_LOGE(TAG, "gap register error, error code = %x", ret);
+        return;
+    }
+}
+

mercurial