From 317f4c5ff51df9049a4120c1e3384caef2232ebb Mon Sep 17 00:00:00 2001 From: lly Date: Mon, 2 Sep 2019 11:41:39 +0800 Subject: [PATCH] ble_mesh: reorganize ble mesh model files --- components/bt/CMakeLists.txt | 15 +++++++------- components/bt/component.mk | 18 +++++++++-------- .../bt/esp_ble_mesh/btc/btc_ble_mesh_prov.c | 2 +- .../esp_ble_mesh/mesh_core/include/cfg_cli.h | 2 +- .../mesh_core/include/health_cli.h | 2 +- .../bt/esp_ble_mesh/mesh_core/transport.c | 2 +- .../client_common.c} | 20 +------------------ .../mesh_models/{ => client}/generic_client.c | 0 .../include/client_common.h} | 10 ---------- .../{ => client}/include/generic_client.h | 2 +- .../{ => client}/include/lighting_client.h | 2 +- .../{ => client}/include/sensor_client.h | 2 +- .../{ => client}/include/time_scene_client.h | 2 +- .../{ => client}/lighting_client.c | 0 .../mesh_models/{ => client}/sensor_client.c | 0 .../{ => client}/time_scene_client.c | 0 .../{ => common}/include/mesh_common.h | 15 ++++++++++++++ .../{ => common}/include/model_opcode.h | 0 .../mesh_models/{ => common}/mesh_common.c | 20 +++++++++++++++++++ 19 files changed, 62 insertions(+), 52 deletions(-) rename components/bt/esp_ble_mesh/mesh_models/{model_common.c => client/client_common.c} (95%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/generic_client.c (100%) rename components/bt/esp_ble_mesh/mesh_models/{include/model_common.h => client/include/client_common.h} (93%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/include/generic_client.h (99%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/include/lighting_client.h (99%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/include/sensor_client.h (99%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/include/time_scene_client.h (99%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/lighting_client.c (100%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/sensor_client.c (100%) rename components/bt/esp_ble_mesh/mesh_models/{ => client}/time_scene_client.c (100%) rename components/bt/esp_ble_mesh/mesh_models/{ => common}/include/mesh_common.h (71%) rename components/bt/esp_ble_mesh/mesh_models/{ => common}/include/model_opcode.h (100%) rename components/bt/esp_ble_mesh/mesh_models/{ => common}/mesh_common.c (72%) diff --git a/components/bt/CMakeLists.txt b/components/bt/CMakeLists.txt index 095493c1dd..2b8a96363d 100644 --- a/components/bt/CMakeLists.txt +++ b/components/bt/CMakeLists.txt @@ -297,7 +297,8 @@ if(CONFIG_BT_ENABLED) "esp_ble_mesh/mesh_core/include" "esp_ble_mesh/mesh_core/settings" "esp_ble_mesh/btc/include" - "esp_ble_mesh/mesh_models/include" + "esp_ble_mesh/mesh_models/common/include" + "esp_ble_mesh/mesh_models/client/include" "esp_ble_mesh/api/core/include" "esp_ble_mesh/api/models/include" "esp_ble_mesh/api") @@ -350,12 +351,12 @@ if(CONFIG_BT_ENABLED) "esp_ble_mesh/mesh_core/settings.c" "esp_ble_mesh/mesh_core/test.c" "esp_ble_mesh/mesh_core/transport.c" - "esp_ble_mesh/mesh_models/generic_client.c" - "esp_ble_mesh/mesh_models/lighting_client.c" - "esp_ble_mesh/mesh_models/mesh_common.c" - "esp_ble_mesh/mesh_models/model_common.c" - "esp_ble_mesh/mesh_models/sensor_client.c" - "esp_ble_mesh/mesh_models/time_scene_client.c") + "esp_ble_mesh/mesh_models/common/mesh_common.c" + "esp_ble_mesh/mesh_models/client/client_common.c" + "esp_ble_mesh/mesh_models/client/generic_client.c" + "esp_ble_mesh/mesh_models/client/lighting_client.c" + "esp_ble_mesh/mesh_models/client/sensor_client.c" + "esp_ble_mesh/mesh_models/client/time_scene_client.c") endif() if(CONFIG_BT_NIMBLE_ENABLED) diff --git a/components/bt/component.mk b/components/bt/component.mk index 2e7148d22e..7fa74dcf03 100644 --- a/components/bt/component.mk +++ b/components/bt/component.mk @@ -132,19 +132,21 @@ COMPONENT_SRCDIRS += common/osi \ endif ifdef CONFIG_BLE_MESH - COMPONENT_ADD_INCLUDEDIRS += esp_ble_mesh/mesh_core \ - esp_ble_mesh/mesh_core/include \ - esp_ble_mesh/mesh_core/settings \ - esp_ble_mesh/btc/include \ - esp_ble_mesh/mesh_models/include \ - esp_ble_mesh/api/core/include \ - esp_ble_mesh/api/models/include \ + COMPONENT_ADD_INCLUDEDIRS += esp_ble_mesh/mesh_core \ + esp_ble_mesh/mesh_core/include \ + esp_ble_mesh/mesh_core/settings \ + esp_ble_mesh/btc/include \ + esp_ble_mesh/mesh_models/common/include \ + esp_ble_mesh/mesh_models/client/include \ + esp_ble_mesh/api/core/include \ + esp_ble_mesh/api/models/include \ esp_ble_mesh/api COMPONENT_SRCDIRS += esp_ble_mesh/mesh_core \ esp_ble_mesh/mesh_core/settings \ esp_ble_mesh/btc \ - esp_ble_mesh/mesh_models \ + esp_ble_mesh/mesh_models/common \ + esp_ble_mesh/mesh_models/client \ esp_ble_mesh/api/core \ esp_ble_mesh/api/models endif diff --git a/components/bt/esp_ble_mesh/btc/btc_ble_mesh_prov.c b/components/bt/esp_ble_mesh/btc/btc_ble_mesh_prov.c index c825e93907..e1517d6bb3 100644 --- a/components/bt/esp_ble_mesh/btc/btc_ble_mesh_prov.c +++ b/components/bt/esp_ble_mesh/btc/btc_ble_mesh_prov.c @@ -44,7 +44,7 @@ #include "lighting_client.h" #include "sensor_client.h" #include "time_scene_client.h" -#include "model_common.h" +#include "client_common.h" #include "btc_ble_mesh_prov.h" #include "btc_ble_mesh_config_model.h" diff --git a/components/bt/esp_ble_mesh/mesh_core/include/cfg_cli.h b/components/bt/esp_ble_mesh/mesh_core/include/cfg_cli.h index b001d84b8a..8f46a045ad 100644 --- a/components/bt/esp_ble_mesh/mesh_core/include/cfg_cli.h +++ b/components/bt/esp_ble_mesh/mesh_core/include/cfg_cli.h @@ -13,7 +13,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /** * @brief Bluetooth Mesh diff --git a/components/bt/esp_ble_mesh/mesh_core/include/health_cli.h b/components/bt/esp_ble_mesh/mesh_core/include/health_cli.h index 9d7230ebac..b1e1b693d0 100644 --- a/components/bt/esp_ble_mesh/mesh_core/include/health_cli.h +++ b/components/bt/esp_ble_mesh/mesh_core/include/health_cli.h @@ -13,7 +13,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /** * @brief Bluetooth Mesh diff --git a/components/bt/esp_ble_mesh/mesh_core/transport.c b/components/bt/esp_ble_mesh/mesh_core/transport.c index a456ebbfc8..0902783515 100644 --- a/components/bt/esp_ble_mesh/mesh_core/transport.c +++ b/components/bt/esp_ble_mesh/mesh_core/transport.c @@ -31,7 +31,7 @@ #include "settings.h" #include "transport.h" #include "mesh_common.h" -#include "model_common.h" +#include "client_common.h" #include "provisioner_main.h" /* The transport layer needs at least three buffers for itself to avoid diff --git a/components/bt/esp_ble_mesh/mesh_models/model_common.c b/components/bt/esp_ble_mesh/mesh_models/client/client_common.c similarity index 95% rename from components/bt/esp_ble_mesh/mesh_models/model_common.c rename to components/bt/esp_ble_mesh/mesh_models/client/client_common.c index cc694082cd..8802e424cc 100644 --- a/components/bt/esp_ble_mesh/mesh_models/model_common.c +++ b/components/bt/esp_ble_mesh/mesh_models/client/client_common.c @@ -23,7 +23,7 @@ #include "mesh_main.h" #include "mesh.h" -#include "model_common.h" +#include "client_common.h" bt_mesh_client_node_t *bt_mesh_is_model_message_publish(struct bt_mesh_model *model, struct bt_mesh_msg_ctx *ctx, @@ -316,21 +316,3 @@ int bt_mesh_set_model_role(bt_mesh_role_param_t *common) return 0; } -u8_t bt_mesh_get_model_role(struct bt_mesh_model *model, bool srv_send) -{ - bt_mesh_client_common_t *client = NULL; - - if (srv_send) { - BT_DBG("%s, Message is sent by a server model", __func__); - return NODE; - } - - if (!model || !model->user_data) { - BT_ERR("%s, Invalid parameter", __func__); - return ROLE_NVAL; - } - - client = (bt_mesh_client_common_t *)model->user_data; - - return client->msg_role; -} diff --git a/components/bt/esp_ble_mesh/mesh_models/generic_client.c b/components/bt/esp_ble_mesh/mesh_models/client/generic_client.c similarity index 100% rename from components/bt/esp_ble_mesh/mesh_models/generic_client.c rename to components/bt/esp_ble_mesh/mesh_models/client/generic_client.c diff --git a/components/bt/esp_ble_mesh/mesh_models/include/model_common.h b/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h similarity index 93% rename from components/bt/esp_ble_mesh/mesh_models/include/model_common.h rename to components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h index 486cdb769d..55d78831d3 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/model_common.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/client_common.h @@ -119,15 +119,5 @@ typedef struct bt_mesh_role_param { */ int bt_mesh_set_model_role(bt_mesh_role_param_t *common); -/** - * @brief This function gets msg role for stack internal use. - * - * @param[in] model: Pointer to the model structure - * @param[in] srv_send: Indicate if the message is sent by a server model - * - * @return 0 - Node, 1 - Provisioner - */ -u8_t bt_mesh_get_model_role(struct bt_mesh_model *model, bool srv_send); - #endif /* _MODEL_COMMON_H_ */ diff --git a/components/bt/esp_ble_mesh/mesh_models/include/generic_client.h b/components/bt/esp_ble_mesh/mesh_models/client/include/generic_client.h similarity index 99% rename from components/bt/esp_ble_mesh/mesh_models/include/generic_client.h rename to components/bt/esp_ble_mesh/mesh_models/client/include/generic_client.h index e82587d766..b3cee9c756 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/generic_client.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/generic_client.h @@ -22,7 +22,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /* Generic client model common structure */ typedef bt_mesh_client_common_t bt_mesh_generic_client_t; diff --git a/components/bt/esp_ble_mesh/mesh_models/include/lighting_client.h b/components/bt/esp_ble_mesh/mesh_models/client/include/lighting_client.h similarity index 99% rename from components/bt/esp_ble_mesh/mesh_models/include/lighting_client.h rename to components/bt/esp_ble_mesh/mesh_models/client/include/lighting_client.h index 9e9789a821..bd2b735a6e 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/lighting_client.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/lighting_client.h @@ -22,7 +22,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /* Light client model common structure */ typedef bt_mesh_client_common_t bt_mesh_light_client_t; diff --git a/components/bt/esp_ble_mesh/mesh_models/include/sensor_client.h b/components/bt/esp_ble_mesh/mesh_models/client/include/sensor_client.h similarity index 99% rename from components/bt/esp_ble_mesh/mesh_models/include/sensor_client.h rename to components/bt/esp_ble_mesh/mesh_models/client/include/sensor_client.h index 095499ef5d..14b450513e 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/sensor_client.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/sensor_client.h @@ -22,7 +22,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /* Sensor Client Model Context */ extern const struct bt_mesh_model_op sensor_cli_op[]; diff --git a/components/bt/esp_ble_mesh/mesh_models/include/time_scene_client.h b/components/bt/esp_ble_mesh/mesh_models/client/include/time_scene_client.h similarity index 99% rename from components/bt/esp_ble_mesh/mesh_models/include/time_scene_client.h rename to components/bt/esp_ble_mesh/mesh_models/client/include/time_scene_client.h index a37cf878f4..b6c8d18bf0 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/time_scene_client.h +++ b/components/bt/esp_ble_mesh/mesh_models/client/include/time_scene_client.h @@ -22,7 +22,7 @@ #include "mesh_access.h" #include "mesh_kernel.h" -#include "model_common.h" +#include "client_common.h" /* Time scene client model common structure */ typedef bt_mesh_client_common_t bt_mesh_time_scene_client_t; diff --git a/components/bt/esp_ble_mesh/mesh_models/lighting_client.c b/components/bt/esp_ble_mesh/mesh_models/client/lighting_client.c similarity index 100% rename from components/bt/esp_ble_mesh/mesh_models/lighting_client.c rename to components/bt/esp_ble_mesh/mesh_models/client/lighting_client.c diff --git a/components/bt/esp_ble_mesh/mesh_models/sensor_client.c b/components/bt/esp_ble_mesh/mesh_models/client/sensor_client.c similarity index 100% rename from components/bt/esp_ble_mesh/mesh_models/sensor_client.c rename to components/bt/esp_ble_mesh/mesh_models/client/sensor_client.c diff --git a/components/bt/esp_ble_mesh/mesh_models/time_scene_client.c b/components/bt/esp_ble_mesh/mesh_models/client/time_scene_client.c similarity index 100% rename from components/bt/esp_ble_mesh/mesh_models/time_scene_client.c rename to components/bt/esp_ble_mesh/mesh_models/client/time_scene_client.c diff --git a/components/bt/esp_ble_mesh/mesh_models/include/mesh_common.h b/components/bt/esp_ble_mesh/mesh_models/common/include/mesh_common.h similarity index 71% rename from components/bt/esp_ble_mesh/mesh_models/include/mesh_common.h rename to components/bt/esp_ble_mesh/mesh_models/common/include/mesh_common.h index 468cf65afc..501450c272 100644 --- a/components/bt/esp_ble_mesh/mesh_models/include/mesh_common.h +++ b/components/bt/esp_ble_mesh/mesh_models/common/include/mesh_common.h @@ -24,6 +24,7 @@ #include "mesh_types.h" #include "mesh_buf.h" #include "mesh_trace.h" +#include "mesh_access.h" /** * @brief This function allocates memory to store outgoing message. @@ -43,4 +44,18 @@ struct net_buf_simple *bt_mesh_alloc_buf(u16_t size); */ void bt_mesh_free_buf(struct net_buf_simple *buf); +/** + * @brief This function gets device role for stack internal use. + * + * @Note Currently Provisioner only support client models, Node supports + * client models and server models. Hence if srv_send is set to be + * TRUE, then role NODE will be returned. + * + * @param[in] model: Pointer to the model structure + * @param[in] srv_send: Indicate if the message is sent by a server model + * + * @return 0 - Node, 1 - Provisioner + */ +u8_t bt_mesh_get_model_role(struct bt_mesh_model *model, bool srv_send); + #endif /* _MESH_COMMON_H_ */ \ No newline at end of file diff --git a/components/bt/esp_ble_mesh/mesh_models/include/model_opcode.h b/components/bt/esp_ble_mesh/mesh_models/common/include/model_opcode.h similarity index 100% rename from components/bt/esp_ble_mesh/mesh_models/include/model_opcode.h rename to components/bt/esp_ble_mesh/mesh_models/common/include/model_opcode.h diff --git a/components/bt/esp_ble_mesh/mesh_models/mesh_common.c b/components/bt/esp_ble_mesh/mesh_models/common/mesh_common.c similarity index 72% rename from components/bt/esp_ble_mesh/mesh_models/mesh_common.c rename to components/bt/esp_ble_mesh/mesh_models/common/mesh_common.c index bb4aa6f934..9e7185d451 100644 --- a/components/bt/esp_ble_mesh/mesh_models/mesh_common.c +++ b/components/bt/esp_ble_mesh/mesh_models/common/mesh_common.c @@ -15,6 +15,7 @@ #include #include +#include "client_common.h" #include "mesh_common.h" struct net_buf_simple *bt_mesh_alloc_buf(u16_t size) @@ -44,3 +45,22 @@ void bt_mesh_free_buf(struct net_buf_simple *buf) osi_free(buf); } } + +u8_t bt_mesh_get_model_role(struct bt_mesh_model *model, bool srv_send) +{ + bt_mesh_client_common_t *client = NULL; + + if (srv_send) { + BT_DBG("%s, Message is sent by a server model", __func__); + return NODE; + } + + if (!model || !model->user_data) { + BT_ERR("%s, Invalid parameter", __func__); + return ROLE_NVAL; + } + + client = (bt_mesh_client_common_t *)model->user_data; + + return client->msg_role; +}