|
|
@@ -20,8 +20,6 @@
|
|
|
#include "cfg_cli.h"
|
|
|
#include "esp_ble_mesh_config_model_api.h"
|
|
|
|
|
|
-extern s32_t config_msg_timeout;
|
|
|
-
|
|
|
/* Configuration Client Model related functions */
|
|
|
|
|
|
static inline void btc_ble_mesh_config_client_cb_to_app(esp_ble_mesh_cfg_client_cb_event_t event,
|
|
|
@@ -317,7 +315,6 @@ void bt_mesh_config_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
|
|
|
{
|
|
|
esp_ble_mesh_cfg_client_cb_param_t cb_params = {0};
|
|
|
esp_ble_mesh_client_common_param_t params = {0};
|
|
|
- size_t length = 0U;
|
|
|
uint8_t act = 0U;
|
|
|
|
|
|
if (!model || !ctx) {
|
|
|
@@ -358,8 +355,7 @@ void bt_mesh_config_client_cb_evt_to_btc(u32_t opcode, u8_t evt_type,
|
|
|
cb_params.params = ¶ms;
|
|
|
|
|
|
if (val && len) {
|
|
|
- length = (len <= sizeof(cb_params.status_cb)) ? len : sizeof(cb_params.status_cb);
|
|
|
- memcpy(&cb_params.status_cb, val, length);
|
|
|
+ memcpy(&cb_params.status_cb, val, MIN(len, sizeof(cb_params.status_cb)));
|
|
|
}
|
|
|
|
|
|
btc_ble_mesh_config_client_callback(&cb_params, act);
|
|
|
@@ -383,7 +379,7 @@ void btc_ble_mesh_config_client_publish_callback(u32_t opcode, struct bt_mesh_mo
|
|
|
static int btc_ble_mesh_config_client_get_state(esp_ble_mesh_client_common_param_t *params,
|
|
|
esp_ble_mesh_cfg_client_get_state_t *get)
|
|
|
{
|
|
|
- struct bt_mesh_msg_ctx ctx = {0};
|
|
|
+ bt_mesh_client_common_param_t param = {0};
|
|
|
|
|
|
if (params == NULL) {
|
|
|
BT_ERR("%s, Invalid parameter", __func__);
|
|
|
@@ -410,63 +406,65 @@ static int btc_ble_mesh_config_client_get_state(esp_ble_mesh_client_common_param
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- ctx.net_idx = params->ctx.net_idx;
|
|
|
- ctx.app_idx = BLE_MESH_KEY_DEV;
|
|
|
- ctx.addr = params->ctx.addr;
|
|
|
- ctx.send_rel = params->ctx.send_rel;
|
|
|
- ctx.send_ttl = params->ctx.send_ttl;
|
|
|
-
|
|
|
- config_msg_timeout = params->msg_timeout;
|
|
|
+ param.opcode = params->opcode;
|
|
|
+ param.model = (struct bt_mesh_model *)params->model;
|
|
|
+ param.ctx.net_idx = params->ctx.net_idx;
|
|
|
+ param.ctx.app_idx = BLE_MESH_KEY_DEV;
|
|
|
+ param.ctx.addr = params->ctx.addr;
|
|
|
+ param.ctx.send_rel = params->ctx.send_rel;
|
|
|
+ param.ctx.send_ttl = params->ctx.send_ttl;
|
|
|
+ param.msg_timeout = params->msg_timeout;
|
|
|
+ param.msg_role = params->msg_role;
|
|
|
|
|
|
- switch (params->opcode) {
|
|
|
+ switch (param.opcode) {
|
|
|
case ESP_BLE_MESH_MODEL_OP_BEACON_GET:
|
|
|
- return bt_mesh_cfg_beacon_get(&ctx);
|
|
|
+ return bt_mesh_cfg_beacon_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_DEFAULT_TTL_GET:
|
|
|
- return bt_mesh_cfg_ttl_get(&ctx);
|
|
|
+ return bt_mesh_cfg_ttl_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_FRIEND_GET:
|
|
|
- return bt_mesh_cfg_friend_get(&ctx);
|
|
|
+ return bt_mesh_cfg_friend_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_GATT_PROXY_GET:
|
|
|
- return bt_mesh_cfg_gatt_proxy_get(&ctx);
|
|
|
+ return bt_mesh_cfg_gatt_proxy_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_RELAY_GET:
|
|
|
- return bt_mesh_cfg_relay_get(&ctx);
|
|
|
+ return bt_mesh_cfg_relay_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_PUB_GET:
|
|
|
- return bt_mesh_cfg_mod_pub_get(&ctx, get->model_pub_get.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_pub_get(¶m, get->model_pub_get.element_addr,
|
|
|
get->model_pub_get.model_id,
|
|
|
get->model_pub_get.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_HEARTBEAT_PUB_GET:
|
|
|
- return bt_mesh_cfg_hb_pub_get(&ctx);
|
|
|
+ return bt_mesh_cfg_hb_pub_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_HEARTBEAT_SUB_GET:
|
|
|
- return bt_mesh_cfg_hb_sub_get(&ctx);
|
|
|
+ return bt_mesh_cfg_hb_sub_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_COMPOSITION_DATA_GET:
|
|
|
- return bt_mesh_cfg_comp_data_get(&ctx, get->comp_data_get.page);
|
|
|
+ return bt_mesh_cfg_comp_data_get(¶m, get->comp_data_get.page);
|
|
|
case ESP_BLE_MESH_MODEL_OP_SIG_MODEL_SUB_GET:
|
|
|
- return bt_mesh_cfg_mod_sub_get(&ctx, get->sig_model_sub_get.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_get(¶m, get->sig_model_sub_get.element_addr,
|
|
|
get->sig_model_sub_get.model_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_VENDOR_MODEL_SUB_GET:
|
|
|
- return bt_mesh_cfg_mod_sub_get_vnd(&ctx, get->vnd_model_sub_get.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_get_vnd(¶m, get->vnd_model_sub_get.element_addr,
|
|
|
get->vnd_model_sub_get.model_id,
|
|
|
get->vnd_model_sub_get.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NET_KEY_GET:
|
|
|
- return bt_mesh_cfg_net_key_get(&ctx);
|
|
|
+ return bt_mesh_cfg_net_key_get(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_APP_KEY_GET:
|
|
|
- return bt_mesh_cfg_app_key_get(&ctx, get->app_key_get.net_idx);
|
|
|
+ return bt_mesh_cfg_app_key_get(¶m, get->app_key_get.net_idx);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NODE_IDENTITY_GET:
|
|
|
- return bt_mesh_cfg_node_identity_get(&ctx, get->node_identity_get.net_idx);
|
|
|
+ return bt_mesh_cfg_node_identity_get(¶m, get->node_identity_get.net_idx);
|
|
|
case ESP_BLE_MESH_MODEL_OP_SIG_MODEL_APP_GET:
|
|
|
- return bt_mesh_cfg_mod_app_get(&ctx, get->sig_model_app_get.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_app_get(¶m, get->sig_model_app_get.element_addr,
|
|
|
get->sig_model_app_get.model_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_VENDOR_MODEL_APP_GET:
|
|
|
- return bt_mesh_cfg_mod_app_get_vnd(&ctx, get->vnd_model_app_get.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_app_get_vnd(¶m, get->vnd_model_app_get.element_addr,
|
|
|
get->vnd_model_app_get.model_id,
|
|
|
get->vnd_model_app_get.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_KEY_REFRESH_PHASE_GET:
|
|
|
- return bt_mesh_cfg_kr_phase_get(&ctx, get->kr_phase_get.net_idx);
|
|
|
+ return bt_mesh_cfg_kr_phase_get(¶m, get->kr_phase_get.net_idx);
|
|
|
case ESP_BLE_MESH_MODEL_OP_LPN_POLLTIMEOUT_GET:
|
|
|
- return bt_mesh_cfg_lpn_timeout_get(&ctx, get->lpn_pollto_get.lpn_addr);
|
|
|
+ return bt_mesh_cfg_lpn_timeout_get(¶m, get->lpn_pollto_get.lpn_addr);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NETWORK_TRANSMIT_GET:
|
|
|
- return bt_mesh_cfg_net_transmit_get(&ctx);
|
|
|
+ return bt_mesh_cfg_net_transmit_get(¶m);
|
|
|
default:
|
|
|
- BT_ERR("Invalid Configuration Get opcode 0x%04x", params->opcode);
|
|
|
+ BT_ERR("Invalid Configuration Get opcode 0x%04x", param.opcode);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
@@ -476,7 +474,7 @@ static int btc_ble_mesh_config_client_get_state(esp_ble_mesh_client_common_param
|
|
|
static int btc_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param_t *params,
|
|
|
esp_ble_mesh_cfg_client_set_state_t *set)
|
|
|
{
|
|
|
- struct bt_mesh_msg_ctx ctx = {0};
|
|
|
+ bt_mesh_client_common_param_t param = {0};
|
|
|
|
|
|
if (params == NULL) {
|
|
|
BT_ERR("%s, Invalid parameter", __func__);
|
|
|
@@ -488,35 +486,37 @@ static int btc_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- ctx.net_idx = params->ctx.net_idx;
|
|
|
- ctx.app_idx = BLE_MESH_KEY_DEV;
|
|
|
- ctx.addr = params->ctx.addr;
|
|
|
- ctx.send_rel = params->ctx.send_rel;
|
|
|
- ctx.send_ttl = params->ctx.send_ttl;
|
|
|
+ param.opcode = params->opcode;
|
|
|
+ param.model = (struct bt_mesh_model *)params->model;
|
|
|
+ param.ctx.net_idx = params->ctx.net_idx;
|
|
|
+ param.ctx.app_idx = BLE_MESH_KEY_DEV;
|
|
|
+ param.ctx.addr = params->ctx.addr;
|
|
|
+ param.ctx.send_rel = params->ctx.send_rel;
|
|
|
+ param.ctx.send_ttl = params->ctx.send_ttl;
|
|
|
+ param.msg_timeout = params->msg_timeout;
|
|
|
+ param.msg_role = params->msg_role;
|
|
|
|
|
|
- config_msg_timeout = params->msg_timeout;
|
|
|
-
|
|
|
- switch (params->opcode) {
|
|
|
+ switch (param.opcode) {
|
|
|
case ESP_BLE_MESH_MODEL_OP_BEACON_SET:
|
|
|
- return bt_mesh_cfg_beacon_set(&ctx, set->beacon_set.beacon);
|
|
|
+ return bt_mesh_cfg_beacon_set(¶m, set->beacon_set.beacon);
|
|
|
case ESP_BLE_MESH_MODEL_OP_DEFAULT_TTL_SET:
|
|
|
- return bt_mesh_cfg_ttl_set(&ctx, set->default_ttl_set.ttl);
|
|
|
+ return bt_mesh_cfg_ttl_set(¶m, set->default_ttl_set.ttl);
|
|
|
case ESP_BLE_MESH_MODEL_OP_FRIEND_SET:
|
|
|
- return bt_mesh_cfg_friend_set(&ctx, set->friend_set.friend_state);
|
|
|
+ return bt_mesh_cfg_friend_set(¶m, set->friend_set.friend_state);
|
|
|
case ESP_BLE_MESH_MODEL_OP_GATT_PROXY_SET:
|
|
|
- return bt_mesh_cfg_gatt_proxy_set(&ctx, set->gatt_proxy_set.gatt_proxy);
|
|
|
+ return bt_mesh_cfg_gatt_proxy_set(¶m, set->gatt_proxy_set.gatt_proxy);
|
|
|
case ESP_BLE_MESH_MODEL_OP_RELAY_SET:
|
|
|
- return bt_mesh_cfg_relay_set(&ctx, set->relay_set.relay,
|
|
|
+ return bt_mesh_cfg_relay_set(¶m, set->relay_set.relay,
|
|
|
set->relay_set.relay_retransmit);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NET_KEY_ADD:
|
|
|
- return bt_mesh_cfg_net_key_add(&ctx, set->net_key_add.net_idx,
|
|
|
+ return bt_mesh_cfg_net_key_add(¶m, set->net_key_add.net_idx,
|
|
|
&set->net_key_add.net_key[0]);
|
|
|
case ESP_BLE_MESH_MODEL_OP_APP_KEY_ADD:
|
|
|
- return bt_mesh_cfg_app_key_add(&ctx, set->app_key_add.net_idx,
|
|
|
+ return bt_mesh_cfg_app_key_add(¶m, set->app_key_add.net_idx,
|
|
|
set->app_key_add.app_idx,
|
|
|
&set->app_key_add.app_key[0]);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_APP_BIND:
|
|
|
- return bt_mesh_cfg_mod_app_bind(&ctx, set->model_app_bind.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_app_bind(¶m, set->model_app_bind.element_addr,
|
|
|
set->model_app_bind.model_app_idx,
|
|
|
set->model_app_bind.model_id,
|
|
|
set->model_app_bind.company_id);
|
|
|
@@ -529,46 +529,46 @@ static int btc_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param
|
|
|
.period = set->model_pub_set.publish_period,
|
|
|
.transmit = set->model_pub_set.publish_retransmit,
|
|
|
};
|
|
|
- return bt_mesh_cfg_mod_pub_set(&ctx, set->model_pub_set.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_pub_set(¶m, set->model_pub_set.element_addr,
|
|
|
set->model_pub_set.model_id,
|
|
|
set->model_pub_set.company_id, &model_pub);
|
|
|
}
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_ADD:
|
|
|
- return bt_mesh_cfg_mod_sub_add(&ctx, set->model_sub_add.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_add(¶m, set->model_sub_add.element_addr,
|
|
|
set->model_sub_add.sub_addr,
|
|
|
set->model_sub_add.model_id,
|
|
|
set->model_sub_add.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_DELETE:
|
|
|
- return bt_mesh_cfg_mod_sub_del(&ctx, set->model_sub_delete.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_del(¶m, set->model_sub_delete.element_addr,
|
|
|
set->model_sub_delete.sub_addr,
|
|
|
set->model_sub_delete.model_id,
|
|
|
set->model_sub_delete.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_OVERWRITE:
|
|
|
- return bt_mesh_cfg_mod_sub_overwrite(&ctx, set->model_sub_overwrite.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_overwrite(¶m, set->model_sub_overwrite.element_addr,
|
|
|
set->model_sub_overwrite.sub_addr,
|
|
|
set->model_sub_overwrite.model_id,
|
|
|
set->model_sub_overwrite.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_ADD:
|
|
|
- return bt_mesh_cfg_mod_sub_va_add(&ctx, set->model_sub_va_add.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_va_add(¶m, set->model_sub_va_add.element_addr,
|
|
|
&set->model_sub_va_add.label_uuid[0],
|
|
|
set->model_sub_va_add.model_id,
|
|
|
set->model_sub_va_add.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_OVERWRITE:
|
|
|
- return bt_mesh_cfg_mod_sub_va_overwrite(&ctx, set->model_sub_va_overwrite.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_va_overwrite(¶m, set->model_sub_va_overwrite.element_addr,
|
|
|
&set->model_sub_va_overwrite.label_uuid[0],
|
|
|
set->model_sub_va_overwrite.model_id,
|
|
|
set->model_sub_va_overwrite.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_VIRTUAL_ADDR_DELETE:
|
|
|
- return bt_mesh_cfg_mod_sub_va_del(&ctx, set->model_sub_va_delete.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_va_del(¶m, set->model_sub_va_delete.element_addr,
|
|
|
&set->model_sub_va_delete.label_uuid[0],
|
|
|
set->model_sub_va_delete.model_id,
|
|
|
set->model_sub_va_delete.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_HEARTBEAT_SUB_SET:
|
|
|
- return bt_mesh_cfg_hb_sub_set(&ctx, (struct bt_mesh_cfg_hb_sub *)&set->heartbeat_sub_set);
|
|
|
+ return bt_mesh_cfg_hb_sub_set(¶m, (struct bt_mesh_cfg_hb_sub *)&set->heartbeat_sub_set);
|
|
|
case ESP_BLE_MESH_MODEL_OP_HEARTBEAT_PUB_SET:
|
|
|
- return bt_mesh_cfg_hb_pub_set(&ctx, (const struct bt_mesh_cfg_hb_pub *)&set->heartbeat_pub_set);
|
|
|
+ return bt_mesh_cfg_hb_pub_set(¶m, (struct bt_mesh_cfg_hb_pub *)&set->heartbeat_pub_set);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NODE_RESET:
|
|
|
- return bt_mesh_cfg_node_reset(&ctx);
|
|
|
+ return bt_mesh_cfg_node_reset(¶m);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_PUB_VIRTUAL_ADDR_SET: {
|
|
|
struct bt_mesh_cfg_mod_pub model_pub = {
|
|
|
.app_idx = set->model_pub_va_set.publish_app_idx,
|
|
|
@@ -577,42 +577,42 @@ static int btc_ble_mesh_config_client_set_state(esp_ble_mesh_client_common_param
|
|
|
.period = set->model_pub_va_set.publish_period,
|
|
|
.transmit = set->model_pub_va_set.publish_retransmit,
|
|
|
};
|
|
|
- return bt_mesh_cfg_mod_pub_va_set(&ctx, set->model_pub_va_set.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_pub_va_set(¶m, set->model_pub_va_set.element_addr,
|
|
|
set->model_pub_va_set.model_id,
|
|
|
set->model_pub_va_set.company_id,
|
|
|
set->model_pub_va_set.label_uuid, &model_pub);
|
|
|
}
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_SUB_DELETE_ALL:
|
|
|
- return bt_mesh_cfg_mod_sub_del_all(&ctx, set->model_sub_delete_all.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_sub_del_all(¶m, set->model_sub_delete_all.element_addr,
|
|
|
set->model_sub_delete_all.model_id,
|
|
|
set->model_sub_delete_all.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NET_KEY_UPDATE:
|
|
|
- return bt_mesh_cfg_net_key_update(&ctx, set->net_key_update.net_idx,
|
|
|
+ return bt_mesh_cfg_net_key_update(¶m, set->net_key_update.net_idx,
|
|
|
set->net_key_update.net_key);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NET_KEY_DELETE:
|
|
|
- return bt_mesh_cfg_net_key_delete(&ctx, set->net_key_delete.net_idx);
|
|
|
+ return bt_mesh_cfg_net_key_delete(¶m, set->net_key_delete.net_idx);
|
|
|
case ESP_BLE_MESH_MODEL_OP_APP_KEY_UPDATE:
|
|
|
- return bt_mesh_cfg_app_key_update(&ctx, set->app_key_update.net_idx,
|
|
|
+ return bt_mesh_cfg_app_key_update(¶m, set->app_key_update.net_idx,
|
|
|
set->app_key_update.app_idx,
|
|
|
set->app_key_update.app_key);
|
|
|
case ESP_BLE_MESH_MODEL_OP_APP_KEY_DELETE:
|
|
|
- return bt_mesh_cfg_app_key_delete(&ctx, set->app_key_delete.net_idx,
|
|
|
+ return bt_mesh_cfg_app_key_delete(¶m, set->app_key_delete.net_idx,
|
|
|
set->app_key_delete.app_idx);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NODE_IDENTITY_SET:
|
|
|
- return bt_mesh_cfg_node_identity_set(&ctx, set->node_identity_set.net_idx,
|
|
|
+ return bt_mesh_cfg_node_identity_set(¶m, set->node_identity_set.net_idx,
|
|
|
set->node_identity_set.identity);
|
|
|
case ESP_BLE_MESH_MODEL_OP_MODEL_APP_UNBIND:
|
|
|
- return bt_mesh_cfg_mod_app_unbind(&ctx, set->model_app_unbind.element_addr,
|
|
|
+ return bt_mesh_cfg_mod_app_unbind(¶m, set->model_app_unbind.element_addr,
|
|
|
set->model_app_unbind.model_app_idx,
|
|
|
set->model_app_unbind.model_id,
|
|
|
set->model_app_unbind.company_id);
|
|
|
case ESP_BLE_MESH_MODEL_OP_KEY_REFRESH_PHASE_SET:
|
|
|
- return bt_mesh_cfg_kr_phase_set(&ctx, set->kr_phase_set.net_idx,
|
|
|
+ return bt_mesh_cfg_kr_phase_set(¶m, set->kr_phase_set.net_idx,
|
|
|
set->kr_phase_set.transition);
|
|
|
case ESP_BLE_MESH_MODEL_OP_NETWORK_TRANSMIT_SET:
|
|
|
- return bt_mesh_cfg_net_transmit_set(&ctx, set->net_transmit_set.net_transmit);
|
|
|
+ return bt_mesh_cfg_net_transmit_set(¶m, set->net_transmit_set.net_transmit);
|
|
|
default:
|
|
|
- BT_ERR("Invalid Configuration Set opcode 0x%04x", params->opcode);
|
|
|
+ BT_ERR("Invalid Configuration Set opcode 0x%04x", param.opcode);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
@@ -623,7 +623,6 @@ void btc_ble_mesh_config_client_call_handler(btc_msg_t *msg)
|
|
|
{
|
|
|
btc_ble_mesh_config_client_args_t *arg = NULL;
|
|
|
esp_ble_mesh_cfg_client_cb_param_t cb = {0};
|
|
|
- bt_mesh_role_param_t role_param = {0};
|
|
|
|
|
|
if (!msg || !msg->arg) {
|
|
|
BT_ERR("%s, Invalid parameter", __func__);
|
|
|
@@ -635,12 +634,6 @@ void btc_ble_mesh_config_client_call_handler(btc_msg_t *msg)
|
|
|
switch (msg->act) {
|
|
|
case BTC_BLE_MESH_ACT_CONFIG_CLIENT_GET_STATE: {
|
|
|
cb.params = arg->cfg_client_get_state.params;
|
|
|
- role_param.model = (struct bt_mesh_model *)cb.params->model;
|
|
|
- role_param.role = cb.params->msg_role;
|
|
|
- if (bt_mesh_set_client_model_role(&role_param)) {
|
|
|
- BT_ERR("Failed to set model role");
|
|
|
- break;
|
|
|
- }
|
|
|
cb.error_code = btc_ble_mesh_config_client_get_state(arg->cfg_client_get_state.params,
|
|
|
arg->cfg_client_get_state.get_state);
|
|
|
if (cb.error_code) {
|
|
|
@@ -650,12 +643,6 @@ void btc_ble_mesh_config_client_call_handler(btc_msg_t *msg)
|
|
|
}
|
|
|
case BTC_BLE_MESH_ACT_CONFIG_CLIENT_SET_STATE: {
|
|
|
cb.params = arg->cfg_client_set_state.params;
|
|
|
- role_param.model = (struct bt_mesh_model *)cb.params->model;
|
|
|
- role_param.role = cb.params->msg_role;
|
|
|
- if (bt_mesh_set_client_model_role(&role_param)) {
|
|
|
- BT_ERR("Failed to set model role");
|
|
|
- break;
|
|
|
- }
|
|
|
cb.error_code = btc_ble_mesh_config_client_set_state(arg->cfg_client_set_state.params,
|
|
|
arg->cfg_client_set_state.set_state);
|
|
|
if (cb.error_code) {
|
|
|
@@ -727,7 +714,6 @@ void bt_mesh_config_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *mo
|
|
|
const u8_t *val, size_t len)
|
|
|
{
|
|
|
esp_ble_mesh_cfg_server_cb_param_t cb_params = {0};
|
|
|
- size_t length = 0U;
|
|
|
uint8_t act = 0U;
|
|
|
|
|
|
if (!model || !ctx) {
|
|
|
@@ -755,8 +741,7 @@ void bt_mesh_config_server_cb_evt_to_btc(u8_t evt_type, struct bt_mesh_model *mo
|
|
|
cb_params.ctx.send_ttl = ctx->send_ttl;
|
|
|
|
|
|
if (val && len) {
|
|
|
- length = (len <= sizeof(cb_params.value)) ? len : sizeof(cb_params.value);
|
|
|
- memcpy(&cb_params.value, val, length);
|
|
|
+ memcpy(&cb_params.value, val, MIN(len, sizeof(cb_params.value)));
|
|
|
}
|
|
|
|
|
|
btc_ble_mesh_config_server_callback(&cb_params, act);
|