8 #ifndef MAIN_FREERTOS_H_
9 #define MAIN_FREERTOS_H_
14 #include <freertos/FreeRTOS.h>
15 #include <freertos/task.h>
16 #include <freertos/semphr.h>
17 #include <freertos/ringbuf.h>
25 static void sleep(uint32_t ms);
26 static void startTask(
void task(
void*), std::string taskName,
void* param =
nullptr, uint32_t stackSize = 2048);
27 static void deleteTask(TaskHandle_t pTask =
nullptr);
33 Semaphore(std::string owner =
"<Unknown>");
36 void give(uint32_t value);
39 bool take(std::string owner =
"<Unknown>");
40 bool take(uint32_t timeoutMs, std::string owner =
"<Unknown>");
42 uint32_t
wait(std::string owner =
"<Unknown>");
45 SemaphoreHandle_t m_semaphore;
46 pthread_mutex_t m_pthread_mutex;
61 Ringbuffer(
size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT);
64 void*
receive(
size_t* size, TickType_t wait = portMAX_DELAY);
66 bool send(
void* data,
size_t length, TickType_t wait = portMAX_DELAY);
68 RingbufHandle_t m_handle;
void * receive(size_t *size, TickType_t wait=portMAX_DELAY)
Receive data from the buffer.
Definition: FreeRTOS.cpp:244
void setName(std::string name)
Set the name of the semaphore.
Definition: FreeRTOS.cpp:218
uint32_t wait(std::string owner="<Unknown>")
Wait for a semaphore to be released by trying to take it and then releasing it again.
Definition: FreeRTOS.cpp:64
bool send(void *data, size_t length, TickType_t wait=portMAX_DELAY)
Send data to the buffer.
Definition: FreeRTOS.cpp:265
void give()
Give a semaphore. The Semaphore is given.
Definition: FreeRTOS.cpp:114
void returnItem(void *item)
Return an item.
Definition: FreeRTOS.cpp:253
std::string toString()
Create a string representation of the semaphore.
Definition: FreeRTOS.cpp:207
Ringbuffer(size_t length, ringbuf_type_t type=RINGBUF_TYPE_NOSPLIT)
Create a ring buffer.
Definition: FreeRTOS.cpp:228
Ringbuffer.
Definition: FreeRTOS.h:59
static void sleep(uint32_t ms)
Definition: FreeRTOS.cpp:23
static void startTask(void task(void *), std::string taskName, void *param=nullptr, uint32_t stackSize=2048)
Definition: FreeRTOS.cpp:35
void giveFromISR()
Give a semaphore from an ISR.
Definition: FreeRTOS.cpp:143
static void deleteTask(TaskHandle_t pTask=nullptr)
Definition: FreeRTOS.cpp:44
Definition: FreeRTOS.h:31
static uint32_t getTimeSinceStart()
Definition: FreeRTOS.cpp:53
Interface to FreeRTOS functions.
Definition: FreeRTOS.h:23
bool take(std::string owner="<Unknown>")
Take a semaphore. Take a semaphore and wait indefinitely.
Definition: FreeRTOS.cpp:159