20#ifndef __MESHX_BLE_MESH_LIGHT_SRV_H__
21#define __MESHX_BLE_MESH_LIGHT_SRV_H__
520 uint16_t temperature,
521 uint16_t temp_range_max,
522 uint16_t temp_range_min);
543 uint16_t temperature,
544 uint16_t temp_range_max,
545 uint16_t temp_range_min);
562#if CONFIG_ENABLE_LIGHT_SERVER
Common BLE Mesh interface definitions and utility functions.
struct meshx_model meshx_model_t
struct meshx_ctx meshx_ctx_t
Structure to hold context information for BLE Mesh operations.
void * meshx_ptr_t
Definition meshx_ble_mesh_cmn_def.h:636
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.
struct meshx_light_ctl_srv_state meshx_light_ctl_srv_state_t
meshx_err_t meshx_plat_light_lc_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_lc_srv)
Create a Light LC Server instance.
struct meshx_light_ctl_srv meshx_light_ctl_srv_t
Structure representing the Light CTL Server model.
meshx_err_t meshx_get_ctl_setup_srv_model(meshx_ptr_t p_model)
Definition meshx_model_ctl.cpp:684
struct meshx_lighting_server_state meshx_lighting_server_state_t
Lighting Server Model state Used to set/restore the model state values internally.
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.
meshx_err_t meshx_plat_light_hsl_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_hsl_srv)
Create a Light HSL Server instance.
struct meshx_light_server_send_params meshx_light_server_send_params_t
Light Server send parameters. Used by meshXBaseLightServerModel::plat_send_msg to forward state chang...
meshx_err_t meshx_plat_light_srv_restore(meshx_ptr_t p_model, const meshx_lighting_server_state_t *state, uint16_t state_len)
Restore the Light Server model state from persistent storage.
struct meshx_lighting_server_cb_param meshx_lighting_server_cb_param_t
control_task_msg_handle_t meshx_lighting_server_cb
Definition meshx_ble_mesh_light_srv.h:563
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...
meshx_err_t meshx_plat_light_xyl_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_xyl_srv)
Create a Light xyL Server instance.
meshx_err_t meshx_plat_light_lightness_srv_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_lightness_srv)
Create a Light Lightness Server instance.
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_get_ctl_setup_srv_model(meshx_ptr_t p_model)
meshx_err_t meshx_plat_light_srv_init(void)
Initialize the platform-specific Light Server.
Header file for the control task in the BLE mesh node application.
meshx_err_t(* control_task_msg_handle_t)(dev_struct_t *pdev, control_task_msg_evt_t evt, void *params)
Function pointer type for control task message handler.
Definition meshx_control_task.h:188
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:43
uint8_t state
Definition meshx_serial.c:39
Definition meshx_ble_mesh_light_srv.h:337
int16_t target_delta_uv
Definition meshx_ble_mesh_light_srv.h:345
int16_t delta_uv_default
Definition meshx_ble_mesh_light_srv.h:353
uint16_t temperature_default
Definition meshx_ble_mesh_light_srv.h:352
uint16_t lightness_default
Definition meshx_ble_mesh_light_srv.h:351
uint8_t status_code
Definition meshx_ble_mesh_light_srv.h:347
uint16_t temperature_range_min
Definition meshx_ble_mesh_light_srv.h:348
int16_t delta_uv
Definition meshx_ble_mesh_light_srv.h:344
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:338
uint16_t temperature_range_max
Definition meshx_ble_mesh_light_srv.h:349
uint16_t target_lightness
Definition meshx_ble_mesh_light_srv.h:339
uint16_t target_temperature
Definition meshx_ble_mesh_light_srv.h:342
uint16_t temperature
Definition meshx_ble_mesh_light_srv.h:341
Structure representing the Light CTL Server model.
Definition meshx_ble_mesh_light_srv.h:362
meshx_light_ctl_srv_state_t state
Definition meshx_ble_mesh_light_srv.h:364
meshx_model_t model
Definition meshx_ble_mesh_light_srv.h:363
Definition meshx_ble_mesh_light_srv.h:227
uint16_t temperature
Definition meshx_ble_mesh_light_srv.h:231
uint16_t target_temperature
Definition meshx_ble_mesh_light_srv.h:232
uint16_t temperature_range_max
Definition meshx_ble_mesh_light_srv.h:239
uint8_t status_code
Definition meshx_ble_mesh_light_srv.h:237
int16_t delta_uv
Definition meshx_ble_mesh_light_srv.h:234
uint16_t temperature_default
Definition meshx_ble_mesh_light_srv.h:242
uint16_t lightness_default
Definition meshx_ble_mesh_light_srv.h:241
uint16_t target_lightness
Definition meshx_ble_mesh_light_srv.h:229
int16_t delta_uv_default
Definition meshx_ble_mesh_light_srv.h:243
int16_t target_delta_uv
Definition meshx_ble_mesh_light_srv.h:235
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:228
uint16_t temperature_range_min
Definition meshx_ble_mesh_light_srv.h:238
Definition meshx_ble_mesh_light_srv.h:246
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:247
uint16_t hue
Definition meshx_ble_mesh_light_srv.h:250
uint16_t lightness_default
Definition meshx_ble_mesh_light_srv.h:256
uint16_t hue_range_max
Definition meshx_ble_mesh_light_srv.h:262
uint16_t saturation_default
Definition meshx_ble_mesh_light_srv.h:258
uint16_t target_lightness
Definition meshx_ble_mesh_light_srv.h:248
uint16_t target_hue
Definition meshx_ble_mesh_light_srv.h:251
uint16_t hue_default
Definition meshx_ble_mesh_light_srv.h:257
uint8_t status_code
Definition meshx_ble_mesh_light_srv.h:260
uint16_t saturation_range_max
Definition meshx_ble_mesh_light_srv.h:264
uint16_t target_saturation
Definition meshx_ble_mesh_light_srv.h:254
uint16_t saturation_range_min
Definition meshx_ble_mesh_light_srv.h:263
uint16_t hue_range_min
Definition meshx_ble_mesh_light_srv.h:261
uint16_t saturation
Definition meshx_ble_mesh_light_srv.h:253
Definition meshx_ble_mesh_light_srv.h:288
uint32_t occupancy_mode
Definition meshx_ble_mesh_light_srv.h:296
uint32_t ambient_luxlevel
Definition meshx_ble_mesh_light_srv.h:300
uint32_t light_onoff
Definition meshx_ble_mesh_light_srv.h:297
uint32_t mode
Definition meshx_ble_mesh_light_srv.h:295
uint32_t target_light_onoff
Definition meshx_ble_mesh_light_srv.h:298
uint16_t linear_output
Definition meshx_ble_mesh_light_srv.h:312
uint32_t occupancy
Definition meshx_ble_mesh_light_srv.h:299
Definition meshx_ble_mesh_light_srv.h:212
uint16_t target_lightness_actual
Definition meshx_ble_mesh_light_srv.h:217
uint16_t lightness_last
Definition meshx_ble_mesh_light_srv.h:219
uint16_t lightness_linear
Definition meshx_ble_mesh_light_srv.h:213
uint16_t target_lightness_linear
Definition meshx_ble_mesh_light_srv.h:214
uint16_t lightness_default
Definition meshx_ble_mesh_light_srv.h:220
uint16_t lightness_actual
Definition meshx_ble_mesh_light_srv.h:216
uint8_t status_code
Definition meshx_ble_mesh_light_srv.h:222
uint16_t lightness_range_max
Definition meshx_ble_mesh_light_srv.h:224
uint16_t lightness_range_min
Definition meshx_ble_mesh_light_srv.h:223
Light Server send parameters. Used by meshXBaseLightServerModel::plat_send_msg to forward state chang...
Definition meshx_ble_mesh_light_srv.h:570
meshx_lighting_server_state_change_t * state_change
Definition meshx_ble_mesh_light_srv.h:573
meshx_model_t * p_model
Definition meshx_ble_mesh_light_srv.h:571
meshx_ctx_t * p_ctx
Definition meshx_ble_mesh_light_srv.h:572
Definition meshx_ble_mesh_light_srv.h:267
uint16_t x_range_min
Definition meshx_ble_mesh_light_srv.h:282
uint16_t x_default
Definition meshx_ble_mesh_light_srv.h:278
uint16_t target_lightness
Definition meshx_ble_mesh_light_srv.h:269
uint16_t lightness_default
Definition meshx_ble_mesh_light_srv.h:277
uint16_t y_range_min
Definition meshx_ble_mesh_light_srv.h:284
uint8_t status_code
Definition meshx_ble_mesh_light_srv.h:281
uint16_t x
Definition meshx_ble_mesh_light_srv.h:271
uint16_t y
Definition meshx_ble_mesh_light_srv.h:274
uint16_t target_x
Definition meshx_ble_mesh_light_srv.h:272
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:268
uint16_t x_range_max
Definition meshx_ble_mesh_light_srv.h:283
uint16_t y_default
Definition meshx_ble_mesh_light_srv.h:279
uint16_t y_range_max
Definition meshx_ble_mesh_light_srv.h:285
uint16_t target_y
Definition meshx_ble_mesh_light_srv.h:275
Definition meshx_ble_mesh_light_srv.h:330
meshx_ctx_t ctx
Definition meshx_ble_mesh_light_srv.h:331
meshx_model_t model
Definition meshx_ble_mesh_light_srv.h:332
meshx_lighting_server_state_change_t state_change
Definition meshx_ble_mesh_light_srv.h:333
Lighting Server Model state Used to set/restore the model state values internally.
Definition meshx_ble_mesh_light_srv.h:320
meshx_light_ctl_state_t ctl
Definition meshx_ble_mesh_light_srv.h:322
meshx_light_lightness_state_t lightness
Definition meshx_ble_mesh_light_srv.h:321
meshx_light_lc_state_t lc
Definition meshx_ble_mesh_light_srv.h:325
meshx_light_xyl_state_t xyl
Definition meshx_ble_mesh_light_srv.h:324
meshx_light_hsl_state_t hsl
Definition meshx_ble_mesh_light_srv.h:323
Definition meshx_ble_mesh_light_srv.h:75
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:76
uint16_t temperature
Definition meshx_ble_mesh_light_srv.h:77
int16_t delta_uv
Definition meshx_ble_mesh_light_srv.h:78
Definition meshx_ble_mesh_light_srv.h:53
int16_t delta_uv
Definition meshx_ble_mesh_light_srv.h:56
uint16_t temperature
Definition meshx_ble_mesh_light_srv.h:55
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:54
Definition meshx_ble_mesh_light_srv.h:68
uint16_t range_max
Definition meshx_ble_mesh_light_srv.h:70
uint16_t range_min
Definition meshx_ble_mesh_light_srv.h:69
Definition meshx_ble_mesh_light_srv.h:61
uint16_t temperature
Definition meshx_ble_mesh_light_srv.h:62
int16_t delta_uv
Definition meshx_ble_mesh_light_srv.h:63
Definition meshx_ble_mesh_light_srv.h:103
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:104
uint16_t saturation
Definition meshx_ble_mesh_light_srv.h:106
uint16_t hue
Definition meshx_ble_mesh_light_srv.h:105
Definition meshx_ble_mesh_light_srv.h:91
uint16_t hue
Definition meshx_ble_mesh_light_srv.h:92
Definition meshx_ble_mesh_light_srv.h:111
uint16_t hue_range_max
Definition meshx_ble_mesh_light_srv.h:113
uint16_t saturation_range_max
Definition meshx_ble_mesh_light_srv.h:115
uint16_t saturation_range_min
Definition meshx_ble_mesh_light_srv.h:114
uint16_t hue_range_min
Definition meshx_ble_mesh_light_srv.h:112
Definition meshx_ble_mesh_light_srv.h:97
uint16_t saturation
Definition meshx_ble_mesh_light_srv.h:98
Definition meshx_ble_mesh_light_srv.h:83
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:84
uint16_t hue
Definition meshx_ble_mesh_light_srv.h:85
uint16_t saturation
Definition meshx_ble_mesh_light_srv.h:86
Definition meshx_ble_mesh_light_srv.h:157
uint8_t onoff
Definition meshx_ble_mesh_light_srv.h:158
Definition meshx_ble_mesh_light_srv.h:145
uint8_t mode
Definition meshx_ble_mesh_light_srv.h:146
Definition meshx_ble_mesh_light_srv.h:151
uint8_t mode
Definition meshx_ble_mesh_light_srv.h:152
Definition meshx_ble_mesh_light_srv.h:163
struct net_buf_simple * property_value
Definition meshx_ble_mesh_light_srv.h:165
uint16_t property_id
Definition meshx_ble_mesh_light_srv.h:164
Definition meshx_ble_mesh_light_srv.h:40
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:41
Definition meshx_ble_mesh_light_srv.h:34
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:35
Definition meshx_ble_mesh_light_srv.h:46
uint16_t range_max
Definition meshx_ble_mesh_light_srv.h:48
uint16_t range_min
Definition meshx_ble_mesh_light_srv.h:47
Definition meshx_ble_mesh_light_srv.h:28
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:29
Definition meshx_ble_mesh_light_srv.h:128
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:129
uint16_t y
Definition meshx_ble_mesh_light_srv.h:131
uint16_t x
Definition meshx_ble_mesh_light_srv.h:130
Definition meshx_ble_mesh_light_srv.h:136
uint16_t x_range_min
Definition meshx_ble_mesh_light_srv.h:137
uint16_t y_range_min
Definition meshx_ble_mesh_light_srv.h:139
uint16_t y_range_max
Definition meshx_ble_mesh_light_srv.h:140
uint16_t x_range_max
Definition meshx_ble_mesh_light_srv.h:138
Definition meshx_ble_mesh_light_srv.h:120
uint16_t x
Definition meshx_ble_mesh_light_srv.h:122
uint16_t y
Definition meshx_ble_mesh_light_srv.h:123
uint16_t lightness
Definition meshx_ble_mesh_light_srv.h:121
Definition meshx_ble_mesh_light_srv.h:170
uint32_t ambient_luxlevel
Definition meshx_ble_mesh_light_srv.h:177
uint8_t occupancy
Definition meshx_ble_mesh_light_srv.h:175
uint32_t set_occupancy_to_1_delay
Definition meshx_ble_mesh_light_srv.h:176
uint16_t property_id
Definition meshx_ble_mesh_light_srv.h:171
Lighting Server Model state change value union.
Definition meshx_ble_mesh_light_srv.h:185
meshx_state_change_light_hsl_range_set_t hsl_range_set
Definition meshx_ble_mesh_light_srv.h:201
meshx_state_change_light_lc_property_set_t lc_property_set
Definition meshx_ble_mesh_light_srv.h:208
meshx_state_change_light_ctl_temperature_set_t ctl_temp_set
Definition meshx_ble_mesh_light_srv.h:194
meshx_state_change_light_xyl_default_set_t xyl_default_set
Definition meshx_ble_mesh_light_srv.h:203
meshx_state_change_light_ctl_default_set_t ctl_default_set
Definition meshx_ble_mesh_light_srv.h:196
meshx_state_change_light_lightness_linear_set_t lightness_linear_set
Definition meshx_ble_mesh_light_srv.h:190
meshx_state_change_light_hsl_hue_set_t hsl_hue_set
Definition meshx_ble_mesh_light_srv.h:198
meshx_state_change_light_lightness_default_set_t lightness_default_set
Definition meshx_ble_mesh_light_srv.h:191
meshx_state_change_light_lc_mode_set_t lc_mode_set
Definition meshx_ble_mesh_light_srv.h:205
meshx_state_change_light_lc_light_onoff_set_t lc_light_onoff_set
Definition meshx_ble_mesh_light_srv.h:207
meshx_state_change_light_lightness_set_t lightness_set
Definition meshx_ble_mesh_light_srv.h:189
meshx_state_change_light_xyl_set_t xyl_set
Definition meshx_ble_mesh_light_srv.h:202
meshx_state_change_light_hsl_default_set_t hsl_default_set
Definition meshx_ble_mesh_light_srv.h:200
meshx_state_change_light_xyl_range_set_t xyl_range_set
Definition meshx_ble_mesh_light_srv.h:204
meshx_state_change_sensor_status_t sensor_status
Definition meshx_ble_mesh_light_srv.h:209
meshx_state_change_light_hsl_saturation_set_t hsl_saturation_set
Definition meshx_ble_mesh_light_srv.h:199
meshx_state_change_light_lc_om_set_t lc_om_set
Definition meshx_ble_mesh_light_srv.h:206
meshx_state_change_light_ctl_temperature_range_set_t ctl_temp_range_set
Definition meshx_ble_mesh_light_srv.h:195
meshx_state_change_light_lightness_range_set_t lightness_range_set
Definition meshx_ble_mesh_light_srv.h:192
meshx_state_change_light_hsl_set_t hsl_set
Definition meshx_ble_mesh_light_srv.h:197
meshx_state_change_light_ctl_set_t ctl_set
Definition meshx_ble_mesh_light_srv.h:193