68 const void *msg_evt_params,
69 size_t sizeof_msg_evt_params)
77#if CONFIG_MESHX_DEFAULT_LOG_LEVEL <= MESHX_LOG_DEBUG
78 void *caller_addr0 = __builtin_return_address(0);
82 if (sizeof_msg_evt_params != 0)
88 memcpy(send_msg.
msg_evt_params, msg_evt_params, sizeof_msg_evt_params);
131 if (err || !new_node)
134 new_node->
cb = callback;
202 bool evt_handled =
false;
214 if (((evt == 0x00) || (evt & ptr->
msg_evt_bmap)) && (ptr->
cb != NULL))
216 ptr->
cb(pdev, evt, params);
struct dev_struct dev_struct_t
Structure representing the device composition and elements.
static meshx_msg_q_t control_task_queue
Queue handle for control task messages.
static meshx_err_t control_task_msg_dispatch(dev_struct_t *pdev, control_task_msg_code_t msg_code, control_task_msg_evt_t evt, void *params)
Dispatch a message to the registered callbacks.
meshx_err_t create_control_task(dev_struct_t *pdev)
Create the control task.
meshx_err_t control_task_msg_unsubscribe(control_task_msg_code_t msg_code, control_task_msg_evt_t evt_bmap, control_task_msg_handle_t callback)
Deregister a callback for a specific message code and event bitmap.
static control_task_evt_cb_reg_t * control_task_msg_code_list_heads[CONTROL_TASK_MSG_CODE_MAX]
Linked list heads for registered callbacks per message code.
static void control_task_handler(void *args)
Task handler function for processing control task messages.
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 control_task_msg_subscribe(control_task_msg_code_t msg_code, control_task_msg_evt_t evt_bmap, control_task_msg_handle_t callback)
Subscribe to a control task message.
static meshx_err_t create_control_task_msg_q(void)
Create the control task message queue.
Header file for the control task in the BLE mesh node application.
enum control_task_msg_code control_task_msg_code_t
Enumeration for control task message codes.
uint32_t control_task_msg_evt_t
Type definition for control task message event.
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.
struct control_task_evt_cb_reg control_task_evt_cb_reg_t
Structure for control task event callback registration.
@ CONTROL_TASK_MSG_CODE_MAX
struct control_task_msg control_task_msg_t
Structure for control task message.
#define CONFIG_CONTROL_TASK_NAME
Control task name configuration.
#define CONFIG_CONTROL_TASK_STACK_SIZE
Control task stack size configuration.
#define CONFIG_CONTROL_TASK_PRIO
Control task priority configuration.
#define CONFIG_CONTROL_TASK_QUEUE_LEN
Control task queue length configuration.
meshx_err_t
MeshX Error Codes.
#define MESHX_LOGW(module_id, format,...)
#define MESHX_LOGI(module_id, format,...)
#define MESHX_LOGE(module_id, format,...)
#define MESHX_LOGD(module_id, format,...)
meshx_err_t meshx_msg_q_create(meshx_msg_q_t *msg_q_handle)
Create a MeshX Message Queue.
struct meshx_msg_q meshx_msg_q_t
MeshX Message Queue Structure.
meshx_err_t meshx_msg_q_send(meshx_msg_q_t *msg_q_handle, void const *msg, size_t msg_len, uint32_t delay_ms)
Send a Message to a MeshX Message Queue Back.
meshx_err_t meshx_msg_q_recv(meshx_msg_q_t *msg_q_handle, void *msg, uint32_t delay_ms)
Receive a Message from a MeshX Message Queue.
meshx_err_t meshx_rtos_free(void **ptr)
Frees memory allocated to a pointer and sets it to NULL.
meshx_err_t meshx_rtos_malloc(void **ptr, size_t size)
Allocates memory dynamically in a thread-safe manner using FreeRTOS.
struct meshx_task meshx_task_t
MeshX Task Structure.
meshx_err_t meshx_task_create(meshx_task_t *task_handle)
Create a MeshX Task.
control_task_msg_handle_t cb
struct control_task_evt_cb_reg * next
control_task_msg_evt_t msg_evt
control_task_msg_code_t msg_code