54 lines
1.4 KiB
C
Executable File
54 lines
1.4 KiB
C
Executable File
/*
|
|
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
|
*/
|
|
/* Includes */
|
|
#include "ble_client.h"
|
|
#include "common.h"
|
|
#include "uart_bridge.h"
|
|
|
|
/* Private function declarations */
|
|
static void nimble_host_task(void *param);
|
|
|
|
/* Private functions */
|
|
static void nimble_host_task(void *param) {
|
|
ESP_LOGI(TAG, "nimble host task started");
|
|
|
|
/* This function won't return until nimble_port_stop() is executed */
|
|
nimble_port_run();
|
|
|
|
/* Clean up at exit */
|
|
vTaskDelete(NULL);
|
|
}
|
|
|
|
void app_main(void) {
|
|
esp_err_t ret;
|
|
|
|
/* NVS flash initialization (required by BLE stack) */
|
|
ret = nvs_flash_init();
|
|
if (ret == ESP_ERR_NVS_NO_FREE_PAGES ||
|
|
ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
|
|
ESP_ERROR_CHECK(nvs_flash_erase());
|
|
ret = nvs_flash_init();
|
|
}
|
|
if (ret != ESP_OK) {
|
|
ESP_LOGE(TAG, "failed to initialize nvs flash, error code: %d", ret);
|
|
return;
|
|
}
|
|
|
|
/* NimBLE stack initialization */
|
|
ret = nimble_port_init();
|
|
if (ret != ESP_OK) {
|
|
ESP_LOGE(TAG, "failed to initialize nimble stack, error code: %d",
|
|
ret);
|
|
return;
|
|
}
|
|
|
|
uart_bridge_init();
|
|
ble_client_init();
|
|
|
|
/* Start NimBLE host task thread and return */
|
|
xTaskCreate(nimble_host_task, "NimBLE Host", 4 * 1024, NULL, 5, NULL);
|
|
}
|