21#define CONTROL_TASK_MSG_EVT_TO_BLE_GEN_SRV_MASK \
22 CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV
38 if(!p_model || !p_pub || !p_srv)
55 void **temp = (
void**) &((
MESHX_MODEL*)p_model)->pub;
66 [ESP_BLE_MESH_GENERIC_SERVER_STATE_CHANGE_EVT] =
"SRV_STATE_CH",
67 [ESP_BLE_MESH_GENERIC_SERVER_RECV_GET_MSG_EVT] =
"SRV_RECV_GET",
68 [ESP_BLE_MESH_GENERIC_SERVER_RECV_SET_MSG_EVT] =
"SRV_RECV_SET"
85 server_state_str[event], param->ctx.recv_op, param->ctx.addr, param->ctx.recv_dst);
87 if (event != ESP_BLE_MESH_GENERIC_SERVER_STATE_CHANGE_EVT)
92 .net_idx = param->ctx.net_idx,
93 .app_idx = param->ctx.app_idx,
94 .dst_addr = param->ctx.recv_dst,
95 .src_addr = param->ctx.addr,
96 .opcode = param->ctx.recv_op,
100 .pub_addr = param->model->pub->publish_addr,
101 .model_id = param->model->model_id,
102 .el_id = param->model->element_idx,
103 .p_model = param->model
106 .onoff_set.onoff = param->value.state_change.onoff_set.onoff
110 if(pub_param.
model.
model_id == ESP_BLE_MESH_MODEL_ID_GEN_ONOFF_SRV)
149 static esp_ble_mesh_msg_ctx_t ctx;
150 const esp_ble_mesh_msg_ctx_t *pctx = (esp_ble_mesh_msg_ctx_t *)p_ctx->
p_ctx;
153 memcpy(&ctx, pctx,
sizeof(esp_ble_mesh_msg_ctx_t));
159 ctx.send_ttl = ESP_BLE_MESH_TTL_DEFAULT;
163 esp_err_t err = esp_ble_mesh_server_model_send_msg(p_model->
p_model,
195 srv->state.onoff = on_off_state;
215 esp_err_t esp_err = esp_ble_mesh_register_generic_server_callback(
218 if(esp_err != ESP_OK)
226 if(!p_model || !p_pub || !p_onoff_srv)
230 uint16_t model_id = ESP_BLE_MESH_MODEL_ID_GEN_ONOFF_SRV;
meshx_err_t meshx_plat_gen_srv_delete(void **p_pub, void **p_srv)
Deletes the Generic OnOff Server model and its associated resources.
meshx_err_t meshx_plat_set_gen_srv_state(void *p_model, uint8_t on_off_state)
Set the state of a generic server model.
meshx_err_t meshx_plat_on_off_gen_srv_create(void *p_model, void **p_pub, void **p_onoff_srv)
Creates a Generic OnOff Server model and its publication context.
static meshx_err_t meshx_plat_gen_srv_create(void *p_model, void **p_pub, void **p_srv)
Creates and initializes the Generic Server model platform resources.
meshx_err_t meshx_plat_gen_srv_init(void)
Initialize the meshxuction generic server.
meshx_err_t meshx_plat_gen_on_off_srv_restore(void *p_model, uint8_t state)
Restores the state of the Generic OnOff Server model.
meshx_err_t meshx_plat_gen_srv_send_status(meshx_model_t *p_model, meshx_ctx_t *p_ctx, meshx_ptr_t p_data, uint32_t data_len)
Send a status message from the Generic Server model.
static void esp_ble_mesh_generic_server_cb(MESHX_GEN_SRV_CB_EVT event, MESHX_GEN_SRV_CB_PARAM *param)
Callback function for BLE Mesh Generic Server events.
static const char * server_state_str[]
String representation of the server state change events.
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.
Header file for Generic Server Models in MeshX BLE Mesh.
struct meshx_gen_srv_cb_param meshx_gen_srv_cb_param_t
Header file for the control task in the BLE mesh node application.
@ 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_LOGE(module_id, format,...)
#define MESHX_LOGD(module_id, format,...)
meshx_gen_srv_state_change_t state_change
meshx_state_change_gen_onoff_set_t onoff_set