MeshX 0.3
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_task.c File Reference

Implementation of MeshX task management functions using FreeRTOS. This file provides APIs to create, delete, suspend, resume, and delay tasks in the MeshX framework. More...

#include "interface/rtos/meshx_task.h"
#include "freertos/FreeRTOS.h"
#include "freertos/portmacro.h"
#include "freertos/task.h"
#include "esp_system.h"
Include dependency graph for meshx_task.c:

Go to the source code of this file.

Functions

meshx_err_t meshx_task_create (meshx_task_t *task_handle)
 Create a MeshX Task.
 
meshx_err_t meshx_task_delete (meshx_task_t *task_handle)
 Delete a MeshX Task.
 
meshx_err_t meshx_task_suspend (meshx_task_t *task_handle)
 Suspend a MeshX Task.
 
meshx_err_t meshx_task_resume (meshx_task_t *task_handle)
 Resume a MeshX Task.
 
meshx_err_t meshx_task_get_handle (meshx_task_t *task_handle)
 Get Task Handle.
 
meshx_err_t meshx_task_delay (uint32_t delay_ms)
 Delay a MeshX Task.
 

Detailed Description

Implementation of MeshX task management functions using FreeRTOS. This file provides APIs to create, delete, suspend, resume, and delay tasks in the MeshX framework.

Copyright (c) 2024 - 2025 MeshX

Author
Pranjal Chanda

Definition in file meshx_task.c.

Function Documentation

◆ meshx_task_create()

meshx_err_t meshx_task_create ( meshx_task_t * task_handle)

Create a MeshX Task.

This function creates a MeshX Task.

Parameters
[in,out]task_handleTask Handle
Returns
meshx_err_t

Definition at line 28 of file meshx_task.c.

29{
30 if (task_handle == NULL)
31 {
32 return MESHX_INVALID_ARG;
33 }
34
35 TaskHandle_t task_handle_temp = NULL;
36 BaseType_t err = xTaskCreate(
37 (TaskFunction_t)task_handle->task_cb,
38 task_handle->task_name,
39 task_handle->stack_size,
40 task_handle->arg,
41 task_handle->priority,
42 &task_handle_temp);
43
44 if (err != pdPASS)
45 {
46 return MESHX_FAIL;
47 }
48
49 task_handle->__task_handle = task_handle_temp;
50
51 return MESHX_SUCCESS;
52}
@ MESHX_SUCCESS
Definition meshx_err.h:40
@ MESHX_INVALID_ARG
Definition meshx_err.h:42
@ MESHX_FAIL
Definition meshx_err.h:41
const char * task_name
Definition meshx_task.h:34
size_t stack_size
Definition meshx_task.h:36
void * arg
Definition meshx_task.h:35
meshx_task_cb_t task_cb
Definition meshx_task.h:38
void * __task_handle
Definition meshx_task.h:40
Here is the caller graph for this function:

◆ meshx_task_delay()

meshx_err_t meshx_task_delay ( uint32_t delay_ms)

Delay a MeshX Task.

This function delays a MeshX Task.

Parameters
[in]delay_msDelay in milliseconds
Returns
meshx_err_t

Definition at line 139 of file meshx_task.c.

140{
141 if (delay_ms == 0)
142 {
143 return MESHX_INVALID_ARG;
144 }
145
146 vTaskDelay(pdMS_TO_TICKS(delay_ms));
147
148 return MESHX_SUCCESS;
149}

◆ meshx_task_delete()

meshx_err_t meshx_task_delete ( meshx_task_t * task_handle)

Delete a MeshX Task.

This function deletes a MeshX Task.

Parameters
[in]task_handleTask Handle

Definition at line 61 of file meshx_task.c.

62{
63 if (task_handle == NULL)
64 {
65 return MESHX_INVALID_ARG;
66 }
67
68 vTaskDelete(task_handle->__task_handle);
69
70 return MESHX_SUCCESS;
71}

◆ meshx_task_get_handle()

meshx_err_t meshx_task_get_handle ( meshx_task_t * task_handle)

Get Task Handle.

This function gets the Task Handle.

Parameters
[in]task_handleTask Handle
Returns
meshx_err_t

Definition at line 121 of file meshx_task.c.

122{
123 if (task_handle == NULL)
124 {
125 return MESHX_INVALID_ARG;
126 }
127
128 return MESHX_SUCCESS;
129}

◆ meshx_task_resume()

meshx_err_t meshx_task_resume ( meshx_task_t * task_handle)

Resume a MeshX Task.

This function resumes a MeshX Task.

Parameters
[in]task_handleTask Handle

Definition at line 100 of file meshx_task.c.

101{
102 if (task_handle == NULL)
103 {
104 return MESHX_INVALID_ARG;
105 }
106
107 vTaskResume(task_handle->__task_handle);
108
109 return MESHX_SUCCESS;
110}

◆ meshx_task_suspend()

meshx_err_t meshx_task_suspend ( meshx_task_t * task_handle)

Suspend a MeshX Task.

This function suspends a MeshX Task.

Parameters
[in]task_handleTask Handle

Definition at line 81 of file meshx_task.c.

82{
83 if (task_handle == NULL)
84 {
85 return MESHX_INVALID_ARG;
86 }
87
88 vTaskSuspend(task_handle->__task_handle);
89
90 return MESHX_SUCCESS;
91}