main/ble_gap.c

Mon, 17 Apr 2023 14:54:35 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Mon, 17 Apr 2023 14:54:35 +0200
changeset 31
ec5c7794dcd6
permissions
-rw-r--r--

Added basic BLE code.

/**
 * @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