diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/CMakeLists.txt index f0871b207..a8899a4ac 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_fast_prov_client) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile index bd231aced..f3d4a7f4d 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := ble_mesh_fast_prov_client -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/CMakeLists.txt index 6644ba29c..fe6fcc633 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/CMakeLists.txt @@ -1,6 +1,5 @@ -set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c") +set(COMPONENT_SRCS "ble_mesh_demo_main.c") set(COMPONENT_ADD_INCLUDEDIRS ".") -register_component() +register_component() \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.c deleted file mode 100644 index 2f6854eb6..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.h deleted file mode 100644 index d1af15428..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "FAST_PROV_CLIENT_DEMO" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt index 4fd825ad5..b62b96f80 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_fast_prov_server) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile index 952aa94d2..213f12c91 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := ble_mesh_fast_prov_server -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.c deleted file mode 100644 index a61f70e65..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.h deleted file mode 100644 index 9e5272de2..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "FAST_PROV_SERVER_DEMO" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/CMakeLists.txt new file mode 100644 index 000000000..a4884b044 --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/CMakeLists.txt @@ -0,0 +1,6 @@ +set(COMPONENT_SRCS "main.c" + "board.c") + +set(COMPONENT_ADD_INCLUDEDIRS ".") + +register_component() diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/CMakeLists.txt index e6c479174..a66e04c49 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(onoff_client) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/Makefile index 854491ae9..e4475660b 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := onoff_client -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.c deleted file mode 100644 index a61f70e65..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/CMakeLists.txt index a2c34bc8c..4df1466b6 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/CMakeLists.txt @@ -2,5 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(onoff_server) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/Makefile index 429552440..3a9c8d01d 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/Makefile @@ -5,6 +5,6 @@ PROJECT_NAME := onoff_server -COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.c deleted file mode 100644 index a61f70e65..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.h deleted file mode 100644 index 5db694c70..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "onoff_server" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt index dfffbf786..51425386b 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt @@ -2,5 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_provisioner) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/Makefile index bceab36a3..e85dbfa07 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/Makefile @@ -5,6 +5,6 @@ PROJECT_NAME := ble_mesh_provisioner -COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/CMakeLists.txt index 6644ba29c..3d3bc6f9a 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/CMakeLists.txt @@ -1,5 +1,4 @@ -set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c") +set(COMPONENT_SRCS "ble_mesh_demo_main.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.c deleted file mode 100644 index a61f70e65..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.h deleted file mode 100644 index 309afa79b..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "ble_mesh_provisioner" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/CMakeLists.txt index 5fe5e05e3..86f6c7c66 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(sensor_client) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/Makefile index 6af51146e..8c909a52a 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := sensor_client -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.c deleted file mode 100644 index c78062bd8..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,152 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - if (dev_uuid == NULL) { - ESP_LOGE(TAG, "%s, Invalid device uuid", __func__); - return; - } - - /* Copy device address to the device uuid with offset equals to 2 here. - * The first two bytes is used for matching device uuid by Provisioner. - * And using device address here is to avoid using the same device uuid - * by different unprovisioned devices. - */ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_NIMBLE_ENABLED -static SemaphoreHandle_t mesh_sem; -static uint8_t own_addr_type; -void ble_store_config_init(void); -static uint8_t addr_val[BD_ADDR_LEN] = {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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.h deleted file mode 100644 index fc9df8d00..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "Client" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/CMakeLists.txt index 3020ee578..84f9d81fe 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/CMakeLists.txt @@ -2,5 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(sensor_server) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/Makefile index 3ffc7add2..cf7c10c05 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/Makefile @@ -5,6 +5,6 @@ PROJECT_NAME := sensor_server -COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.h deleted file mode 100644 index 4f0c68ccc..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "Server" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/CMakeLists.txt index 950fd5f52..89eed708c 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(vendor_client) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/Makefile index 6aee59eb3..5296900eb 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := vendor_client -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.c deleted file mode 100644 index c78062bd8..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,152 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - if (dev_uuid == NULL) { - ESP_LOGE(TAG, "%s, Invalid device uuid", __func__); - return; - } - - /* Copy device address to the device uuid with offset equals to 2 here. - * The first two bytes is used for matching device uuid by Provisioner. - * And using device address here is to avoid using the same device uuid - * by different unprovisioned devices. - */ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_NIMBLE_ENABLED -static SemaphoreHandle_t mesh_sem; -static uint8_t own_addr_type; -void ble_store_config_init(void); -static uint8_t addr_val[BD_ADDR_LEN] = {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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.h deleted file mode 100644 index fc9df8d00..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "Client" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/CMakeLists.txt index 63488f00e..7f47c929f 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/CMakeLists.txt @@ -2,5 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(vendor_server) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/Makefile index 7e4221b6e..490a7c9d9 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/Makefile @@ -5,6 +5,6 @@ PROJECT_NAME := vendor_server -COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.c deleted file mode 100644 index 023b50471..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,153 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - if (dev_uuid == NULL) { - ESP_LOGE(TAG, "%s, Invalid device uuid", __func__); - return; - } - - /* Copy device address to the device uuid with offset equals to 2 here. - * The first two bytes is used for matching device uuid by Provisioner. - * And using device address here is to avoid using the same device uuid - * by different unprovisioned devices. - */ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_NIMBLE_ENABLED -static SemaphoreHandle_t mesh_sem; -static uint8_t own_addr_type; -void ble_store_config_init(void); -static uint8_t addr_val[BD_ADDR_LEN] = {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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.h deleted file mode 100644 index 4f0c68ccc..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_server/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "Server" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/CMakeLists.txt index 18ca69217..76109b136 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/CMakeLists.txt @@ -2,7 +2,8 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_wifi_coexist) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile index e1e48b0b7..820bb1c36 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile @@ -5,8 +5,7 @@ PROJECT_NAME := ble_mesh_wifi_coexist -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/components/fast_prov_vendor_model include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/CMakeLists.txt index dc91641af..1eb2d87ed 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/CMakeLists.txt @@ -1,5 +1,4 @@ set(COMPONENT_SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") set(COMPONENT_ADD_INCLUDEDIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.c deleted file mode 100644 index a61f70e65..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.c +++ /dev/null @@ -1,143 +0,0 @@ - -/* - * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -/* BLE */ -#ifdef CONFIG_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#endif - -#ifdef CONFIG_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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BLUEDROID_ENABLED - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) -{ - memcpy(dev_uuid + 2, esp_bt_dev_get_address(), BD_ADDR_LEN); -} - -esp_err_t bluetooth_init(void) -{ - esp_err_t ret; - - - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(TAG, "%s initialize controller failed", __func__); - return ret; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(TAG, "%s enable controller failed", __func__); - return ret; - } - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(TAG, "%s init bluetooth failed", __func__); - return ret; - } - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(TAG, "%s enable bluetooth failed", __func__); - return ret; - } - - return ret; -} - -#endif - -#ifdef CONFIG_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 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.h deleted file mode 100644 index 9ee565313..000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/main/ble_mesh_demo_init.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ - -#ifndef _BLE_MESH_DEMO_INIT_H_ -#define _BLE_MESH_DEMO_INIT_H_ - -#define TAG "BLE_MESH_WIFI_COEXIST_DEMO" - -void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); - -esp_err_t bluetooth_init(void); - -#endif diff --git a/examples/bluetooth/esp_ble_mesh/components/example_init/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/components/example_init/CMakeLists.txt new file mode 100644 index 000000000..21974f400 --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/components/example_init/CMakeLists.txt @@ -0,0 +1,7 @@ +set(COMPONENT_SRCS "ble_mesh_demo_init.c") + +set(COMPONENT_ADD_INCLUDEDIRS ".") + +set(COMPONENT_REQUIRES bt) + +register_component() \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.c b/examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.c similarity index 86% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.c rename to examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.c index 023b50471..b6bfc28c0 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_server/main/ble_mesh_demo_init.c +++ b/examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.c @@ -1,7 +1,7 @@ /* * Copyright (c) 2017 Intel Corporation - * Additional Copyright (c) 2018 Espressif Systems (Shanghai) PTE LTD + * Additional Copyright (c) 2020 Espressif Systems (Shanghai) PTE LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ #include #include #include + /* BLE */ #ifdef CONFIG_BLUEDROID_ENABLED #include "esp_bt.h" @@ -27,7 +28,6 @@ #include "esp_ble_mesh_defs.h" #include "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" #ifdef CONFIG_BLUEDROID_ENABLED @@ -50,7 +50,6 @@ esp_err_t bluetooth_init(void) { esp_err_t ret; - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); @@ -78,17 +77,26 @@ esp_err_t bluetooth_init(void) return ret; } - -#endif +#endif /* CONFIG_BLUEDROID_ENABLED */ #ifdef CONFIG_NIMBLE_ENABLED static SemaphoreHandle_t mesh_sem; static uint8_t own_addr_type; void ble_store_config_init(void); -static uint8_t addr_val[BD_ADDR_LEN] = {0}; - +static uint8_t addr_val[6] = {0}; + void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) { + if (dev_uuid == NULL) { + ESP_LOGE(TAG, "%s, Invalid device uuid", __func__); + return; + } + + /* Copy device address to the device uuid with offset equals to 2 here. + * The first two bytes is used for matching device uuid by Provisioner. + * And using device address here is to avoid using the same device uuid + * by different unprovisioned devices. + */ memcpy(dev_uuid + 2, addr_val, BD_ADDR_LEN); } @@ -150,4 +158,4 @@ esp_err_t bluetooth_init(void) return ESP_OK; } -#endif +#endif /* CONFIG_NIMBLE_ENABLED */ diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.h b/examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.h similarity index 84% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.h rename to examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.h index 407e4b895..8b77b3130 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_init.h +++ b/examples/bluetooth/esp_ble_mesh/components/example_init/ble_mesh_demo_init.h @@ -9,10 +9,12 @@ #ifndef _BLE_MESH_DEMO_INIT_H_ #define _BLE_MESH_DEMO_INIT_H_ -#define TAG "onoff_client" +#include "esp_err.h" + +#define TAG "EXAMPLE" void ble_mesh_get_dev_uuid(uint8_t *dev_uuid); esp_err_t bluetooth_init(void); -#endif +#endif /* _BLE_MESH_DEMO_INIT_H_ */ diff --git a/examples/bluetooth/esp_ble_mesh/components/example_init/component.mk b/examples/bluetooth/esp_ble_mesh/components/example_init/component.mk new file mode 100644 index 000000000..646c890db --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/components/example_init/component.mk @@ -0,0 +1,6 @@ +# +# "main" pseudo-component makefile. +# +# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) +# +COMPONENT_ADD_INCLUDEDIRS := . \ No newline at end of file