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 6588a9e14..9ead981fa 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/common_components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 240b9bbcd..bae0b4fdc 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/common_components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 371b3d0bd..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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 5c1e4411f..ddf104053 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/common_components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 84a6ab1e3..8796f17ce 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/common_components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 ea6aa7f0c..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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 a08258766..9716d38a8 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/common_components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 3c768093b..9160b323e 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/common_components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 ea6aa7f0c..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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 3730f665e..f8f44b571 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,6 +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/common_components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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..f634bf00d 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/common_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 ea6aa7f0c..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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 503adacea..3265567bd 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/CMakeLists.txt @@ -2,6 +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/common_components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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..3f05e8774 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/common_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 ea6aa7f0c..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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 e4e05734b..48f2681f8 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/common_components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 7e5dfe9ae..db462c996 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/common_components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 9ac8fb041..cc77bd488 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(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") idf_component_register(SRCS "${srcs}" 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 3eadb79d1..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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[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 b7fcab283..562f292bb 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,6 +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/common_components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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..9b59f815b 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/common_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 9ac8fb041..cc77bd488 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(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" "board.c") idf_component_register(SRCS "${srcs}" 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 18e464093..b0689bfad 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/common_components/button) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/button + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 c26c84254..ade795aaf 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/common_components/button +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/button \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 3eadb79d1..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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[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 fcb29360b..720fd609d 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,6 +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/common_components/example_init) + include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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..67153c579 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/common_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 a456f66d7..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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[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 e66e3f667..1ebf92a32 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/common_components/fast_prov_vendor_model) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/example_init + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) set(SUPPORTED_TARGETS esp32) 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 b25c9a1d1..63991ec0c 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/common_components/fast_prov_vendor_model +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_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 ea6aa7f0c..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_BT_BLUEDROID_ENABLED -#include "esp_bt.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#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 "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" - -#ifdef CONFIG_BT_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_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 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/common_components/example_init/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/common_components/example_init/CMakeLists.txt new file mode 100644 index 000000000..d4ca1d299 --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/common_components/example_init/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "ble_mesh_demo_init.c" + INCLUDE_DIRS "." + REQUIRES bt) 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/common_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/common_components/example_init/ble_mesh_demo_init.c index a456f66d7..4d9d9d314 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/common_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,7 +9,7 @@ #include #include #include -/* BLE */ + #ifdef CONFIG_BT_BLUEDROID_ENABLED #include "esp_bt.h" #include "esp_bt_main.h" @@ -27,10 +27,8 @@ #include "esp_ble_mesh_defs.h" #include "ble_mesh_demo_init.h" -#include "esp_ble_mesh_common_api.h" #ifdef CONFIG_BT_BLUEDROID_ENABLED - void ble_mesh_get_dev_uuid(uint8_t *dev_uuid) { if (dev_uuid == NULL) { @@ -50,7 +48,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 +75,26 @@ esp_err_t bluetooth_init(void) return ret; } - -#endif +#endif /* CONFIG_BT_BLUEDROID_ENABLED */ #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[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 +156,4 @@ esp_err_t bluetooth_init(void) return ESP_OK; } -#endif +#endif /* CONFIG_BT_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/common_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/common_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/common_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/common_components/example_init/component.mk b/examples/bluetooth/esp_ble_mesh/common_components/example_init/component.mk new file mode 100644 index 000000000..646c890db --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/common_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