From db67e2d35c55923964b381eca65bc0eebb14428c Mon Sep 17 00:00:00 2001 From: lly Date: Wed, 13 May 2020 14:46:24 +0800 Subject: [PATCH 1/8] ble_mesh: Rename common_vendor_models to common_components Since the scripts of CI will bypass common_components when trying to get ALL_EXAMPLES, and these BLE Mesh components will only be used by other mesh examples, i.e. no need to be compiled as a single example, so we rename the folder to common_componnets. --- .../fast_prov_vendor_model}/CMakeLists.txt | 0 .../fast_prov_vendor_model}/component.mk | 0 .../esp_fast_prov_client_model.c | 0 .../esp_fast_prov_client_model.h | 0 .../esp_fast_prov_common.h | 0 .../esp_fast_prov_operation.c | 0 .../esp_fast_prov_operation.h | 0 .../esp_fast_prov_server_model.c | 0 .../esp_fast_prov_server_model.h | 0 .../common_vendor_models/README.md | 2 -- .../fast_prov_vendor_model/CMakeLists.txt | 6 ------ .../fast_prov_vendor_model/Makefile | 10 --------- .../main/CMakeLists.txt | 1 - .../fast_prov_vendor_model/main/component.mk | 5 ----- .../fast_prov_vendor_model/main/main.c | 21 ------------------- .../fast_prov_vendor_model/sdkconfig.defaults | 7 ------- 16 files changed, 52 deletions(-) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/CMakeLists.txt (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/component.mk (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_client_model.c (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_client_model.h (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_common.h (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_operation.c (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_operation.h (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_server_model.c (100%) rename examples/bluetooth/esp_ble_mesh/{common_vendor_models/fast_prov_vendor_model/components => common_components/fast_prov_vendor_model}/esp_fast_prov_server_model.h (100%) delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/README.md delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/CMakeLists.txt delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/Makefile delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/CMakeLists.txt delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/component.mk delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/main.c delete mode 100644 examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/sdkconfig.defaults diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/CMakeLists.txt similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/CMakeLists.txt rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/CMakeLists.txt diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/component.mk b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/component.mk similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/component.mk rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/component.mk diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_client_model.c b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_client_model.c similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_client_model.c rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_client_model.c diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_client_model.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_client_model.h similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_client_model.h rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_client_model.h diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_common.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_common.h similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_common.h rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_common.h diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_operation.c b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_operation.c similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_operation.c rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_operation.c diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_operation.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_operation.h similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_operation.h rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_operation.h diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_server_model.c b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_server_model.c similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_server_model.c rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_server_model.c diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_server_model.h b/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_server_model.h similarity index 100% rename from examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/components/esp_fast_prov_server_model.h rename to examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model/esp_fast_prov_server_model.h diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/README.md b/examples/bluetooth/esp_ble_mesh/common_vendor_models/README.md deleted file mode 100644 index f708a1985a..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/README.md +++ /dev/null @@ -1,2 +0,0 @@ -| Supported Targets | ESP32 | -| ----------------- | ----- | diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/CMakeLists.txt deleted file mode 100644 index cb92f4b374..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# The following lines of boilerplate have to be in your project's CMakeLists -# in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.5) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(fast_prov_vendor_model) diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/Makefile b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/Makefile deleted file mode 100644 index 274dd33494..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# -# This is a project Makefile. It is assumed the directory this Makefile resides in is a -# project subdirectory. -# - -PROJECT_NAME := fast_prov_vendor_model - -COMPONENT_ADD_INCLUDEDIRS := components/include - -include $(IDF_PATH)/make/project.mk diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/CMakeLists.txt deleted file mode 100644 index 34613e8e3c..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -idf_component_register(SRCS "main.c") diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/component.mk b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/component.mk deleted file mode 100644 index d68c5375e9..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/component.mk +++ /dev/null @@ -1,5 +0,0 @@ -# -# "main" pseudo-component makefile. -# -# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) -# \ No newline at end of file diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/main.c b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/main.c deleted file mode 100644 index 3c9f9632ff..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/main/main.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017-2019 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. - -void app_main(void) -{ - /* This main.c is for CI. The fast_prov_vendor_model shall be - * included by other ble mesh examples which need vendor fast - * provisioning client/server models. - */ -} diff --git a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/sdkconfig.defaults b/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/sdkconfig.defaults deleted file mode 100644 index afce3cf464..0000000000 --- a/examples/bluetooth/esp_ble_mesh/common_vendor_models/fast_prov_vendor_model/sdkconfig.defaults +++ /dev/null @@ -1,7 +0,0 @@ -# Override some defaults so BT stack is enabled -# by default in this example -CONFIG_BT_ENABLED=y - -# Override some defaults of ESP BLE Mesh -CONFIG_BLE_MESH=y -CONFIG_BLE_MESH_FAST_PROV=y From 5598620f6c2a4d7265e62c8b8563b5ec10ce971e Mon Sep 17 00:00:00 2001 From: lly Date: Wed, 13 May 2020 14:51:44 +0800 Subject: [PATCH 2/8] ble_mesh: Change the EXTRA_COMPONENT_DIRS used by examples --- .../ble_mesh_fast_prov_client/CMakeLists.txt | 2 +- .../ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile | 2 +- .../ble_mesh_fast_prov_server/CMakeLists.txt | 2 +- .../ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile | 2 +- .../bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/CMakeLists.txt | 2 +- examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) 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 1dcfafdf92..4507a0d56d 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,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_vendor_models/fast_prov_vendor_model/components) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_fast_prov_client) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_client/Makefile index d6537805f4..240b9bbcd8 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 @@ -7,6 +7,6 @@ PROJECT_NAME := ble_mesh_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/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/CMakeLists.txt b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/CMakeLists.txt index c09547f94d..330a6576b7 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,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_vendor_models/fast_prov_vendor_model/components) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_fast_prov_server) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_fast_provision/ble_mesh_fast_prov_server/Makefile index 07484a5706..84a6ab1e3b 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 @@ -7,6 +7,6 @@ PROJECT_NAME := ble_mesh_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/fast_prov_vendor_model include $(IDF_PATH)/make/project.mk 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 537339edb8..fbdbbdbf4f 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,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_vendor_models/fast_prov_vendor_model/components) +set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/bluetooth/esp_ble_mesh/common_components/fast_prov_vendor_model) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(ble_mesh_wifi_coexist) diff --git a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile index 933cd01432..b25c9a1d16 100644 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile +++ b/examples/bluetooth/esp_ble_mesh/ble_mesh_wifi_coexist/Makefile @@ -7,6 +7,6 @@ PROJECT_NAME := ble_mesh_wifi_coexist 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/fast_prov_vendor_model include $(IDF_PATH)/make/project.mk From a2a952aa55bc0a69374a4b5059ff8f62deb511e5 Mon Sep 17 00:00:00 2001 From: lly Date: Wed, 13 May 2020 15:02:24 +0800 Subject: [PATCH 3/8] ble_mesh: Move the button component to common_components --- .../ble_mesh_node/onoff_client/CMakeLists.txt | 2 + .../ble_mesh_node/onoff_client/Makefile | 2 + .../sensor_client/CMakeLists.txt | 2 + .../sensor_client/Makefile | 2 + .../components/button/CMakeLists.txt | 3 - .../sensor_client/components/button/Kconfig | 21 - .../sensor_client/components/button/README.md | 46 -- .../sensor_client/components/button/button.c | 434 ------------------ .../components/button/button_obj.cpp | 48 -- .../components/button/component.mk | 4 - .../components/button/include/iot_button.h | 231 ---------- .../vendor_client/CMakeLists.txt | 2 + .../vendor_client/Makefile | 2 + .../components/button/CMakeLists.txt | 3 - .../vendor_client/components/button/Kconfig | 21 - .../vendor_client/components/button/README.md | 46 -- .../vendor_client/components/button/button.c | 434 ------------------ .../components/button/button_obj.cpp | 48 -- .../components/button/component.mk | 4 - .../components/button/include/iot_button.h | 231 ---------- .../button/CMakeLists.txt | 0 .../button/Kconfig | 0 .../button/README.md | 0 .../button/button.c | 0 .../button/button_obj.cpp | 0 .../button/component.mk | 0 .../button/include/iot_button.h | 0 27 files changed, 12 insertions(+), 1574 deletions(-) delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/CMakeLists.txt delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/Kconfig delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/README.md delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button.c delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/button_obj.cpp delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/component.mk delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/include/iot_button.h delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/CMakeLists.txt delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/Kconfig delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/README.md delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/button.c delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/button_obj.cpp delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/component.mk delete mode 100644 examples/bluetooth/esp_ble_mesh/ble_mesh_vendor_model/vendor_client/components/button/include/iot_button.h rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/CMakeLists.txt (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/Kconfig (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/README.md (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/button.c (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/button_obj.cpp (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/component.mk (100%) rename examples/bluetooth/esp_ble_mesh/{ble_mesh_node/onoff_client/components => common_components}/button/include/iot_button.h (100%) 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..5607522361 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,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/button) + 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..3c768093b9 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 @@ -7,4 +7,6 @@ PROJECT_NAME := onoff_client COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/button + include $(IDF_PATH)/make/project.mk 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..78467cd276 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,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/button) + 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..7e5dfe9ae3 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 @@ -7,4 +7,6 @@ PROJECT_NAME := sensor_client COMPONENT_ADD_INCLUDEDIRS := components/include +EXTRA_COMPONENT_DIRS := $(IDF_PATH)/examples/bluetooth/esp_ble_mesh/common_components/button + 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/component.mk b/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/component.mk deleted file mode 100644 index a98f634eae..0000000000 --- a/examples/bluetooth/esp_ble_mesh/ble_mesh_sensor_model/sensor_client/components/button/component.mk +++ /dev/null @@ -1,4 +0,0 @@ -# -# "main" pseudo-component makefile. -# -# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) 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, /*!