MeshX 0.4
This repository provides an implementation for Bluetooth Low Energy (BLE) Mesh network nodes. The project allows you to create BLE mesh nodes that can communicate with each other, enabling the development of smart home solutions or other IoT-based applications.
Loading...
Searching...
No Matches
meshx_control_task.h File Reference

Header file for the control task in the BLE mesh node application. More...

#include "stdio.h"
#include "string.h"
#include "meshx_common.h"
#include "interface/rtos/meshx_task.h"
#include "interface/rtos/meshx_msg_q.h"
#include "interface/rtos/meshx_rtos_utils.h"

Go to the source code of this file.

Data Structures

struct  control_task_msg
 Structure for control task message. More...
struct  control_task_evt_cb_reg
 Structure for control task event callback registration. More...

Macros

#define CONFIG_CONTROL_TASK_NAME   "meshx_control_task"
 Control task name configuration.
#define CONFIG_CONTROL_TASK_PRIO   configTIMER_TASK_PRIORITY + 2
 Control task priority configuration.
#define CONFIG_MESHX_LOG_TASK_PRIO   configTIMER_TASK_PRIORITY + 1
 Logging task priority configuration.
#define CONFIG_CONTROL_TASK_STACK_SIZE   8192
 Control task stack size configuration.
#define CONFIG_CONTROL_TASK_QUEUE_LEN   10
 Control task queue length configuration.

Typedefs

typedef enum control_task_msg_code control_task_msg_code_t
 Enumeration for control task message codes.
typedef uint32_t control_task_msg_evt_t
 Type definition for control task message event.
typedef enum __packed control_task_msg_evt_to_app_meshx control_task_msg_evt_to_app_meshx_t
 Enumeration for control task message events to application.
typedef enum __packed control_task_msg_evt_el_state_ch control_task_msg_evt_el_state_ch_t
 Enumeration for control task message events to HAL.
typedef enum __packed control_task_msg_evt_to_ble control_task_msg_evt_to_ble_t
 Enumeration for control task message events to BLE.
typedef enum __packed control_task_msg_evt_system control_task_msg_evt_system_t
 Enumeration for control task system events.
typedef enum __packed control_task_msg_evt_config control_task_msg_evt_config_t
 Enumeration for control task config srv events.
typedef enum __packed control_task_msg_evt_provision control_task_msg_evt_provision_t
 Enumeration for control task provisioning events.
typedef enum __packed control_task_msg_evt_txcm control_task_msg_evt_txcm_t
 Enumeration for control task TXCM events.
typedef 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.
typedef struct control_task_msg control_task_msg_t
 Structure for control task message.
typedef struct control_task_evt_cb_reg control_task_evt_cb_reg_t
 Structure for control task event callback registration.

Enumerations

enum  control_task_msg_code {
  CONTROL_TASK_MSG_CODE_EL_STATE_CH ,
  CONTROL_TASK_MSG_CODE_SYSTEM ,
  CONTROL_TASK_MSG_CODE_TO_BLE ,
  CONTROL_TASK_MSG_CODE_FRM_BLE ,
  CONTROL_TASK_MSG_CODE_CONFIG ,
  CONTROL_TASK_MSG_CODE_PROVISION ,
  CONTROL_TASK_MSG_CODE_PROV_PLAT ,
  CONTROL_TASK_MSG_CODE_TO_APP ,
  CONTROL_TASK_MSG_CODE_TO_MESHX ,
  CONTROL_TASK_MSG_CODE_TXCM ,
  CONTROL_TASK_MSG_CODE_MAX
}
 Enumeration for control task message codes. More...

Functions

meshx_err_t control_task_init (void)
 Initialize the control task messaging system.
meshx_err_t create_control_task (dev_struct_t *pdev)
 Create the control task.
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.
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.
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.

Variables

enum __packed control_task_msg_evt_to_app_meshx
 Enumeration for control task message events to application.
 CONTROL_TASK_MSG_EVT_DATA = (1UL << (0))
 CONTROL_TASK_MSG_EVT_CTRL = (1UL << (1))
 CONTROL_TASK_MSG_EVT_MAX
enum __packed control_task_msg_evt_el_state_ch
 Enumeration for control task message events to HAL.
 CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF = (1UL << (0))
 CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL = (1UL << (1))
 CONTROL_TASK_MSG_EVT_EL_STATE_CH_MAX
enum __packed control_task_msg_evt_to_ble
 Enumeration for control task message events to BLE.
 CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF = (1UL << (0))
 CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL = (1UL << (1))
 CONTROL_TASK_MSG_EVT_TO_BLE_SET_LIGHTNESS = (1UL << (2))
 CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV = (1UL << (16))
 CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV = (1UL << (17))
 CONTROL_TASK_MSG_EVT_TO_BLE_SENSOR_SRV = (1UL << (18))
enum __packed control_task_msg_evt_system
 Enumeration for control task system events.
 CONTROL_TASK_MSG_EVT_SYSTEM_RESTART = (1UL << (0))
 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_ARM = (1UL << (1))
 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_REARM = (1UL << (2))
 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_DISARM = (1UL << (3))
 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_FIRE = (1UL << (4))
 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_PERIOD = (1UL << (5))
 CONTROL_TASK_MSG_EVT_SYSTEM_NVS_COMMIT = (1UL << (6))
 CONTROL_TASK_MSG_EVT_SYSTEM_MAX
enum __packed control_task_msg_evt_config
 Enumeration for control task config srv events.
 CONTROL_TASK_MSG_EVT_APP_KEY_ADD = (1UL << (0))
 CONTROL_TASK_MSG_EVT_APP_KEY_DEL = (1UL << (1))
 CONTROL_TASK_MSG_EVT_APP_KEY_BIND = (1UL << (2))
 CONTROL_TASK_MSG_EVT_APP_KEY_UNBIND = (1UL << (3))
 CONTROL_TASK_MSG_EVT_SUB_ADD = (1UL << (4))
 CONTROL_TASK_MSG_EVT_SUB_DEL = (1UL << (5))
 CONTROL_TASK_MSG_EVT_PUB_ADD = (1UL << (6))
 CONTROL_TASK_MSG_EVT_PUB_DEL = (1UL << (7))
 CONTROL_TASK_MSG_EVT_NET_KEY_ADD = (1UL << (8))
 CONTROL_TASK_MSG_EVT_NET_KEY_DEL = (1UL << (9))
 CONTROL_TASK_MSG_EVT_CONFIG_ALL = 0xFF
enum __packed control_task_msg_evt_provision
 Enumeration for control task provisioning events.
 CONTROL_TASK_MSG_EVT_PROV_REG_COMP = (1UL << (0))
 CONTROL_TASK_MSG_EVT_SET_NAME_COMP = (1UL << (1))
 CONTROL_TASK_MSG_EVT_PROVISION_STOP = (1UL << (2))
 CONTROL_TASK_MSG_EVT_IDENTIFY_START = (1UL << (3))
 CONTROL_TASK_MSG_EVT_IDENTIFY_STOP = (1UL << (4))
 CONTROL_TASK_MSG_EVT_NODE_RESET = (1UL << (5))
 CONTROL_TASK_MSG_EVT_PROXY_CONNECT = (1UL << (6))
 CONTROL_TASK_MSG_EVT_PROXY_DISCONN = (1UL << (7))
 CONTROL_TASK_MSG_EVT_EN_NODE_PROV = (1UL << (8))
 CONTROL_TASK_MSG_EVT_SYSTEM_FRESH_BOOT = (1UL << (9))
 CONTROL_TASK_MSG_EVT_SYSTEM_STACK_READY = (1UL << (10))
 CONTROL_TASK_MSG_EVT_PROVISION_ALL = 0xFFFF
enum __packed control_task_msg_evt_txcm
 Enumeration for control task TXCM events.
 CONTROL_TASK_MSG_EVT_TXCM_MSG_TIMEOUT = (1UL << (1))

Detailed Description

Header file for the control task in the BLE mesh node application.

Copyright © 2024 - 2025 MeshX

This file contains the definitions and function prototypes for the control task, which handles various control messages and events in the BLE mesh node application.

Author
Pranjal Chanda

Macro Definition Documentation

◆ CONFIG_CONTROL_TASK_NAME

#define CONFIG_CONTROL_TASK_NAME   "meshx_control_task"

Control task name configuration.

◆ CONFIG_CONTROL_TASK_PRIO

#define CONFIG_CONTROL_TASK_PRIO   configTIMER_TASK_PRIORITY + 2

Control task priority configuration.

◆ CONFIG_CONTROL_TASK_QUEUE_LEN

#define CONFIG_CONTROL_TASK_QUEUE_LEN   10

Control task queue length configuration.

◆ CONFIG_CONTROL_TASK_STACK_SIZE

#define CONFIG_CONTROL_TASK_STACK_SIZE   8192

Control task stack size configuration.

◆ CONFIG_MESHX_LOG_TASK_PRIO

#define CONFIG_MESHX_LOG_TASK_PRIO   configTIMER_TASK_PRIORITY + 1

Logging task priority configuration.

Typedef Documentation

◆ control_task_evt_cb_reg_t

Structure for control task event callback registration.

◆ control_task_msg_code_t

Enumeration for control task message codes.

◆ control_task_msg_evt_config_t

Enumeration for control task config srv events.

◆ control_task_msg_evt_el_state_ch_t

Enumeration for control task message events to HAL.

◆ control_task_msg_evt_provision_t

Enumeration for control task provisioning events.

◆ control_task_msg_evt_system_t

Enumeration for control task system events.

◆ control_task_msg_evt_t

typedef uint32_t control_task_msg_evt_t

Type definition for control task message event.

◆ control_task_msg_evt_to_app_meshx_t

Enumeration for control task message events to application.

◆ control_task_msg_evt_to_ble_t

Enumeration for control task message events to BLE.

◆ control_task_msg_evt_txcm_t

Enumeration for control task TXCM events.

◆ control_task_msg_handle_t

typedef 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.

Parameters
pdevPointer to the device structure.
evtEvent code.
paramsPointer to the event parameters.
Returns
MESHX_SUCCESS on success, or an error code on failure.

◆ control_task_msg_t

Structure for control task message.

Enumeration Type Documentation

◆ control_task_msg_code

Enumeration for control task message codes.

Enumerator
CONTROL_TASK_MSG_CODE_EL_STATE_CH 

Message code for Element state change

CONTROL_TASK_MSG_CODE_SYSTEM 

Message code for system events.

CONTROL_TASK_MSG_CODE_TO_BLE 

Message code to BLE layer.

CONTROL_TASK_MSG_CODE_FRM_BLE 

Message code from BLE layer.

CONTROL_TASK_MSG_CODE_CONFIG 

Message code for Config Server events

CONTROL_TASK_MSG_CODE_PROVISION 

Message code for provisioning events.

CONTROL_TASK_MSG_CODE_PROV_PLAT 

Internal message code for platform provisioning events.

CONTROL_TASK_MSG_CODE_TO_APP 

Message code for application events.

CONTROL_TASK_MSG_CODE_TO_MESHX 

Message code for meshX events from app

CONTROL_TASK_MSG_CODE_TXCM 

Message code for TXCM events

CONTROL_TASK_MSG_CODE_MAX 

Maximum message code value.

64{
65 CONTROL_TASK_MSG_CODE_EL_STATE_CH, /**< Message code for Element state change */
66 CONTROL_TASK_MSG_CODE_SYSTEM, /**< Message code for system events. */
67 CONTROL_TASK_MSG_CODE_TO_BLE, /**< Message code to BLE layer. */
68 CONTROL_TASK_MSG_CODE_FRM_BLE, /**< Message code from BLE layer. */
69 CONTROL_TASK_MSG_CODE_CONFIG, /**< Message code for Config Server events */
70 CONTROL_TASK_MSG_CODE_PROVISION, /**< Message code for provisioning events. */
71 CONTROL_TASK_MSG_CODE_PROV_PLAT, /**< Internal message code for platform provisioning events. */
72 CONTROL_TASK_MSG_CODE_TO_APP, /**< Message code for application events. */
73 CONTROL_TASK_MSG_CODE_TO_MESHX, /**< Message code for meshX events from app */
74 CONTROL_TASK_MSG_CODE_TXCM, /**< Message code for TXCM events */
75 CONTROL_TASK_MSG_CODE_MAX, /**< Maximum message code value. */
enum control_task_msg_code control_task_msg_code_t
Enumeration for control task message codes.
@ CONTROL_TASK_MSG_CODE_FRM_BLE
Definition meshx_control_task.h:68
@ CONTROL_TASK_MSG_CODE_TXCM
Definition meshx_control_task.h:74
@ CONTROL_TASK_MSG_CODE_PROV_PLAT
Definition meshx_control_task.h:71
@ CONTROL_TASK_MSG_CODE_SYSTEM
Definition meshx_control_task.h:66
@ CONTROL_TASK_MSG_CODE_CONFIG
Definition meshx_control_task.h:69
@ CONTROL_TASK_MSG_CODE_MAX
Definition meshx_control_task.h:75
@ CONTROL_TASK_MSG_CODE_TO_APP
Definition meshx_control_task.h:72
@ CONTROL_TASK_MSG_CODE_TO_MESHX
Definition meshx_control_task.h:73
@ CONTROL_TASK_MSG_CODE_EL_STATE_CH
Definition meshx_control_task.h:65
@ CONTROL_TASK_MSG_CODE_PROVISION
Definition meshx_control_task.h:70
@ CONTROL_TASK_MSG_CODE_TO_BLE
Definition meshx_control_task.h:67

Function Documentation

◆ control_task_init()

meshx_err_t control_task_init ( void )

Initialize the control task messaging system.

This function initializes the message queue used by the control task. It must be called before any component attempts to publish messages.

Returns
MESHX_SUCCESS on success, or an error code on failure.
46{
48}
static meshx_err_t create_control_task_msg_q(void)
Create the control task message queue.
Definition meshx_control_task.c:269

◆ control_task_msg_publish()

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.

This function allows you to publish a control task message with the given message code, event, and event parameters. The message will be sent to the control task for processing.

Parameters
[in]msg_codeThe message code to publish.
[in]msg_evtThe event associated with the message.
[in]msg_evt_paramsPointer to the event parameters.
[in]sizeof_msg_evt_paramsSize of the event parameters.
Returns
MESHX_SUCCESS on success, or an error code on failure.
88{
89 control_task_msg_t send_msg;
90 if (msg_code >= CONTROL_TASK_MSG_CODE_MAX)
91 {
92 MESHX_LOGE(MODULE_ID_COMMON, "Invalid message code or event");
93 return MESHX_INVALID_ARG;
94 }
95#if CONFIG_CT_DEBUG_LOG
96#if CONFIG_MESHX_DEFAULT_LOG_LEVEL <= MESHX_LOG_DEBUG
97 void *caller_addr0 = __builtin_return_address(0);
98#endif /* CONFIG_MESHX_DEFAULT_LOG_LEVEL <= MESHX_LOG_DEBUG */
99 MESHX_LOGD(MODULE_ID_COMMON, "fn_address|msg|evt: %p|%p|%p", caller_addr0, (void *)msg_code, (void *)msg_evt);
100#endif /* CONFIG_CT_DEBUG_LOG */
101
102 if (sizeof_msg_evt_params != 0)
103 {
104 meshx_err_t err = meshx_rtos_malloc(&send_msg.msg_evt_params, sizeof_msg_evt_params);
105 if (err)
106 return err;
107 /* Copy the params to allocated space */
108 memcpy(send_msg.msg_evt_params, msg_evt_params, sizeof_msg_evt_params);
109 }
110 else
111 {
112 send_msg.msg_evt_params = NULL;
113 }
114
115 send_msg.msg_code = msg_code;
116 send_msg.msg_evt = msg_evt;
117
118 meshx_err_t send_err = meshx_msg_q_send(&control_task_queue, &send_msg, sizeof(send_msg), UINT32_MAX);
119 if (send_err != MESHX_SUCCESS && send_msg.msg_evt_params)
120 {
122 }
123 return send_err;
124}
static meshx_msg_q_t control_task_queue
Queue handle for control task messages.
Definition meshx_control_task.c:26
struct control_task_msg control_task_msg_t
Structure for control task message.
meshx_err_t
MeshX Error Codes.
Definition meshx_err.h:43
@ MESHX_INVALID_ARG
Definition meshx_err.h:46
#define MESHX_LOGE(module_id, format,...)
Definition meshx_log.h:114
#define MESHX_LOGD(module_id, format,...)
Definition meshx_log.h:132
**This function is called by the parent element when a state change request *is received It validates the request and returns a result to the element not the model layer **return * MESHX_SUCCESS
Definition meshx_model_level.cpp:385
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_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.
@ MODULE_ID_COMMON
Definition module_id.h:36
void * msg_evt_params
Definition meshx_control_task.h:197
control_task_msg_evt_t msg_evt
Definition meshx_control_task.h:196
control_task_msg_code_t msg_code
Definition meshx_control_task.h:195

◆ control_task_msg_subscribe()

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.

This function allows you to subscribe to a specific control task message identified by the given message code. When the message is received, the specified callback function will be invoked.

Parameters
[in]msg_codeThe message code to subscribe to.
[in]evt_bmapThe event bitmap associated with the message.
[in]callbackThe callback function to be called when the message is received.
Returns
  • MESHX_SUCCESS: Success
  • MESHX_INVALID_ARG: Invalid argument
  • MESHX_FAIL: Other failures
145{
146 if (callback == NULL || msg_code >= CONTROL_TASK_MSG_CODE_MAX)
147 return MESHX_INVALID_ARG; // Invalid arguments
148
149 control_task_evt_cb_reg_t *new_node = NULL;
150 meshx_err_t err = meshx_rtos_malloc((void**)&new_node, sizeof(control_task_evt_cb_reg_t));
151 if (err || !new_node)
152 return err; // Memory allocation failed
153
154 new_node->cb = callback;
155 new_node->msg_evt_bmap = evt_bmap;
156 new_node->next = control_task_msg_code_list_heads[msg_code];
157 control_task_msg_code_list_heads[msg_code] = new_node;
158
159 return MESHX_SUCCESS;
160}
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.
Definition meshx_control_task.c:35
struct control_task_evt_cb_reg control_task_evt_cb_reg_t
Structure for control task event callback registration.

◆ control_task_msg_unsubscribe()

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.

This function allows deregistering a callback handler for a specific message code and event type.

Parameters
[in]msg_codeThe message code to deregister the handler for.
[in]evt_bmapBitmap of events to deregister for.
[in]callbackCallback function to deregister.
Returns
MESHX_SUCCESS on success, or an error code on failure.
175{
176 if (callback == NULL || msg_code >= CONTROL_TASK_MSG_CODE_MAX)
177 return MESHX_INVALID_ARG; // Invalid arguments
178
179 control_task_evt_cb_reg_t *prev = NULL;
181
182 while (curr)
183 {
184 if (curr->cb == callback && curr->msg_evt_bmap == evt_bmap)
185 {
186 if (prev == NULL)
187 control_task_msg_code_list_heads[msg_code] = curr->next;
188 else
189 prev->next = curr->next;
190
191 return meshx_rtos_free((void**)&curr);
192 }
193 prev = curr;
194 curr = curr->next;
195 }
196
197 return MESHX_NOT_FOUND;
198}
@ MESHX_NOT_FOUND
Definition meshx_err.h:50
control_task_msg_handle_t cb
Definition meshx_control_task.h:206
struct control_task_evt_cb_reg * next
Definition meshx_control_task.h:207
uint32_t msg_evt_bmap
Definition meshx_control_task.h:205

◆ create_control_task()

meshx_err_t create_control_task ( dev_struct_t * pdev)

Create the control task.

This function creates a FreeRTOS task to handle control events.

Parameters
[in]pdevPointer to the device structure (dev_struct_t).
Returns
MESHX_SUCCESS on success, or an error code on failure.
59{
60
61 meshx_task_t task_handle = {
62 .arg = pdev,
63 .task_cb = control_task_handler,
64 .priority = CONFIG_CONTROL_TASK_PRIO,
65 .task_name = CONFIG_CONTROL_TASK_NAME,
67 };
68
69 return meshx_task_create(&task_handle);
70}
static void control_task_handler(void *args)
Task handler function for processing control task messages.
Definition meshx_control_task.c:282
#define CONFIG_CONTROL_TASK_NAME
Control task name configuration.
Definition meshx_control_task.h:30
#define CONFIG_CONTROL_TASK_STACK_SIZE
Control task stack size configuration.
Definition meshx_control_task.h:50
#define CONFIG_CONTROL_TASK_PRIO
Control task priority configuration.
Definition meshx_control_task.h:36
struct meshx_task meshx_task_t
MeshX Task Structure.
meshx_err_t meshx_task_create(meshx_task_t *task_handle)
Create a MeshX Task.

Variable Documentation

◆ CONTROL_TASK_MSG_EVT_APP_KEY_ADD

CONTROL_TASK_MSG_EVT_APP_KEY_ADD = (1UL << (0))

Event for adding an application key.

◆ CONTROL_TASK_MSG_EVT_APP_KEY_BIND

CONTROL_TASK_MSG_EVT_APP_KEY_BIND = (1UL << (2))

Event for binding an application key.

◆ CONTROL_TASK_MSG_EVT_APP_KEY_DEL

CONTROL_TASK_MSG_EVT_APP_KEY_DEL = (1UL << (1))

Event for deleting an application key.

◆ CONTROL_TASK_MSG_EVT_APP_KEY_UNBIND

CONTROL_TASK_MSG_EVT_APP_KEY_UNBIND = (1UL << (3))

Event for unbinding an application key.

◆ control_task_msg_evt_config

enum __packed control_task_msg_evt_config

Enumeration for control task config srv events.

139{
140 CONTROL_TASK_MSG_EVT_APP_KEY_ADD = MESHX_BIT(0), /**< Event for adding an application key. */
141 CONTROL_TASK_MSG_EVT_APP_KEY_DEL = MESHX_BIT(1), /**< Event for deleting an application key. */
142 CONTROL_TASK_MSG_EVT_APP_KEY_BIND = MESHX_BIT(2), /**< Event for binding an application key. */
143 CONTROL_TASK_MSG_EVT_APP_KEY_UNBIND = MESHX_BIT(3), /**< Event for unbinding an application key. */
144 CONTROL_TASK_MSG_EVT_SUB_ADD = MESHX_BIT(4), /**< Event for adding a subscription. */
145 CONTROL_TASK_MSG_EVT_SUB_DEL = MESHX_BIT(5), /**< Event for deleting a subscription. */
146 CONTROL_TASK_MSG_EVT_PUB_ADD = MESHX_BIT(6), /**< Event for adding a publication. */
147 CONTROL_TASK_MSG_EVT_PUB_DEL = MESHX_BIT(7), /**< Event for deleting a publication. */
148 CONTROL_TASK_MSG_EVT_NET_KEY_ADD = MESHX_BIT(8), /**< Event for adding a network key. */
149 CONTROL_TASK_MSG_EVT_NET_KEY_DEL = MESHX_BIT(9), /**< Event for deleting a network key. */
150 CONTROL_TASK_MSG_EVT_CONFIG_ALL = 0xFF, /**< Event for all configuration events. */
#define MESHX_BIT(nr)
Definition meshx_ble_mesh_cmn_def.h:22
enum __packed control_task_msg_evt_config control_task_msg_evt_config_t
Enumeration for control task config srv events.
CONTROL_TASK_MSG_EVT_NET_KEY_DEL
Definition meshx_control_task.h:149
CONTROL_TASK_MSG_EVT_APP_KEY_DEL
Definition meshx_control_task.h:141
CONTROL_TASK_MSG_EVT_SUB_DEL
Definition meshx_control_task.h:145
CONTROL_TASK_MSG_EVT_APP_KEY_UNBIND
Definition meshx_control_task.h:143
CONTROL_TASK_MSG_EVT_APP_KEY_ADD
Definition meshx_control_task.h:140
CONTROL_TASK_MSG_EVT_PUB_ADD
Definition meshx_control_task.h:146
CONTROL_TASK_MSG_EVT_APP_KEY_BIND
Definition meshx_control_task.h:142
CONTROL_TASK_MSG_EVT_SUB_ADD
Definition meshx_control_task.h:144
CONTROL_TASK_MSG_EVT_PUB_DEL
Definition meshx_control_task.h:147
CONTROL_TASK_MSG_EVT_CONFIG_ALL
Definition meshx_control_task.h:150
CONTROL_TASK_MSG_EVT_NET_KEY_ADD
Definition meshx_control_task.h:148

◆ CONTROL_TASK_MSG_EVT_CONFIG_ALL

CONTROL_TASK_MSG_EVT_CONFIG_ALL = 0xFF

Event for all configuration events.

◆ CONTROL_TASK_MSG_EVT_CTRL

CONTROL_TASK_MSG_EVT_CTRL = (1UL << (1))

Control message

◆ CONTROL_TASK_MSG_EVT_DATA

CONTROL_TASK_MSG_EVT_DATA = (1UL << (0))

Data message

◆ control_task_msg_evt_el_state_ch

enum __packed control_task_msg_evt_el_state_ch

Enumeration for control task message events to HAL.

97{
98 CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF = MESHX_BIT(0), /**< Event to set on/off state. */
99 CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL = MESHX_BIT(1), /**< Event to set CTL state. */
100 CONTROL_TASK_MSG_EVT_EL_STATE_CH_MAX, /**< Maximum HAL event value. */
CONTROL_TASK_MSG_EVT_EL_STATE_CH_MAX
Definition meshx_control_task.h:100
enum __packed control_task_msg_evt_el_state_ch control_task_msg_evt_el_state_ch_t
Enumeration for control task message events to HAL.
CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF
Definition meshx_control_task.h:98
CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL
Definition meshx_control_task.h:99

◆ CONTROL_TASK_MSG_EVT_EL_STATE_CH_MAX

CONTROL_TASK_MSG_EVT_EL_STATE_CH_MAX

Maximum HAL event value.

◆ CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL

CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_CTL = (1UL << (1))

Event to set CTL state.

◆ CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF

CONTROL_TASK_MSG_EVT_EL_STATE_CH_SET_ON_OFF = (1UL << (0))

Event to set on/off state.

◆ CONTROL_TASK_MSG_EVT_EN_NODE_PROV

CONTROL_TASK_MSG_EVT_EN_NODE_PROV = (1UL << (8))

ESP_BLE_MESH_NODE_PROV_ENABLE_COMP_EVT

◆ CONTROL_TASK_MSG_EVT_IDENTIFY_START

CONTROL_TASK_MSG_EVT_IDENTIFY_START = (1UL << (3))

EESP_BLE_MESH_NODE_PROV_LINK_OPEN_EVT

◆ CONTROL_TASK_MSG_EVT_IDENTIFY_STOP

CONTROL_TASK_MSG_EVT_IDENTIFY_STOP = (1UL << (4))

ESP_BLE_MESH_NODE_PROV_LINK_CLOSE_EVT

◆ CONTROL_TASK_MSG_EVT_MAX

CONTROL_TASK_MSG_EVT_MAX

Maximum event value

◆ CONTROL_TASK_MSG_EVT_NET_KEY_ADD

CONTROL_TASK_MSG_EVT_NET_KEY_ADD = (1UL << (8))

Event for adding a network key.

◆ CONTROL_TASK_MSG_EVT_NET_KEY_DEL

CONTROL_TASK_MSG_EVT_NET_KEY_DEL = (1UL << (9))

Event for deleting a network key.

◆ CONTROL_TASK_MSG_EVT_NODE_RESET

CONTROL_TASK_MSG_EVT_NODE_RESET = (1UL << (5))

CONTROL_TASK_MSG_EVT_NODE_RESET

◆ CONTROL_TASK_MSG_EVT_PROV_REG_COMP

CONTROL_TASK_MSG_EVT_PROV_REG_COMP = (1UL << (0))

ESP_BLE_MESH_PROV_REGISTER_COMP_EVT

◆ control_task_msg_evt_provision

enum __packed control_task_msg_evt_provision

Enumeration for control task provisioning events.

157{
158 CONTROL_TASK_MSG_EVT_PROV_REG_COMP = MESHX_BIT(0), /**< ESP_BLE_MESH_PROV_REGISTER_COMP_EVT */
159 CONTROL_TASK_MSG_EVT_SET_NAME_COMP = MESHX_BIT(1), /**< ESP_BLE_MESH_NODE_SET_UNPROV_DEV_NAME_COMP_EVT */
160 CONTROL_TASK_MSG_EVT_PROVISION_STOP = MESHX_BIT(2), /**< ESP_BLE_MESH_NODE_PROV_COMPLETE_EVT */
161 CONTROL_TASK_MSG_EVT_IDENTIFY_START = MESHX_BIT(3), /**< EESP_BLE_MESH_NODE_PROV_LINK_OPEN_EVT */
162 CONTROL_TASK_MSG_EVT_IDENTIFY_STOP = MESHX_BIT(4), /**< ESP_BLE_MESH_NODE_PROV_LINK_CLOSE_EVT */
163 CONTROL_TASK_MSG_EVT_NODE_RESET = MESHX_BIT(5), /**< CONTROL_TASK_MSG_EVT_NODE_RESET */
164 CONTROL_TASK_MSG_EVT_PROXY_CONNECT = MESHX_BIT(6), /**< ESP_BLE_MESH_PROXY_SERVER_CONNECTED_EVT */
165 CONTROL_TASK_MSG_EVT_PROXY_DISCONN = MESHX_BIT(7), /**< ESP_BLE_MESH_PROXY_SERVER_DISCONNECTED_EVT */
166 CONTROL_TASK_MSG_EVT_EN_NODE_PROV = MESHX_BIT(8), /**< ESP_BLE_MESH_NODE_PROV_ENABLE_COMP_EVT */
167 CONTROL_TASK_MSG_EVT_SYSTEM_FRESH_BOOT = MESHX_BIT(9), /**< Event to indicate fresh boot */
168 CONTROL_TASK_MSG_EVT_SYSTEM_STACK_READY = MESHX_BIT(10),/**< Event to indicate stack is ready for TX */
169 CONTROL_TASK_MSG_EVT_PROVISION_ALL = 0xFFFF, /**< Maximum provisioning event value. */
CONTROL_TASK_MSG_EVT_SYSTEM_FRESH_BOOT
Definition meshx_control_task.h:167
CONTROL_TASK_MSG_EVT_IDENTIFY_START
Definition meshx_control_task.h:161
CONTROL_TASK_MSG_EVT_PROVISION_STOP
Definition meshx_control_task.h:160
CONTROL_TASK_MSG_EVT_PROXY_CONNECT
Definition meshx_control_task.h:164
CONTROL_TASK_MSG_EVT_PROV_REG_COMP
Definition meshx_control_task.h:158
CONTROL_TASK_MSG_EVT_SYSTEM_STACK_READY
Definition meshx_control_task.h:168
CONTROL_TASK_MSG_EVT_IDENTIFY_STOP
Definition meshx_control_task.h:162
CONTROL_TASK_MSG_EVT_NODE_RESET
Definition meshx_control_task.h:163
CONTROL_TASK_MSG_EVT_EN_NODE_PROV
Definition meshx_control_task.h:166
CONTROL_TASK_MSG_EVT_SET_NAME_COMP
Definition meshx_control_task.h:159
CONTROL_TASK_MSG_EVT_PROVISION_ALL
Definition meshx_control_task.h:169
enum __packed control_task_msg_evt_provision control_task_msg_evt_provision_t
Enumeration for control task provisioning events.
CONTROL_TASK_MSG_EVT_PROXY_DISCONN
Definition meshx_control_task.h:165

◆ CONTROL_TASK_MSG_EVT_PROVISION_ALL

CONTROL_TASK_MSG_EVT_PROVISION_ALL = 0xFFFF

Maximum provisioning event value.

◆ CONTROL_TASK_MSG_EVT_PROVISION_STOP

CONTROL_TASK_MSG_EVT_PROVISION_STOP = (1UL << (2))

ESP_BLE_MESH_NODE_PROV_COMPLETE_EVT

◆ CONTROL_TASK_MSG_EVT_PROXY_CONNECT

CONTROL_TASK_MSG_EVT_PROXY_CONNECT = (1UL << (6))

ESP_BLE_MESH_PROXY_SERVER_CONNECTED_EVT

◆ CONTROL_TASK_MSG_EVT_PROXY_DISCONN

CONTROL_TASK_MSG_EVT_PROXY_DISCONN = (1UL << (7))

ESP_BLE_MESH_PROXY_SERVER_DISCONNECTED_EVT

◆ CONTROL_TASK_MSG_EVT_PUB_ADD

CONTROL_TASK_MSG_EVT_PUB_ADD = (1UL << (6))

Event for adding a publication.

◆ CONTROL_TASK_MSG_EVT_PUB_DEL

CONTROL_TASK_MSG_EVT_PUB_DEL = (1UL << (7))

Event for deleting a publication.

◆ CONTROL_TASK_MSG_EVT_SET_NAME_COMP

CONTROL_TASK_MSG_EVT_SET_NAME_COMP = (1UL << (1))

ESP_BLE_MESH_NODE_SET_UNPROV_DEV_NAME_COMP_EVT

◆ CONTROL_TASK_MSG_EVT_SUB_ADD

CONTROL_TASK_MSG_EVT_SUB_ADD = (1UL << (4))

Event for adding a subscription.

◆ CONTROL_TASK_MSG_EVT_SUB_DEL

CONTROL_TASK_MSG_EVT_SUB_DEL = (1UL << (5))

Event for deleting a subscription.

◆ control_task_msg_evt_system

enum __packed control_task_msg_evt_system

Enumeration for control task system events.

124{
125 CONTROL_TASK_MSG_EVT_SYSTEM_RESTART = MESHX_BIT(0), /**< Event to restart the system. */
126 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_ARM = MESHX_BIT(1), /**< Event to arm an OS Timer */
127 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_REARM = MESHX_BIT(2), /**< Event to re-arm an OS Timer */
128 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_DISARM = MESHX_BIT(3), /**< Event to stop an OS Timer */
129 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_FIRE = MESHX_BIT(4), /**< Event to fire timedout OS Timer */
130 CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_PERIOD = MESHX_BIT(5), /**< Event to set timedout OS Timer */
131 CONTROL_TASK_MSG_EVT_SYSTEM_NVS_COMMIT = MESHX_BIT(6), /**< Event for NVS commit operation */
132 CONTROL_TASK_MSG_EVT_SYSTEM_MAX, /**< Maximum system event value. */
CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_FIRE
Definition meshx_control_task.h:129
CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_PERIOD
Definition meshx_control_task.h:130
CONTROL_TASK_MSG_EVT_SYSTEM_MAX
Definition meshx_control_task.h:132
CONTROL_TASK_MSG_EVT_SYSTEM_NVS_COMMIT
Definition meshx_control_task.h:131
enum __packed control_task_msg_evt_system control_task_msg_evt_system_t
Enumeration for control task system events.
CONTROL_TASK_MSG_EVT_SYSTEM_RESTART
Definition meshx_control_task.h:125
CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_DISARM
Definition meshx_control_task.h:128
CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_ARM
Definition meshx_control_task.h:126
CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_REARM
Definition meshx_control_task.h:127

◆ CONTROL_TASK_MSG_EVT_SYSTEM_FRESH_BOOT

CONTROL_TASK_MSG_EVT_SYSTEM_FRESH_BOOT = (1UL << (9))

Event to indicate fresh boot

◆ CONTROL_TASK_MSG_EVT_SYSTEM_MAX

CONTROL_TASK_MSG_EVT_SYSTEM_MAX

Maximum system event value.

◆ CONTROL_TASK_MSG_EVT_SYSTEM_NVS_COMMIT

CONTROL_TASK_MSG_EVT_SYSTEM_NVS_COMMIT = (1UL << (6))

Event for NVS commit operation

◆ CONTROL_TASK_MSG_EVT_SYSTEM_RESTART

CONTROL_TASK_MSG_EVT_SYSTEM_RESTART = (1UL << (0))

Event to restart the system.

◆ CONTROL_TASK_MSG_EVT_SYSTEM_STACK_READY

CONTROL_TASK_MSG_EVT_SYSTEM_STACK_READY = (1UL << (10))

Event to indicate stack is ready for TX

◆ CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_ARM

CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_ARM = (1UL << (1))

Event to arm an OS Timer

◆ CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_DISARM

CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_DISARM = (1UL << (3))

Event to stop an OS Timer

◆ CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_FIRE

CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_FIRE = (1UL << (4))

Event to fire timedout OS Timer

◆ CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_PERIOD

CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_PERIOD = (1UL << (5))

Event to set timedout OS Timer

◆ CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_REARM

CONTROL_TASK_MSG_EVT_SYSTEM_TIMER_REARM = (1UL << (2))

Event to re-arm an OS Timer

◆ control_task_msg_evt_to_app_meshx

enum __packed control_task_msg_evt_to_app_meshx

Enumeration for control task message events to application.

87{
88 CONTROL_TASK_MSG_EVT_DATA = MESHX_BIT(0), /**< Data message */
89 CONTROL_TASK_MSG_EVT_CTRL = MESHX_BIT(1), /**< Control message */
90 CONTROL_TASK_MSG_EVT_MAX, /**< Maximum event value */
CONTROL_TASK_MSG_EVT_MAX
Definition meshx_control_task.h:90
enum __packed control_task_msg_evt_to_app_meshx control_task_msg_evt_to_app_meshx_t
Enumeration for control task message events to application.
CONTROL_TASK_MSG_EVT_CTRL
Definition meshx_control_task.h:89
CONTROL_TASK_MSG_EVT_DATA
Definition meshx_control_task.h:88

◆ control_task_msg_evt_to_ble

enum __packed control_task_msg_evt_to_ble

Enumeration for control task message events to BLE.

107{
108 /* To Client related events */
109 CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF = MESHX_BIT(0), /**< Event to set on/off state. */
110 CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL = MESHX_BIT(1), /**< Event to set CTL state. */
111 CONTROL_TASK_MSG_EVT_TO_BLE_SET_LIGHTNESS = MESHX_BIT(2), /**< Event to set lightness state. */
112
113 /* To server events */
114 CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV = MESHX_BIT(16),/**< Event to send out on/off status */
115 CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV = MESHX_BIT(17),/**< Event to send out CTL status */
116 CONTROL_TASK_MSG_EVT_TO_BLE_SENSOR_SRV = MESHX_BIT(18),/**< Event to send out Sensor status */
117 CONTROL_TASK_MSG_EVT_TO_BLE_MAX /**< Maximum BLE event value. */
CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV
Definition meshx_control_task.h:115
CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV
Definition meshx_control_task.h:114
enum __packed control_task_msg_evt_to_ble control_task_msg_evt_to_ble_t
Enumeration for control task message events to BLE.
CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL
Definition meshx_control_task.h:110
CONTROL_TASK_MSG_EVT_TO_BLE_SENSOR_SRV
Definition meshx_control_task.h:116
CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF
Definition meshx_control_task.h:109
CONTROL_TASK_MSG_EVT_TO_BLE_SET_LIGHTNESS
Definition meshx_control_task.h:111

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SENSOR_SRV

CONTROL_TASK_MSG_EVT_TO_BLE_SENSOR_SRV = (1UL << (18))

Event to send out Sensor status

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL

CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL = (1UL << (1))

Event to set CTL state.

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV

CONTROL_TASK_MSG_EVT_TO_BLE_SET_CTL_SRV = (1UL << (17))

Event to send out CTL status

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SET_LIGHTNESS

CONTROL_TASK_MSG_EVT_TO_BLE_SET_LIGHTNESS = (1UL << (2))

Event to set lightness state.

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF

CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF = (1UL << (0))

Event to set on/off state.

◆ CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV

CONTROL_TASK_MSG_EVT_TO_BLE_SET_ON_OFF_SRV = (1UL << (16))

Event to send out on/off status

◆ control_task_msg_evt_txcm

enum __packed control_task_msg_evt_txcm

Enumeration for control task TXCM events.

176{
177 CONTROL_TASK_MSG_EVT_TXCM_MSG_TIMEOUT = MESHX_BIT(1), /**< Event for TXCM message timeout */
178 CONTROL_TASK_MSG_EVT_TXCM_MAX
CONTROL_TASK_MSG_EVT_TXCM_MSG_TIMEOUT
Definition meshx_control_task.h:177
enum __packed control_task_msg_evt_txcm control_task_msg_evt_txcm_t
Enumeration for control task TXCM events.

◆ CONTROL_TASK_MSG_EVT_TXCM_MSG_TIMEOUT

CONTROL_TASK_MSG_EVT_TXCM_MSG_TIMEOUT = (1UL << (1))

Event for TXCM message timeout