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
Go to the documentation of this file.
1
12
14#include "freertos/FreeRTOS.h"
15#include "freertos/portmacro.h"
16#include "freertos/task.h"
17#include "esp_system.h"
18
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}
53
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}
72
80
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}
92
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}
111
122{
123 if (task_handle == NULL)
124 {
125 return MESHX_INVALID_ARG;
126 }
127
128 return MESHX_SUCCESS;
129}
130
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_err_t
MeshX Error Codes.
Definition meshx_err.h:39
@ MESHX_SUCCESS
Definition meshx_err.h:40
@ MESHX_INVALID_ARG
Definition meshx_err.h:42
@ MESHX_FAIL
Definition meshx_err.h:41
meshx_err_t meshx_task_get_handle(meshx_task_t *task_handle)
Get Task Handle.
Definition meshx_task.c:121
meshx_err_t meshx_task_suspend(meshx_task_t *task_handle)
Suspend a MeshX Task.
Definition meshx_task.c:81
meshx_err_t meshx_task_resume(meshx_task_t *task_handle)
Resume a MeshX Task.
Definition meshx_task.c:100
meshx_err_t meshx_task_delay(uint32_t delay_ms)
Delay a MeshX Task.
Definition meshx_task.c:139
meshx_err_t meshx_task_create(meshx_task_t *task_handle)
Create a MeshX Task.
Definition meshx_task.c:28
meshx_err_t meshx_task_delete(meshx_task_t *task_handle)
Delete a MeshX Task.
Definition meshx_task.c:61
MeshX Task Interface.
struct meshx_task meshx_task_t
MeshX Task Structure.
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