16#define MESHX_SERVER_INIT_MAGIC_NO 0x2483
18#if CONFIG_ENABLE_LIGHT_CTL_SERVER
46 .ctl_setup_server_init = 0,
47 .meshx_srv_model = NULL,
49 .ctl_lighting_server_init = 0,
50 .ctl_lighting_server_created = 0,
68 .model = param->
model};
125 bool send_reply_to_src =
false;
126 bool state_change_notify =
false;
128 uint32_t status_op = 0;
143 state_change_notify =
true;
146 send_reply_to_src =
true;
154 state_change_notify =
true;
157 send_reply_to_src =
true;
168 send_reply_to_src =
true;
179 send_reply_to_src =
true;
186 if (state_change_notify)
192 if (send_reply_to_src
360 if (!p_model || !p_sig_model)
373 &((*p_model)->meshx_pub),
374 &((*p_model)->meshx_gen));
403 (*p_model)->meshx_sig = p_sig_model;
422 if (p_model == NULL || *p_model == NULL)
428 &((*p_model)->meshx_pub),
429 &((*p_model)->meshx_gen));
490 uint16_t temperature)
499 .delta_uv = delta_uv,
500 .lightness = lightness,
501 .temperature = temperature
545 if (!p_model || !light_srv_send)
meshx_err_t meshx_is_group_subscribed(meshx_model_t *p_model, uint16_t addr)
Checks if a model is subscribed to a specific group address.
struct meshx_model meshx_model_t
struct meshx_ctx meshx_ctx_t
Structure to hold context information for BLE Mesh operations.
#define MESHX_ADDR_IS_GROUP(_addr)
#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_ADDR_IS_UNICAST(_addr)
#define MESHX_ADDR_BROADCAST(_addr)
#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
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_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
struct meshx_light_ctl_srv meshx_light_ctl_srv_t
Structure representing the Light CTL Server model.
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.
struct meshx_lighting_server_cb_param meshx_lighting_server_cb_param_t
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.
struct dev_struct dev_struct_t
Structure representing the device composition and elements.
CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV
uint32_t control_task_msg_evt_t
Type definition for control task message event.
@ CONTROL_TASK_MSG_CODE_EL_STATE_CH
CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL
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_SERVER_INIT_MAGIC_NO
uint16_t ctl_lighting_server_created
uint16_t ctl_lighting_server_init
meshx_err_t meshx_light_ctl_server_create(meshx_ctl_server_model_t **p_model, meshx_ptr_t p_sig_model)
Create and initialize a new CTL server model instance.
meshx_light_ctl_setup_server_t ctl_setup_server
static meshx_err_t meshx_handle_light_ctl_msg(const dev_struct_t *pdev, const control_task_msg_evt_t evt, meshx_lighting_server_cb_param_t *param)
Handle Light CTL messages for the lighting server model.
meshx_err_t meshx_get_ctl_setup_srv_model(meshx_ptr_t p_model)
Retrieves the CTL (Color Temperature Lightness) Setup Server model instance.
meshx_err_t meshx_light_ctl_srv_state_restore(meshx_ctl_server_model_t *p_model, meshx_light_ctl_srv_state_t ctl_state)
Restore the CTL state for the generic server model.
static meshx_err_t meshx_light_ctl_setup_server_delete(void)
Deletes or deinitializes the Light CTL (Color Temperature Lightness) Setup Server instance.
meshx_err_t meshx_light_ctl_srv_status_send(meshx_model_t *p_model, meshx_ctx_t *ctx, int16_t delta_uv, uint16_t lightness, uint16_t temperature)
Send the Light CTL status message.
static meshx_err_t meshx_light_ctl_setup_server_create(void)
Creates and initializes the Light CTL (Color Temperature Lightness) Setup Server.
static meshx_err_t meshx_state_change_notify(meshx_lighting_server_cb_param_t *param)
Perform hardware change for the light control server model.
meshx_err_t meshx_light_ctl_srv_send_pack_create(meshx_ptr_t p_model, uint16_t element_id, uint16_t net_idx, uint16_t app_idx, uint16_t pub_addr, meshx_light_ctl_srv_state_t ctl_state, meshx_lighting_server_cb_param_t *light_srv_send)
Create a Light CTL Server send message packet.
static struct @162134341120176320346270047367114065256252040066 g_meshx_light_ctl_srv
Structure to maintain the initialization and creation state of the MeshX Light CTL Server.
meshx_err_t meshx_light_ctl_server_init(void)
Initialize the Light CTL Server model.
meshx_err_t meshx_light_ctl_server_delete(meshx_ctl_server_model_t **p_model)
Delete the CTL server model instance.
struct meshx_light_ctl_setup_server meshx_light_ctl_setup_server_t
Structure representing the MeshX Light CTL Setup Server.
Header file for the Light CTL Server module.
meshx_model_interface_t meshx_ctl_server_model_t
Structure representing the MeshX CTL (Color Temperature Lightness) server model.
meshx_model_interface_t meshx_ctl_setup_server_model_t
Structure representing the MeshX CTL (Color Temperature Lightness) Setup Server Model.
meshx_err_t meshx_lighting_srv_init(void)
Initialize the production lighting server.
meshx_err_t meshx_gen_light_srv_status_send(meshx_model_t *p_model, meshx_ctx_t *ctx, meshx_lighting_server_state_change_t *state_change)
Sends a status message for the Lighting Server model.
control_task_msg_handle_t meshx_lighting_server_cb
meshx_err_t meshx_lighting_reg_cb(uint32_t model_id, meshx_lighting_server_cb cb)
Register a callback function for the lighting server model.
meshx_err_t meshx_gen_light_srv_send_msg_to_ble(control_task_msg_evt_to_ble_t evt, const meshx_lighting_server_cb_param_t *params)
Sends a message to the BLE subsystem via the control task.
#define MESHX_LOGW(module_id, format,...)
#define MESHX_LOGI(module_id, format,...)
#define MESHX_LOGE(module_id, format,...)
#define MESHX_LOGD(module_id, format,...)
Structure representing the MeshX Light CTL Setup Server.
meshx_ctl_setup_server_model_t * meshx_srv_model
uint16_t ctl_setup_server_init
MESHX_MODEL ctl_setup_srv_model
uint16_t temperature_range_min
uint16_t temperature_range_max
meshx_light_ctl_srv_state_t state
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_set_t ctl_set