16#define MESHX_CLIENT_INIT_MAGIC 0x2378
18#if CONFIG_ENABLE_GEN_ONOFF_CLIENT
20static uint16_t meshx_client_init_flag = 0;
40 meshx_on_off_cli_el_msg_t cli_onoff_param = {
43 .model = param->
model,
51 sizeof(meshx_on_off_cli_el_msg_t));
139meshx_err_t meshx_on_off_client_create(meshx_onoff_client_model_t **p_model,
void *p_sig_model)
141 if (!p_model || !p_sig_model)
146 *p_model = (meshx_onoff_client_model_t *)
MESHX_CALOC(1,
sizeof(meshx_onoff_client_model_t));
154 &((*p_model)->meshx_pub),
155 &((*p_model)->meshx_gen));
170meshx_err_t meshx_on_off_client_delete(meshx_onoff_client_model_t **p_model)
172 if (p_model == NULL || *p_model == NULL)
178 &((*p_model)->meshx_pub),
179 &((*p_model)->meshx_gen)
201meshx_err_t meshx_onoff_client_send_msg(meshx_gen_onoff_send_params_t *params)
205 if (!params || !params->model || !params->model->meshx_sig)
212 .addr = params->addr,
213 .opcode = params->opcode,
214 .app_idx = params->app_idx,
215 .net_idx = params->net_idx,
216 .model = params->model->meshx_sig,
258 const meshx_on_off_cli_el_msg_t *param,
259 meshx_on_off_cli_state_t *p_prev_state,
260 meshx_on_off_cli_state_t *p_next_state
263 if (!p_prev_state || !param || !p_next_state)
265 bool state_change =
false;
269 if (p_prev_state->on_off != param->on_off_state)
271 p_prev_state->on_off = param->on_off_state;
278 p_next_state->on_off = !param->on_off_state;
#define MESHX_MODEL_ID_GEN_ONOFF_CLI
#define MESHX_MODEL_OP_GEN_ONOFF_SET_UNACK
#define MESHX_MODEL_OP_GEN_ONOFF_GET
#define MESHX_MODEL_OP_GEN_ONOFF_SET
struct meshx_gen_cli_cb_param meshx_gen_cli_cb_param_t
Callback parameters for Generic Client Model events. This structure is used to pass information about...
control_task_msg_handle_t meshx_gen_client_cb_t
meshx_err_t meshx_plat_gen_cli_delete(meshx_ptr_t *p_pub, meshx_ptr_t *p_cli)
Deletes the Generic OnOff Client model and its associated resources.
meshx_err_t meshx_plat_on_off_gen_cli_create(meshx_ptr_t p_model, meshx_ptr_t *p_pub, meshx_ptr_t *p_onoff_cli)
Creates a Generic OnOff client model and its publication context.
struct dev_struct dev_struct_t
Structure representing the device composition and elements.
uint32_t control_task_msg_evt_t
Type definition for control task message event.
CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF
@ CONTROL_TASK_MSG_CODE_EL_STATE_CH
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.
static meshx_err_t meshx_handle_gen_onoff_msg(dev_struct_t *pdev, control_task_msg_evt_t model_id, meshx_gen_cli_cb_param_t *param)
Handle the Generic OnOff Client messages.
meshx_err_t meshx_gen_client_from_ble_reg_cb(uint32_t model_id, meshx_gen_client_cb_t cb)
Registers a callback function for a specific generic server model.
struct meshx_gen_client_send_params meshx_gen_client_send_params_t
Generic Client Model send parameters. This structure is used to pass parameters to the Generic Client...
meshx_err_t meshx_gen_cli_send_msg(meshx_gen_client_send_params_t *params)
Sends a Generic Client message over BLE Mesh.
meshx_err_t meshx_gen_client_init(void)
Initialize the meshxuction generic client.
static meshx_err_t meshx_state_change_notify(meshx_lighting_server_cb_param_t *param)
Perform hardware change for the light control server model.
#define MESHX_LOGE(module_id, format,...)
#define MESHX_LOGD(module_id, format,...)
#define MESHX_CLIENT_INIT_MAGIC
Header file for the On/Off client model in BLE mesh.
MeshX Tx Control Module This header file contains the definitions and function prototypes for the Mes...
meshx_gen_client_status_cb_t status
Generic Client Model set message union.
meshx_gen_onoff_set_t onoff_set
meshx_gen_onoff_status_cb_t onoff_status