mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-30 18:57:19 +02:00
ble_mesh: Remove NimBLE implementation for ESP-BLE-MESH
This commit is contained in:
@ -282,7 +282,6 @@ if(CONFIG_BT_ENABLED)
|
|||||||
|
|
||||||
if(CONFIG_BLE_MESH)
|
if(CONFIG_BLE_MESH)
|
||||||
list(APPEND COMPONENT_ADD_INCLUDEDIRS bluedroid/osi/include)
|
list(APPEND COMPONENT_ADD_INCLUDEDIRS bluedroid/osi/include)
|
||||||
list(APPEND COMPONENT_SRCS "esp_ble_mesh/mesh_core/bluedroid_host/mesh_bearer_adapt.c")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
@ -327,6 +326,7 @@ if(CONFIG_BT_ENABLED)
|
|||||||
"esp_ble_mesh/mesh_common/mesh_common.c"
|
"esp_ble_mesh/mesh_common/mesh_common.c"
|
||||||
"esp_ble_mesh/mesh_common/mesh_kernel.c"
|
"esp_ble_mesh/mesh_common/mesh_kernel.c"
|
||||||
"esp_ble_mesh/mesh_common/mesh_util.c"
|
"esp_ble_mesh/mesh_common/mesh_util.c"
|
||||||
|
"esp_ble_mesh/mesh_core/bluedroid_host/mesh_bearer_adapt.c"
|
||||||
"esp_ble_mesh/mesh_core/storage/settings_nvs.c"
|
"esp_ble_mesh/mesh_core/storage/settings_nvs.c"
|
||||||
"esp_ble_mesh/mesh_core/access.c"
|
"esp_ble_mesh/mesh_core/access.c"
|
||||||
"esp_ble_mesh/mesh_core/adv.c"
|
"esp_ble_mesh/mesh_core/adv.c"
|
||||||
|
@ -23,17 +23,6 @@
|
|||||||
#define BLE_MESH_ADV_TASK_CORE TASK_PINNED_TO_CORE
|
#define BLE_MESH_ADV_TASK_CORE TASK_PINNED_TO_CORE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#define BLE_MESH_MAX_CONN CONFIG_BT_NIMBLE_MAX_CONNECTIONS
|
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_PINNED_TO_CORE
|
|
||||||
#define BLE_MESH_ADV_TASK_CORE (CONFIG_BT_NIMBLE_PINNED_TO_CORE < portNUM_PROCESSORS ? CONFIG_BT_NIMBLE_PINNED_TO_CORE : tskNO_AFFINITY)
|
|
||||||
#else
|
|
||||||
#define BLE_MESH_ADV_TASK_CORE (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define BLE_MESH_ADV_TASK_STACK_SIZE 3072
|
#define BLE_MESH_ADV_TASK_STACK_SIZE 3072
|
||||||
|
|
||||||
#define BLE_MESH_GAP_ADV_MAX_LEN 31
|
#define BLE_MESH_GAP_ADV_MAX_LEN 31
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Please help note that breaking changes may be introduced into ESP-BLE-MESH on [minor IDF versions](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html).
|
Please help note that breaking changes may be introduced into ESP-BLE-MESH on [minor IDF versions](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html).
|
||||||
|
|
||||||
Note: To use examples in this directory, you need to have Bluetooth enabled in configuration, and either Bluedroid or NimBLE can be selected as the host stack.
|
Note: To use examples in this directory, you need to have Bluetooth enabled in configuration, and only Bluedroid can be selected as the host stack.
|
||||||
|
|
||||||
# Example Layout
|
# Example Layout
|
||||||
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -16,15 +16,6 @@
|
|||||||
#include "esp_bt_device.h"
|
#include "esp_bt_device.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
#include "esp_nimble_hci.h"
|
|
||||||
#include "nimble/nimble_port.h"
|
|
||||||
#include "nimble/nimble_port_freertos.h"
|
|
||||||
#include "host/ble_hs.h"
|
|
||||||
#include "host/util/util.h"
|
|
||||||
#include "console/console.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "esp_ble_mesh_defs.h"
|
#include "esp_ble_mesh_defs.h"
|
||||||
#include "ble_mesh_demo_init.h"
|
#include "ble_mesh_demo_init.h"
|
||||||
#include "esp_ble_mesh_common_api.h"
|
#include "esp_ble_mesh_common_api.h"
|
||||||
@ -70,74 +61,3 @@ esp_err_t bluetooth_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_BT_NIMBLE_ENABLED
|
|
||||||
static SemaphoreHandle_t mesh_sem;
|
|
||||||
static uint8_t own_addr_type;
|
|
||||||
void ble_store_config_init(void);
|
|
||||||
static uint8_t addr_val[6] = {0};
|
|
||||||
|
|
||||||
void ble_mesh_get_dev_uuid(uint8_t *dev_uuid)
|
|
||||||
{
|
|
||||||
memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_reset(int reason)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "Resetting state; reason=%d", reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mesh_on_sync(void)
|
|
||||||
{
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
rc = ble_hs_util_ensure_addr(0);
|
|
||||||
assert(rc == 0);
|
|
||||||
|
|
||||||
/* Figure out address to use while advertising (no privacy for now) */
|
|
||||||
rc = ble_hs_id_infer_auto(0, &own_addr_type);
|
|
||||||
if (rc != 0) {
|
|
||||||
ESP_LOGI(TAG, "error determining address type; rc=%d", rc);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL);
|
|
||||||
|
|
||||||
xSemaphoreGive(mesh_sem);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mesh_host_task(void *param)
|
|
||||||
{
|
|
||||||
ESP_LOGI(TAG, "BLE Host Task Started");
|
|
||||||
/* This function will return only when nimble_port_stop() is executed */
|
|
||||||
nimble_port_run();
|
|
||||||
|
|
||||||
nimble_port_freertos_deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
esp_err_t bluetooth_init(void)
|
|
||||||
{
|
|
||||||
mesh_sem = xSemaphoreCreateBinary();
|
|
||||||
if (mesh_sem == NULL) {
|
|
||||||
ESP_LOGE(TAG, "Failed to create mesh semaphore");
|
|
||||||
return ESP_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_nimble_hci_and_controller_init());
|
|
||||||
|
|
||||||
nimble_port_init();
|
|
||||||
/* Initialize the NimBLE host configuration. */
|
|
||||||
ble_hs_cfg.reset_cb = mesh_on_reset;
|
|
||||||
ble_hs_cfg.sync_cb = mesh_on_sync;
|
|
||||||
ble_hs_cfg.store_status_cb = ble_store_util_status_rr;
|
|
||||||
|
|
||||||
/* XXX Need to have template for store */
|
|
||||||
ble_store_config_init();
|
|
||||||
|
|
||||||
nimble_port_freertos_init(mesh_host_task);
|
|
||||||
|
|
||||||
xSemaphoreTake(mesh_sem, portMAX_DELAY);
|
|
||||||
|
|
||||||
return ESP_OK;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
Reference in New Issue
Block a user