77 event, (
unsigned)param->ctx.recv_op, param->ctx.addr, param->ctx.recv_dst,
78 param->model->model_id);
80 if(event != ESP_BLE_MESH_LIGHTING_SERVER_STATE_CHANGE_EVT)
86 bool publish_flag =
false;
87 uint32_t op_code = param->ctx.recv_op;
90 .net_idx = param->ctx.net_idx,
91 .app_idx = param->ctx.app_idx,
92 .dst_addr = param->ctx.recv_dst,
93 .src_addr = param->ctx.addr,
94 .opcode = param->ctx.recv_op,
98 .el_id = param->model->element_idx,
99 .pub_addr = param->model->pub->publish_addr,
100 .model_id = param->model->model_id,
101 .p_model = param->model
113 srv->state->temperature = param->value.state_change.ctl_set.temperature;
114 srv->state->lightness = param->value.state_change.ctl_set.lightness;
115 srv->state->delta_uv = param->value.state_change.ctl_set.delta_uv;
117 srv->state->lightness,
118 srv->state->temperature,
119 srv->state->delta_uv);
133 srv->state->temperature = param->value.state_change.ctl_temp_set.temperature;
134 srv->state->delta_uv = param->value.state_change.ctl_temp_set.delta_uv;
136 srv->state->temperature,
137 srv->state->delta_uv);
152 param->value.state_change.ctl_default_set.lightness,
153 param->value.state_change.ctl_default_set.temperature,
154 param->value.state_change.ctl_default_set.delta_uv);
155 srv->state->temperature_default = param->value.state_change.ctl_default_set.temperature;
156 srv->state->lightness_default = param->value.state_change.ctl_default_set.lightness;
157 srv->state->delta_uv_default = param->value.state_change.ctl_default_set.delta_uv;
172 param->value.state_change.ctl_temp_range_set.range_min,
173 param->value.state_change.ctl_temp_range_set.range_max);
174 srv->state->temperature_range_min = param->value.state_change.ctl_temp_range_set.range_min;
175 srv->state->temperature_range_max = param->value.state_change.ctl_temp_range_set.range_max;
199 if (!p_model || !p_ctx || !state_change)
204 static esp_ble_mesh_msg_ctx_t ctx;
205 const esp_ble_mesh_msg_ctx_t *pctx = (esp_ble_mesh_msg_ctx_t *)p_ctx->
p_ctx;
208 memcpy(&ctx, pctx,
sizeof(esp_ble_mesh_msg_ctx_t));
211 uint8_t ctl_status_pack_len = 0;
218 ctl_status_pack_len =
sizeof(ctl_status_union.
ctl_status);
229 ctl_status_pack_len =
sizeof(ctl_status_union.
ctl_default);
244 ctx.send_ttl = ESP_BLE_MESH_TTL_DEFAULT;
248 esp_err_t esp_err = esp_ble_mesh_server_model_send_msg(p_model->
p_model,
252 (uint8_t *)&ctl_status_union);
268 esp_err_t esp_err = esp_ble_mesh_register_lighting_server_callback(
271 if (esp_err != ESP_OK)
295 if (!p_model || !p_pub || !p_ctl_srv)
335 if (!p_model || !p_pub || !p_ctl_srv)
380 uint16_t temperature,
381 uint16_t temp_range_max,
382 uint16_t temp_range_min
390 srv->state->delta_uv = delta_uv;
391 srv->state->lightness = lightness;
392 srv->state->temperature = temperature;
393 srv->state->temperature_range_min = temp_range_min;
394 srv->state->temperature_range_max = temp_range_max;
401 uint16_t temperature,
402 uint16_t temp_range_max,
403 uint16_t temp_range_min)
meshx_err_t meshx_plat_light_ctl_setup_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_ctl_srv)
Creates and initializes a Light CTL (Color Temperature Lightness) Setup Server model instance.
meshx_err_t meshx_plat_set_light_ctl_srv_state(meshx_ptr_t p_model, uint16_t delta_uv, uint16_t lightness, uint16_t temperature, uint16_t temp_range_max, uint16_t temp_range_min)
Set the state of the Light CTL Server.
meshx_err_t meshx_plat_light_srv_delete(meshx_ptr_t *p_pub, meshx_ptr_t *p_ctl_srv)
Delete a Light CTL Server instance.
static void meshx_ble_lightness_server_cb(MESHX_LIGHT_SRV_CB_EVT event, MESHX_LIGHT_SRV_CB_PARAM *param)
Callback function for BLE Mesh Lightness Server events.
meshx_err_t meshx_plat_light_ctl_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_ctl_srv)
Create a Light CTL Server instance.
static const MESHX_MODEL light_ctl_setup_sig_template
Template for CTL Setup Srv SIG model initialization.
static const MESHX_MODEL light_ctl_sig_template
Template for CTL Setup Srv SIG model initialization.
meshx_err_t meshx_plat_gen_light_srv_send_status(const meshx_model_t *p_model, const meshx_ctx_t *p_ctx, const meshx_lighting_server_state_change_t *state_change)
Send a status message from the Light Server. This function constructs and sends a status message cont...
union meshx_plat_ctl_status meshx_plat_ctl_status_t
Light CTL status packet.
meshx_err_t meshx_plat_light_ctl_srv_restore(meshx_ptr_t p_model, uint16_t delta_uv, uint16_t lightness, uint16_t temperature, uint16_t temp_range_max, uint16_t temp_range_min)
Restore the state of the Light CTL Server.
meshx_err_t meshx_plat_light_srv_init(void)
Initialize the platform-specific Light Server.
meshx_err_t meshx_plat_del_model_pub(meshx_ptr_t *p_pub)
Deletes the model and publication objects.
meshx_err_t meshx_plat_create_model_pub(meshx_ptr_t *p_pub, uint16_t nmax)
Creates and initializes model and publication structures.
struct meshx_model meshx_model_t
struct meshx_ctx meshx_ctx_t
Structure to hold context information for BLE Mesh operations.
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_RANGE_STATUS
#define MESHX_MODEL_OP_LIGHT_CTL_SET
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_GET
#define MESHX_MODEL_OP_LIGHT_CTL_STATUS
#define MESHX_MODEL_ID_LIGHT_CTL_SETUP_SRV
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_SET_UNACK
#define MESHX_MODEL_OP_LIGHT_CTL_DEFAULT_GET
#define MESHX_MODEL_ID_LIGHT_CTL_SRV
#define MESHX_MODEL_OP_LIGHT_CTL_DEFAULT_SET_UNACK
#define MESHX_MODEL_OP_LIGHT_CTL_DEFAULT_STATUS
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_STATUS
#define MESHX_MODEL_OP_LIGHT_CTL_DEFAULT_SET
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_RANGE_SET_UNACK
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_SET
#define MESHX_MODEL_OP_LIGHT_CTL_SET_UNACK
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_RANGE_GET
#define MESHX_MODEL_OP_LIGHT_CTL_GET
#define MESHX_MODEL_OP_LIGHT_CTL_TEMPERATURE_RANGE_SET
Header file for Generic Server Models in MeshX BLE Mesh.
Header file for the MeshX BLE Mesh Light Server module. This file defines the data structures,...
struct meshx_lighting_server_cb_param meshx_lighting_server_cb_param_t
@ CONTROL_TASK_MSG_CODE_FRM_BLE
meshx_err_t control_task_msg_publish(control_task_msg_code_t msg_code, control_task_msg_evt_t msg_evt, const void *msg_evt_params, size_t sizeof_msg_evt_params)
Publish a control task message.
meshx_err_t
MeshX Error Codes.
#define MESHX_LOGI(module_id, format,...)
#define MESHX_LOGE(module_id, format,...)
#define MESHX_LOGD(module_id, format,...)
meshx_lighting_server_state_change_t state_change
Lighting Server Model state change value union.
meshx_state_change_light_ctl_temperature_set_t ctl_temp_set
meshx_state_change_light_ctl_default_set_t ctl_default_set
meshx_state_change_light_ctl_temperature_range_set_t ctl_temp_range_set
meshx_state_change_light_ctl_set_t ctl_set
struct meshx_plat_ctl_status::@245236127353215275375207066165060111051263370136 ctl_default
struct meshx_plat_ctl_status::@056332017355315015251101121062125272154151302377 ctl_temp_status
struct meshx_plat_ctl_status::@113331121155070315153135031056271051132165372174 ctl_temp_range
struct meshx_plat_ctl_status::@120032367014025213103020351221177247351027370012 ctl_status