diff --git a/docs/en/api-guides/esp-ble-mesh/ble-mesh-faq.rst b/docs/en/api-guides/esp-ble-mesh/ble-mesh-faq.rst index 57d705a6e9..bb50901242 100644 --- a/docs/en/api-guides/esp-ble-mesh/ble-mesh-faq.rst +++ b/docs/en/api-guides/esp-ble-mesh/ble-mesh-faq.rst @@ -563,7 +563,7 @@ Generally, a Provisioner is used to provision unprovisioned devices and form a m The **count** value is provided to the Proxy node which is provisioned by the App so as to determine when to start Proxy advertising in advance. -4.5 When will Configuration Client Model of the node running :example:`ble_mesh_fast_prov_server ` example start to work? +4.5 When will Configuration Client Model of the node running :example:`fast_prov_server ` example start to work? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Configuration Client Model will start to work after the Temporary Provisioner functionality is enabled. diff --git a/docs/en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst b/docs/en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst index 77a8b1d97c..9253529d99 100644 --- a/docs/en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst +++ b/docs/en/api-guides/esp-ble-mesh/ble-mesh-feature-list.rst @@ -120,8 +120,8 @@ Mesh Applications * :example_file:`Tutorial ` * :example:`Example ` * ESP-BLE-MESH Fast Provisioning - * :example_file:`Fast Provisioning Client Model Tutorial ` - * :example_file:`Fast Provisioning Server Model Tutorial ` + * :example_file:`Fast Provisioning Client Model Tutorial ` + * :example_file:`Fast Provisioning Server Model Tutorial ` * :example:`Example ` * `Demo Video `__ * ESP-BLE-MESH and Wi-Fi Coexistence diff --git a/docs/en/api-guides/esp-ble-mesh/ble-mesh-index.rst b/docs/en/api-guides/esp-ble-mesh/ble-mesh-index.rst index 275a2058cd..0ba60df213 100644 --- a/docs/en/api-guides/esp-ble-mesh/ble-mesh-index.rst +++ b/docs/en/api-guides/esp-ble-mesh/ble-mesh-index.rst @@ -217,7 +217,7 @@ ESP-BLE-MESH Examples * :example_file:`ESP-BLE-MESH Provisioner ` - shows how a device can act as an ESP-BLE-MESH Provisioner to provision devices. The Provisioner has a Configuration Server model, a Configuration Client model and a Generic OnOff Client model, see :example:`example code `. -* ESP-BLE-MESH Fast Provisioning - :example_file:`Client ` and :example_file:`Server ` - this example is used for showing how fast provisioning can be used in order to create a mesh network. It takes no more than 60 seconds to provision 100 devices, see :example:`example client code ` and :example:`example server code `. +* ESP-BLE-MESH Fast Provisioning - :example_file:`Client ` and :example_file:`Server ` - this example is used for showing how fast provisioning can be used in order to create a mesh network. It takes no more than 60 seconds to provision 100 devices, see :example:`example client code ` and :example:`example server code `. * :example_file:`ESP-BLE-MESH and Wi-Fi Coexistence ` - an example that demonstrates the Wi-Fi and Bluetooth (BLE/BR/EDR) coexistence feature of {IDF_TARGET_NAME}. Simply put, users can use the Wi-Fi while operating Bluetooth, see :example:`example code `. diff --git a/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-faq.rst b/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-faq.rst index 2b9d12e53b..377444b907 100644 --- a/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-faq.rst +++ b/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-faq.rst @@ -565,7 +565,7 @@ ESP-BLE-MESH 常见问题手册 此 **count** 值提供给 App 配置的代理节点,以决定何时提前开始 Proxy 广播信息。 -4.5 运行以下示例 :example:`ble_mesh_fast_prov_server ` 的节点的 Configuration Client Model 何时开始工作? +4.5 运行以下示例 :example:`fast_prov_server ` 的节点的 Configuration Client Model 何时开始工作? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 使能了 Temporary Provisioner 功能后,Configuration Client Model 会开始工作。 diff --git a/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-index.rst b/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-index.rst index 6f91aece7e..f351ca186a 100644 --- a/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-index.rst +++ b/docs/zh_CN/api-guides/esp-ble-mesh/ble-mesh-index.rst @@ -218,7 +218,7 @@ ESP-BLE-MESH 示例 * :example_file:`ESP-BLE-MESH Provisioner ` - 展示了设备如何充当 ESP-BLE-MESH Provisioner 以配网设备。Provisioner 拥有 Configuration Server model、Configuration Client model 和 Generic OnOff Client model,示例请见 :example:`example code `。 -* ESP-BLE-MESH 快速配网 - :example_file:`Client ` 和 :example_file`Server ` - 该示例用于演示快速配网。配网 100 个设备费时不超过 60 秒,示例请见::example:`example client code ` 和 :example:`example server code `。 +* ESP-BLE-MESH 快速配网 - :example_file:`Client ` 和 :example_file`Server ` - 该示例用于演示快速配网。配网 100 个设备费时不超过 60 秒,示例请见::example:`example client code ` 和 :example:`example server code `。 * :example_file:`Wi-Fi 和 ESP-BLE-MESH 共存 ` - 该示例用于演示 Wi-Fi 和 ESP-BLE-MESH 共存的功能。简而言之,用户可在运行 ESP-BLE-MESH 时使用 Wi-Fi,示例请见 :example:`example code `。 diff --git a/examples/bluetooth/esp_ble_mesh/README.md b/examples/bluetooth/esp_ble_mesh/README.md index cd3b142819..50659c91ea 100644 --- a/examples/bluetooth/esp_ble_mesh/README.md +++ b/examples/bluetooth/esp_ble_mesh/README.md @@ -30,19 +30,19 @@ See [ble_mesh_provisioner](ble_mesh_console/ble_mesh_provisioner) folder for mor This example illustrates the solution of ESP-BLE-MESH Fast Provisioning. -#### ble_mesh_fast_prov_client +#### fast_prov_client This example shows how ESP32, acting as a BLE Mesh Fast Provisioning Client, provisions other unprovisioned devices and then controls the nodes. -See [ble_mesh_fast_prov_client](ble_mesh_fast_provision/ble_mesh_fast_prov_client) folder for more details. +See [fast_prov_client](ble_mesh_fast_provision/fast_prov_client) folder for more details. -#### ble_mesh_fast_prov_server +#### fast_prov_server This example illustrates the process that: 1. ESP32 as a BLE Mesh Fast Provisioning Server is provisioned into a node; 2. ESP32 as a Temporary Provisioner provisions other unprovisioned devices. -See [ble_mesh_fast_prov_server](ble_mesh_fast_provision/ble_mesh_fast_prov_server) folder for more details. +See [fast_prov_server](ble_mesh_fast_provision/fast_prov_server) folder for more details. ## ble_mesh_node 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 deleted file mode 100644 index fb78c876c7..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -idf_component_register(SRCS "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" - INCLUDE_DIRS ".") 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 371b3d0bda..0000000000 --- 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 d1af154289..0000000000 --- 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/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 ea6aa7f0c5..0000000000 --- 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 9e5272de2f..0000000000 --- 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/ble_mesh_fast_prov_client/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/CMakeLists.txt similarity index 61% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/CMakeLists.txt rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/CMakeLists.txt index 1dcfafdf92..f9c091aaed 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/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_vendor_models/fast_prov_vendor_model/components) +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_provisioning) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(ble_mesh_fast_prov_client) +project(fast_prov_client) 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/fast_prov_client/Makefile similarity index 55% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/Makefile index 07484a5706..2f6e19a273 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/fast_prov_client/Makefile @@ -3,10 +3,9 @@ # project subdirectory. # -PROJECT_NAME := ble_mesh_fast_prov_server +PROJECT_NAME := fast_prov_client -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/README.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/README.md similarity index 62% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/README.md rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/README.md index 6cc441c3e7..8d4a3ad493 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/README.md +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/README.md @@ -6,4 +6,4 @@ ESP BLE Mesh Fast Provisioning Client example This example shows how a BLE Mesh device functions as a Fast Provisioning Client. -Please check the [tutorial](tutorial/ble_mesh_fast_provision_client.md) for more information about this example. \ No newline at end of file +Please check the [tutorial](tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md) for more information about this example. \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt new file mode 100644 index 0000000000..2d18e65b75 --- /dev/null +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRCS "main.c" + INCLUDE_DIRS ".") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/component.mk similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/component.mk rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/component.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/main.c similarity index 99% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_main.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/main.c index 926f96d984..1770ffbcb1 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/main/ble_mesh_demo_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/main/main.c @@ -26,10 +26,10 @@ #include "esp_ble_mesh_config_model_api.h" #include "esp_ble_mesh_generic_model_api.h" -#include "esp_fast_prov_common.h" -#include "esp_fast_prov_operation.h" -#include "esp_fast_prov_client_model.h" -#include "ble_mesh_demo_init.h" +#include "ble_mesh_fast_prov_common.h" +#include "ble_mesh_fast_prov_operation.h" +#include "ble_mesh_fast_prov_client_model.h" +#include "ble_mesh_example_init.h" #define PROV_OWN_ADDR 0x0001 #define APP_KEY_OCTET 0x12 diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.ci.bluedroid b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.ci.bluedroid similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.ci.bluedroid rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.ci.bluedroid diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.ci.nimble b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.ci.nimble similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.ci.nimble rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.ci.nimble diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.defaults b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.defaults similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/sdkconfig.defaults rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/sdkconfig.defaults diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_client/tutorial/BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md 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/fast_prov_server/CMakeLists.txt similarity index 61% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/CMakeLists.txt index c09547f94d..2690af4193 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/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_vendor_models/fast_prov_vendor_model/components) +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_provisioning) include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(ble_mesh_fast_prov_server) +project(fast_prov_server) 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/fast_prov_server/Makefile similarity index 55% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/Makefile index d6537805f4..d34eb4ba02 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/fast_prov_server/Makefile @@ -3,10 +3,9 @@ # project subdirectory. # -PROJECT_NAME := ble_mesh_fast_prov_client +PROJECT_NAME := fast_prov_server -COMPONENT_ADD_INCLUDEDIRS := components/include - -EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/example_init \ + $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/fast_provisioning include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/README.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/README.md similarity index 62% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/README.md rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/README.md index 460dd2f589..077a434570 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/README.md +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/README.md @@ -6,4 +6,4 @@ ESP BLE Mesh Fast Provisioning Server example This example shows how a BLE Mesh device functions as a Fast Provisioning Server. -Please check the [tutorial](tutorial/ble_mesh_fast_provision_server.md) for more information about this example. \ No newline at end of file +Please check the [tutorial](tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md) for more information about this example. \ No newline at end of file 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/fast_prov_server/main/CMakeLists.txt similarity index 60% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/CMakeLists.txt rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/CMakeLists.txt index 9ac8fb0419..98d0fc613c 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/fast_prov_server/main/CMakeLists.txt @@ -1,5 +1,4 @@ -set(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" +set(srcs "main.c" "board.c") idf_component_register(SRCS "${srcs}" diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/Kconfig.projbuild b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/Kconfig.projbuild similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/Kconfig.projbuild rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/Kconfig.projbuild diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/board.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/board.c similarity index 98% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/board.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/board.c index 192d730671..d821fc83d6 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/board.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/board.c @@ -16,7 +16,7 @@ #include "driver/gpio.h" #include "board.h" -#include "esp_fast_prov_common.h" +#include "ble_mesh_fast_prov_common.h" #define TAG "BOARD" diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/board.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/board.h similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/board.h rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/board.h diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/component.mk similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/component.mk rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/component.mk diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/main.c similarity index 99% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_main.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/main.c index 2bf3003091..b5fe155aca 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/main/ble_mesh_demo_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/main/main.c @@ -27,10 +27,10 @@ #include "esp_ble_mesh_local_data_operation_api.h" #include "board.h" -#include "esp_fast_prov_operation.h" -#include "esp_fast_prov_client_model.h" -#include "esp_fast_prov_server_model.h" -#include "ble_mesh_demo_init.h" +#include "ble_mesh_fast_prov_operation.h" +#include "ble_mesh_fast_prov_client_model.h" +#include "ble_mesh_fast_prov_server_model.h" +#include "ble_mesh_example_init.h" extern struct _led_state led_state[3]; extern struct k_delayed_work send_self_prov_node_addr_timer; diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.ci.bluedroid b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.ci.bluedroid similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.ci.bluedroid rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.ci.bluedroid diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.ci.nimble b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.ci.nimble similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.ci.nimble rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.ci.nimble diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.defaults b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.defaults similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/sdkconfig.defaults rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/sdkconfig.defaults diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/EspBleMesh.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/EspBleMesh.md similarity index 93% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/EspBleMesh.md rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/EspBleMesh.md index 8039d6672c..dd75437c9c 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/EspBleMesh.md +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/EspBleMesh.md @@ -13,7 +13,7 @@ A video of this demo can be seen > Note: > -> 1. Please flash the [`ble_mesh_fast_prov_server`](https://glab.espressif.cn/ble_mesh/esp-ble-mesh-v0.6/tree/ble_mesh_release/esp-ble-mesh-v0.6/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server) to your boards first; +> 1. Please flash the [`fast_prov_server`](https://glab.espressif.cn/ble_mesh/esp-ble-mesh-v0.6/tree/ble_mesh_release/esp-ble-mesh-v0.6/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server) to your boards first; > 2. To have a better understanding of the performance of the BLE Mesh network, we recommend that at least 3 devices should be added in your network. > 3. We recommend that you solder LED indicators if your development board does not come with lights. > 4. Please check the type of board and LED pin definition enabled in `Example BLE Mesh Config` by running `idf.py menuconfig` @@ -24,7 +24,7 @@ A video of this demo can be seen # Flash and Monitor 1. Enter the directory: -examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server +examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server 2. Make sure that the `IDF_PATH` environment variable was set in accordance with your current IDF path 3. Check the version of your toolchain. Version 4.1 or newer should be used. diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/app_ble.png b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/app_ble.png similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/app_ble.png rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/app_ble.png diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/device.png b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/device.png similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/device.png rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/device.png diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/picture1.png b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/picture1.png similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/picture1.png rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/picture1.png diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/picture2.png b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/picture2.png similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/picture2.png rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/picture2.png diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/time.png b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/time.png similarity index 100% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/tutorial/images/time.png rename to examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/fast_prov_server/tutorial/images/time.png 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 4b36e55e66..aada1d2e6e 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,5 +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 + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_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 a47e6fd084..9160b323eb 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,6 +5,7 @@ PROJECT_NAME := onoff_client -COMPONENT_ADD_INCLUDEDIRS := components/include +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 9ac8fb0419..98d0fc613c 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(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" +set(srcs "main.c" "board.c") idf_component_register(SRCS "${srcs}" 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 ea6aa7f0c5..0000000000 --- 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_client/main/ble_mesh_demo_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/main.c similarity index 99% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_main.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/main.c index f4e55623fc..54f7a8ffaf 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/ble_mesh_demo_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_client/main/main.c @@ -20,7 +20,7 @@ #include "esp_ble_mesh_generic_model_api.h" #include "board.h" -#include "ble_mesh_demo_init.h" +#include "ble_mesh_example_init.h" #define CID_ESP 0x02E5 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 a2c34bc8cf..c188d7055e 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/common_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 4295524407..f634bf00de 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/README.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/README.md index ec145628dd..b546e07362 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/README.md +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/README.md @@ -16,4 +16,4 @@ The default purpose of this demo is to enable the advertising function with 20-m For a better demonstration effect, an RGB LED can be soldered onto the ESP32-DevKitC board, by connecting their corresponding GPIO pins are GPIO\_NUM\_25, GPIO\_NUM\_26, GPIO\_NUM\_27. Then you need to select the following option in menuconfig: `idf.py menuconfig --> Example Configuration --> Board selection for BLE Mesh --> ESP-WROOM-32` -Please check the [tutorial](tutorial/Ble_Mesh_Node_Example_Walkthrough.md) for more information about this example. +Please check the [tutorial](tutorial/BLE_Mesh_Node_OnOff_Server_Example_Walkthrough.md) for more information about this example. 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 f5d43fbda7..13a56c69f2 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(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c" +set(srcs "main.c" "board.c") idf_component_register(SRCS "${srcs}" 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 ea6aa7f0c5..0000000000 --- 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 5db694c70d..0000000000 --- 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_node/onoff_server/main/ble_mesh_demo_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/main.c similarity index 99% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_main.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/main.c index 4d185f7450..9a8b9fbe66 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/ble_mesh_demo_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_node/onoff_server/main/main.c @@ -22,7 +22,7 @@ #include "esp_ble_mesh_local_data_operation_api.h" #include "board.h" -#include "ble_mesh_demo_init.h" +#include "ble_mesh_example_init.h" #define CID_ESP 0x02E5 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 dfffbf786f..df71337901 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/common_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 bceab36a3e..3f05e87745 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/README.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/README.md index 6bdf901ca8..5ac63cc152 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/README.md +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/README.md @@ -6,4 +6,4 @@ ESP BLE Mesh Provisioner demo This demo shows how a BLE Mesh device can function as a provisioner. -Please check the [tutorial](tutorial/Ble_Mesh_Provisioner_Example_Walkthrough.md) for more information about this example. \ No newline at end of file +Please check the [tutorial](tutorial/BLE_Mesh_Provisioner_Example_Walkthrough.md) for more information about this example. \ No newline at end of file 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 2189d1388e..fdc75fac07 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(srcs "ble_mesh_demo_main.c" - "ble_mesh_demo_init.c") +set(srcs "main.c") idf_component_register(SRCS "${srcs}" INCLUDE_DIRS ".") 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 ea6aa7f0c5..0000000000 --- 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 309afa79b9..0000000000 --- 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_provisioner/main/ble_mesh_demo_main.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/main.c similarity index 99% rename from examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_main.c rename to examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/main.c index 4be356ad69..18ff3c449a 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/ble_mesh_demo_main.c +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_provisioner/main/main.c @@ -19,7 +19,7 @@ #include "esp_ble_mesh_config_model_api.h" #include "esp_ble_mesh_generic_model_api.h" -#include "ble_mesh_demo_init.h" +#include "ble_mesh_example_init.h" #define LED_OFF 0x0 #define LED_ON 0x1 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 e8789f74e5..fb5abfc1d9 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,5 +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 + $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_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 cb51153eea..db462c9965 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,6 +5,7 @@ PROJECT_NAME := sensor_client -COMPONENT_ADD_INCLUDEDIRS := components/include +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/components/button/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/CMakeLists.txt deleted file mode 100644 index 13d6b0843c..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ - -idf_component_register(SRCS "button.c" "button_obj.cpp" - INCLUDE_DIRS "." "include") diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/Kconfig b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/Kconfig deleted file mode 100644 index 308410a696..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/Kconfig +++ /dev/null @@ -1,21 +0,0 @@ -menu "Button" - - choice BUTTON_TIMER_IMPLEMENT - bool "Button Timer Mode" - default BUTTON_USE_ESP_TIMER - help - Choose a implementation of timer for button instance. - - config BUTTON_USE_RTOS_TIMER - bool "Use FreeRTOS Timer" - - config BUTTON_USE_ESP_TIMER - bool "Use ESP Timer" - endchoice - - config BUTTON_IO_GLITCH_FILTER_TIME_MS - int "IO glitch filter timer ms (10~100)" - range 10 100 - default 50 - -endmenu \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/README.md b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/README.md deleted file mode 100644 index 0c55e2d293..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Component: Button - -* This component defines a button as a well encapsulated object. -* A button device is defined by: - * GPIO number on which the button is attached. - * Active level which decided by peripheral hardware. - * Trigger mode which decides whether to call serial trigger callback during pressing - * Serial threshold seconds which decides that serial trigger callback will be called after how many seconds' pressing -* A button device can provide: - * One push event callback - * One release event callback - * One short-time tap event callback - * One serial trigger event callback - * Several long-time press event callback - We can set different jitter filters for all the events. - Once any of the long press callback is triggered, the short tap event will not be triggered. - These components are based on GPIO provided by ESP-IDF and soft timer provided by FreeRTOS. - -* To use the button device, you need to: - * create a button object returned by iot_button_create(). - * Then hook different event callbacks to the button object. - * To free the object, you can call iot_button_delete to delete the button object and free the used memory. - -* Todo: Add hardware timer mode(because sometimes soft-timer callback function is limited) - -### NOTE: -> All the event callback function are implemented by FreeRTOS soft timer APIs, the callback must follow the rule: - - - -``` - Button callback functions execute in the context of the timer service task. - It is therefore essential that button callback functions never attempt to block. - For example, a button callback function must not call vTaskDelay(), vTaskDelayUntil(), or specify a non zero block time when accessing a queue or a semaphore. -``` - -> In addition: -> You can adjust the following macros within FreeRTOS to adjust the stack depth/queue length/task priority of the timer service. - - -``` -#define configUSE_TIMERS //enable soft-timer -#define configTIMER_TASK_PRIORITY // priority of the timers service task -#define configQueue_LENGTH // length of timer command queue -#define configTIMER_TASK_STACK_DEPTH // stack depth of the soft-timer -``` \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button.c b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button.c deleted file mode 100644 index ac391a5c3f..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button.c +++ /dev/null @@ -1,434 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/queue.h" -#include "freertos/timers.h" -#include "esp_log.h" -#include "driver/gpio.h" -#include "iot_button.h" -#include "esp_timer.h" - -#define USE_ESP_TIMER CONFIG_BUTTON_USE_ESP_TIMER -#if USE_ESP_TIMER -#define STOP_TIMER(tmr) esp_timer_stop(tmr) -#define DELETE_TIMER(tmr) esp_timer_delete(tmr) -#else -#define STOP_TIMER(tmr) xTimerStop(tmr, portMAX_DELAY) -#define DELETE_TIMER(tmr) xTimerDelete(tmr, portMAX_DELAY); -#endif - -#define IOT_CHECK(tag, a, ret) if(!(a)) { \ - ESP_LOGE(tag,"%s:%d (%s)", __FILE__, __LINE__, __FUNCTION__); \ - return (ret); \ - } -#define ERR_ASSERT(tag, param) IOT_CHECK(tag, (param) == ESP_OK, ESP_FAIL) -#define POINT_ASSERT(tag, param, ret) IOT_CHECK(tag, (param) != NULL, (ret)) - -typedef enum { - BUTTON_STATE_IDLE = 0, - BUTTON_STATE_PUSH, - BUTTON_STATE_PRESSED, -} button_status_t; - -typedef struct button_dev button_dev_t; -typedef struct btn_cb button_cb_t; - -struct btn_cb{ - TickType_t interval; - button_cb cb; - void* arg; - #if !USE_ESP_TIMER - TimerHandle_t tmr; - #else - esp_timer_handle_t tmr; - #endif - button_dev_t *pbtn; - button_cb_t *next_cb; -}; - -struct button_dev{ - uint8_t io_num; - uint8_t active_level; - uint32_t serial_thres_sec; - button_status_t state; - button_cb_t tap_short_cb; - button_cb_t tap_psh_cb; - button_cb_t tap_rls_cb; - button_cb_t press_serial_cb; - button_cb_t* cb_head; -}; - -#define BUTTON_GLITCH_FILTER_TIME_MS CONFIG_BUTTON_IO_GLITCH_FILTER_TIME_MS -static const char* TAG = "button"; - -// static void button_press_cb(xTimerHandle tmr) -static void button_press_cb(void* tmr) -{ - #if !USE_ESP_TIMER - button_cb_t* btn_cb = (button_cb_t*) pvTimerGetTimerID(tmr); - #else - button_cb_t* btn_cb = (button_cb_t*)(tmr); - #endif - - button_dev_t* btn = btn_cb->pbtn; - // low, then restart - if (btn->active_level == gpio_get_level(btn->io_num)) { - btn->state = BUTTON_STATE_PRESSED; - if (btn_cb->cb) { - btn_cb->cb(btn_cb->arg); - } - } -} - -// static void button_tap_psh_cb(xTimerHandle tmr) -static void button_tap_psh_cb(void* tmr) -{ - #if !USE_ESP_TIMER - button_cb_t* btn_cb = (button_cb_t*) pvTimerGetTimerID(tmr); - #else - button_cb_t* btn_cb = (button_cb_t*)(tmr); - #endif - - button_dev_t* btn = btn_cb->pbtn; - STOP_TIMER(btn->tap_rls_cb.tmr); - - int lv = gpio_get_level(btn->io_num); - - if (btn->active_level == lv) { - // high, then key is up - btn->state = BUTTON_STATE_PUSH; - if (btn->press_serial_cb.tmr) { - #if !USE_ESP_TIMER - xTimerChangePeriod(btn->press_serial_cb.tmr, btn->serial_thres_sec*1000 / portTICK_PERIOD_MS, portMAX_DELAY); - xTimerReset(btn->press_serial_cb.tmr, portMAX_DELAY); - #else - esp_timer_stop(btn->press_serial_cb.tmr); - esp_timer_start_once(btn->press_serial_cb.tmr, btn->serial_thres_sec * 1000 * 1000); - #endif - - } - if (btn->tap_psh_cb.cb) { - btn->tap_psh_cb.cb(btn->tap_psh_cb.arg); - } - } else { - // 50ms, check if this is a real key up - if (btn->tap_rls_cb.tmr) { - STOP_TIMER(btn->tap_rls_cb.tmr); - #if !USE_ESP_TIMER - xTimerReset(btn->tap_rls_cb.tmr, portMAX_DELAY); - #else - esp_timer_start_once(btn->tap_rls_cb.tmr, btn->tap_rls_cb.interval * portTICK_PERIOD_MS * 1000); - #endif - } - } -} - -static void button_tap_rls_cb(void* tmr) -{ - #if !USE_ESP_TIMER - button_cb_t* btn_cb = (button_cb_t*) pvTimerGetTimerID(tmr); - #else - button_cb_t* btn_cb = (button_cb_t*)(tmr); - #endif - button_dev_t* btn = btn_cb->pbtn; - STOP_TIMER(btn->tap_rls_cb.tmr); - - if (btn->active_level == gpio_get_level(btn->io_num)) { - - } else { - // high, then key is up - button_cb_t *pcb = btn->cb_head; - while (pcb != NULL) { - if (pcb->tmr != NULL) { - STOP_TIMER(pcb->tmr); - } - pcb = pcb->next_cb; - } - if (btn->press_serial_cb.tmr && btn->press_serial_cb.tmr != NULL) { - STOP_TIMER(btn->press_serial_cb.tmr); - } - if (btn->tap_short_cb.cb && btn->state == BUTTON_STATE_PUSH) { - btn->tap_short_cb.cb(btn->tap_short_cb.arg); - } - if(btn->tap_rls_cb.cb && btn->state != BUTTON_STATE_IDLE) { - btn->tap_rls_cb.cb(btn->tap_rls_cb.arg); - } - btn->state = BUTTON_STATE_IDLE; - } -} - -static void button_press_serial_cb(void* tmr) -{ - #if !USE_ESP_TIMER - button_dev_t* btn = (button_dev_t*) pvTimerGetTimerID(tmr); - #else - button_dev_t* btn = (button_dev_t*)(tmr); - #endif - - if (btn->press_serial_cb.cb) { - btn->press_serial_cb.cb(btn->press_serial_cb.arg); - } - #if !USE_ESP_TIMER - xTimerChangePeriod(btn->press_serial_cb.tmr, btn->press_serial_cb.interval, portMAX_DELAY); - xTimerReset(btn->press_serial_cb.tmr, portMAX_DELAY); - #else - esp_timer_stop(btn->press_serial_cb.tmr); - esp_timer_start_once(btn->press_serial_cb.tmr, btn->press_serial_cb.interval * portTICK_PERIOD_MS * 1000); - #endif -} - -static void button_gpio_isr_handler(void* arg) -{ - button_dev_t* btn = (button_dev_t*) arg; - portBASE_TYPE HPTaskAwoken = pdFALSE; - int level = gpio_get_level(btn->io_num); - if (level == btn->active_level) { - if (btn->tap_psh_cb.tmr) { - #if !USE_ESP_TIMER - xTimerStopFromISR(btn->tap_psh_cb.tmr, &HPTaskAwoken); - xTimerResetFromISR(btn->tap_psh_cb.tmr, &HPTaskAwoken); - #else - esp_timer_stop(btn->tap_psh_cb.tmr); - esp_timer_start_once(btn->tap_psh_cb.tmr, btn->tap_psh_cb.interval * portTICK_PERIOD_MS * 1000); - #endif - } - - button_cb_t *pcb = btn->cb_head; - while (pcb != NULL) { - if (pcb->tmr != NULL) { - #if !USE_ESP_TIMER - xTimerStopFromISR(pcb->tmr, &HPTaskAwoken); - xTimerResetFromISR(pcb->tmr, &HPTaskAwoken); - #else - esp_timer_stop(pcb->tmr); - esp_timer_start_once(pcb->tmr, pcb->interval * portTICK_PERIOD_MS * 1000); - #endif - } - pcb = pcb->next_cb; - } - } else { - // 50ms, check if this is a real key up - if (btn->tap_rls_cb.tmr) { - #if !USE_ESP_TIMER - xTimerStopFromISR(btn->tap_rls_cb.tmr, &HPTaskAwoken); - xTimerResetFromISR(btn->tap_rls_cb.tmr, &HPTaskAwoken); - #else - esp_timer_stop(btn->tap_rls_cb.tmr); - esp_timer_start_once(btn->tap_rls_cb.tmr, btn->tap_rls_cb.interval * portTICK_PERIOD_MS * 1000); - #endif - } - } - if(HPTaskAwoken == pdTRUE) { - portYIELD_FROM_ISR(); - } -} - -#if !USE_ESP_TIMER -static void button_free_tmr(xTimerHandle* tmr) -#else -static void button_free_tmr(esp_timer_handle_t *tmr) -#endif -{ - if (tmr && *tmr) { - STOP_TIMER(*tmr); - DELETE_TIMER(*tmr); - *tmr = NULL; - } -} - -esp_err_t iot_button_delete(button_handle_t btn_handle) -{ - POINT_ASSERT(TAG, btn_handle, ESP_ERR_INVALID_ARG); - button_dev_t* btn = (button_dev_t*) btn_handle; - gpio_set_intr_type(btn->io_num, GPIO_INTR_DISABLE); - gpio_isr_handler_remove(btn->io_num); - - button_free_tmr(&btn->tap_rls_cb.tmr); - button_free_tmr(&btn->tap_psh_cb.tmr); - button_free_tmr(&btn->tap_short_cb.tmr); - button_free_tmr(&btn->press_serial_cb.tmr); - - button_cb_t *pcb = btn->cb_head; - while (pcb != NULL) { - button_cb_t *cb_next = pcb->next_cb; - button_free_tmr(&pcb->tmr); - free(pcb); - pcb = cb_next; - } - free(btn); - return ESP_OK; -} - -button_handle_t iot_button_create(gpio_num_t gpio_num, button_active_t active_level) -{ - #if USE_ESP_TIMER - ets_printf("use esp timer !!!\n"); - esp_timer_init(); - #endif - - IOT_CHECK(TAG, gpio_num < GPIO_NUM_MAX, NULL); - button_dev_t* btn = (button_dev_t*) calloc(1, sizeof(button_dev_t)); - POINT_ASSERT(TAG, btn, NULL); - btn->active_level = active_level; - btn->io_num = gpio_num; - btn->state = BUTTON_STATE_IDLE; - btn->tap_rls_cb.arg = NULL; - btn->tap_rls_cb.cb = NULL; - btn->tap_rls_cb.interval = BUTTON_GLITCH_FILTER_TIME_MS / portTICK_PERIOD_MS; - btn->tap_rls_cb.pbtn = btn; - #if !USE_ESP_TIMER - btn->tap_rls_cb.tmr = xTimerCreate("btn_rls_tmr", btn->tap_rls_cb.interval, pdFALSE, - &btn->tap_rls_cb, button_tap_rls_cb); - #else - esp_timer_create_args_t tmr_param_rls; - tmr_param_rls.arg = &btn->tap_rls_cb; - tmr_param_rls.callback = button_tap_rls_cb; - tmr_param_rls.dispatch_method = ESP_TIMER_TASK; - tmr_param_rls.name = "btn_rls_tmr"; - esp_timer_create(&tmr_param_rls, &btn->tap_rls_cb.tmr); - #endif - - btn->tap_psh_cb.arg = NULL; - btn->tap_psh_cb.cb = NULL; - btn->tap_psh_cb.interval = BUTTON_GLITCH_FILTER_TIME_MS / portTICK_PERIOD_MS; - btn->tap_psh_cb.pbtn = btn; - #if !USE_ESP_TIMER - btn->tap_psh_cb.tmr = xTimerCreate("btn_psh_tmr", btn->tap_psh_cb.interval, pdFALSE, - &btn->tap_psh_cb, button_tap_psh_cb); - #else - esp_timer_create_args_t tmr_param_psh; - tmr_param_psh.arg = &btn->tap_psh_cb; - tmr_param_psh.callback = button_tap_psh_cb; - tmr_param_psh.dispatch_method = ESP_TIMER_TASK; - tmr_param_psh.name = "btn_psh_tmr"; - esp_timer_create(&tmr_param_psh, &btn->tap_psh_cb.tmr); - #endif - gpio_install_isr_service(0); - gpio_config_t gpio_conf; - gpio_conf.intr_type = GPIO_INTR_ANYEDGE; - gpio_conf.mode = GPIO_MODE_INPUT; - gpio_conf.pin_bit_mask = (1ULL << gpio_num); - gpio_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; - gpio_conf.pull_up_en = GPIO_PULLUP_ENABLE; - gpio_config(&gpio_conf); - gpio_isr_handler_add(gpio_num, button_gpio_isr_handler, btn); - return (button_handle_t) btn; -} - -esp_err_t iot_button_rm_cb(button_handle_t btn_handle, button_cb_type_t type) -{ - button_dev_t* btn = (button_dev_t*) btn_handle; - button_cb_t* btn_cb = NULL; - if (type == BUTTON_CB_PUSH) { - btn_cb = &btn->tap_psh_cb; - } else if (type == BUTTON_CB_RELEASE) { - btn_cb = &btn->tap_rls_cb; - } else if (type == BUTTON_CB_TAP) { - btn_cb = &btn->tap_short_cb; - } else if (type == BUTTON_CB_SERIAL) { - btn_cb = &btn->press_serial_cb; - } - btn_cb->cb = NULL; - btn_cb->arg = NULL; - btn_cb->pbtn = btn; - button_free_tmr(&btn_cb->tmr); - return ESP_OK; -} - -esp_err_t iot_button_set_serial_cb(button_handle_t btn_handle, uint32_t start_after_sec, TickType_t interval_tick, button_cb cb, void* arg) -{ - button_dev_t* btn = (button_dev_t*) btn_handle; - btn->serial_thres_sec = start_after_sec; - - if (btn->press_serial_cb.tmr == NULL) { - #if !USE_ESP_TIMER - btn->press_serial_cb.tmr = xTimerCreate("btn_serial_tmr", btn->serial_thres_sec*1000 / portTICK_PERIOD_MS, - pdFALSE, btn, button_press_serial_cb); - #else - esp_timer_create_args_t tmr_param_ser; - tmr_param_ser.arg = btn; - tmr_param_ser.callback = button_press_serial_cb; - tmr_param_ser.dispatch_method = ESP_TIMER_TASK; - tmr_param_ser.name = "btn_serial_tmr"; - esp_timer_create(&tmr_param_ser, &btn->press_serial_cb.tmr); - #endif - } - btn->press_serial_cb.arg = arg; - btn->press_serial_cb.cb = cb; - btn->press_serial_cb.interval = interval_tick; - btn->press_serial_cb.pbtn = btn; - #if !USE_ESP_TIMER - xTimerChangePeriod(btn->press_serial_cb.tmr, btn->serial_thres_sec*1000 / portTICK_PERIOD_MS, portMAX_DELAY); - #endif - return ESP_OK; -} - -esp_err_t iot_button_set_evt_cb(button_handle_t btn_handle, button_cb_type_t type, button_cb cb, void* arg) -{ - POINT_ASSERT(TAG, btn_handle, ESP_ERR_INVALID_ARG); - button_dev_t* btn = (button_dev_t*) btn_handle; - if (type == BUTTON_CB_PUSH) { - btn->tap_psh_cb.arg = arg; - btn->tap_psh_cb.cb = cb; - btn->tap_psh_cb.interval = BUTTON_GLITCH_FILTER_TIME_MS / portTICK_RATE_MS; - btn->tap_psh_cb.pbtn = btn; - #if !USE_ESP_TIMER - xTimerChangePeriod(btn->tap_psh_cb.tmr, btn->tap_psh_cb.interval, portMAX_DELAY); - #endif - } else if (type == BUTTON_CB_RELEASE) { - btn->tap_rls_cb.arg = arg; - btn->tap_rls_cb.cb = cb; - btn->tap_rls_cb.interval = BUTTON_GLITCH_FILTER_TIME_MS / portTICK_RATE_MS; - btn->tap_rls_cb.pbtn = btn; - #if !USE_ESP_TIMER - xTimerChangePeriod(btn->tap_rls_cb.tmr, btn->tap_psh_cb.interval, portMAX_DELAY); - #endif - } else if (type == BUTTON_CB_TAP) { - btn->tap_short_cb.arg = arg; - btn->tap_short_cb.cb = cb; - btn->tap_short_cb.interval = BUTTON_GLITCH_FILTER_TIME_MS / portTICK_RATE_MS; - btn->tap_short_cb.pbtn = btn; - } else if (type == BUTTON_CB_SERIAL) { - iot_button_set_serial_cb(btn_handle, 1, 1000 / portTICK_RATE_MS, cb, arg); - } - return ESP_OK; -} - -esp_err_t iot_button_add_custom_cb(button_handle_t btn_handle, uint32_t press_sec, button_cb cb, void* arg) -{ - POINT_ASSERT(TAG, btn_handle, ESP_ERR_INVALID_ARG); - IOT_CHECK(TAG, press_sec != 0, ESP_ERR_INVALID_ARG); - button_dev_t* btn = (button_dev_t*) btn_handle; - button_cb_t* cb_new = (button_cb_t*) calloc(1, sizeof(button_cb_t)); - POINT_ASSERT(TAG, cb_new, ESP_FAIL); - cb_new->arg = arg; - cb_new->cb = cb; - cb_new->interval = press_sec * 1000 / portTICK_PERIOD_MS; - cb_new->pbtn = btn; - #if !USE_ESP_TIMER - cb_new->tmr = xTimerCreate("btn_press_tmr", cb_new->interval, pdFALSE, cb_new, button_press_cb); - #else - esp_timer_create_args_t tmr_param_cus; - tmr_param_cus.arg = cb_new; - tmr_param_cus.callback = button_press_cb; - tmr_param_cus.dispatch_method = ESP_TIMER_TASK; - tmr_param_cus.name = "btn_press_custom_tmr"; - esp_timer_create(&tmr_param_cus, &cb_new->tmr); - #endif - cb_new->next_cb = btn->cb_head; - btn->cb_head = cb_new; - return ESP_OK; -} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button_obj.cpp b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button_obj.cpp deleted file mode 100644 index bf49238e51..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button_obj.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "esp_system.h" -#include "iot_button.h" - -CButton::CButton(gpio_num_t gpio_num, button_active_t active_level) -{ - m_btn_handle = iot_button_create(gpio_num, active_level); -} - -CButton::~CButton() -{ - iot_button_delete(m_btn_handle); - m_btn_handle = NULL; -} - -esp_err_t CButton::set_evt_cb(button_cb_type_t type, button_cb cb, void* arg) -{ - return iot_button_set_evt_cb(m_btn_handle, type, cb, arg); -} - -esp_err_t CButton::set_serial_cb(button_cb cb, void* arg, TickType_t interval_tick, uint32_t start_after_sec) -{ - return iot_button_set_serial_cb(m_btn_handle, start_after_sec, interval_tick, cb, arg); -} - -esp_err_t CButton::add_custom_cb(uint32_t press_sec, button_cb cb, void* arg) -{ - return iot_button_add_custom_cb(m_btn_handle, press_sec, cb, arg); -} - -esp_err_t CButton::rm_cb(button_cb_type_t type) -{ - return iot_button_rm_cb(m_btn_handle, type); -} diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/include/iot_button.h b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/include/iot_button.h deleted file mode 100644 index 0a8564d683..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/include/iot_button.h +++ /dev/null @@ -1,231 +0,0 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -#ifndef _IOT_BUTTON_H_ -#define _IOT_BUTTON_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include "driver/gpio.h" -#include "freertos/portmacro.h" - -typedef void (* button_cb)(void*); -typedef void* button_handle_t; - -typedef enum { - BUTTON_ACTIVE_HIGH = 1, /*!