Program Listing for File Task.h¶
↰ Return to documentation for file (components/Task/src/Task.h
)
/*
* Task.h
*
* Created on: Mar 4, 2017
* Author: kolban
*/
#ifndef TASK_H_
#define TASK_H_
#include <freertos/FreeRTOS.h>
#include <freertos/task.h>
#include <string>
class Task
{
public:
Task(std::string task_name = "Task", uint16_t stack_size = 10000, uint8_t priority = 5);
virtual ~Task();
void setStackSize(uint16_t stack_size);
void setPriority(uint8_t priority);
void setName(std::string name);
void setCore(BaseType_t core_id);
void start(void* task_data = nullptr);
void stop();
virtual void run(void* data) = 0; // Make run pure virtual
static void delay(int ms);
private:
xTaskHandle m_handle;
void* m_task_data;
static void runTask(void* task_instance);
std::string m_task_name;
uint16_t m_stack_size;
uint8_t m_priority;
BaseType_t m_core_id;
};
#endif /* COMPONENTS_CPP_UTILS_TASK_H_ */