action
container
contrib
controller
coordinates
datalinklayer
datapool
datapoollocal
defaultcfg
devicehandlers
doc
events
fdir
globalfunctions
health
housekeeping
internalError
ipc
logo
memory
modes
monitoring
objectmanager
osal
FreeRTOS
host
linux
rtems
Clock.cpp
CpuUsage.cpp
CpuUsage.h
InitTask.cpp
InitTask.h
InternalErrorCodes.cpp
MessageQueue.cpp
MessageQueue.h
MultiObjectTask.cpp
MultiObjectTask.h
Mutex.cpp
Mutex.h
MutexFactory.cpp
PollingTask.cpp
PollingTask.h
QueueFactory.cpp
RtemsBasic.cpp
RtemsBasic.h
TaskBase.cpp
TaskBase.h
TaskFactory.cpp
windows
CMakeLists.txt
Endiness.h
InternalErrorCodes.h
parameters
power
pus
returnvalues
rmap
serialize
serviceinterface
storagemanager
subsystem
tasks
tcdistribution
thermal
timemanager
tmstorage
tmtcpacket
tmtcservices
unittest
.gitignore
.gitmodules
CHANGELOG
CMakeLists.txt
FSFWVersion.h
LICENSE
NOTICE
README.md
fsfw.mk
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
#ifndef FSFW_OSAL_RTEMS_TASKBASE_H_
|
|
#define FSFW_OSAL_RTEMS_TASKBASE_H_
|
|
|
|
#include "RtemsBasic.h"
|
|
#include "../../tasks/PeriodicTaskIF.h"
|
|
|
|
/**
|
|
* @brief This is the basic task handling class for rtems.
|
|
*
|
|
* @details Task creation base class for rtems.
|
|
*/
|
|
class TaskBase {
|
|
protected:
|
|
/**
|
|
* @brief The class stores the task id it got assigned from the operating system in this attribute.
|
|
* If initialization fails, the id is set to zero.
|
|
*/
|
|
rtems_id id;
|
|
public:
|
|
/**
|
|
* @brief The constructor creates and initializes a task.
|
|
* @details This is accomplished by using the operating system call to create a task. The name is
|
|
* created automatically with the help od taskCounter. Priority and stack size are
|
|
* adjustable, all other attributes are set with default values.
|
|
* @param priority Sets the priority of a task. Values range from a low 0 to a high 99.
|
|
* @param stack_size The stack size reserved by the operating system for the task.
|
|
* @param nam The name of the Task, as a null-terminated String. Currently max 4 chars supported (excluding Null-terminator), rest will be truncated
|
|
*/
|
|
TaskBase( rtems_task_priority priority, size_t stack_size, const char *name);
|
|
/**
|
|
* @brief In the destructor, the created task is deleted.
|
|
*/
|
|
virtual ~TaskBase();
|
|
/**
|
|
* @brief This method returns the task id of this class.
|
|
*/
|
|
rtems_id getId();
|
|
|
|
ReturnValue_t sleepFor(uint32_t ms);
|
|
static ReturnValue_t setAndStartPeriod(rtems_interval period, rtems_id *periodId);
|
|
static rtems_status_code restartPeriod(rtems_interval period, rtems_id periodId);
|
|
private:
|
|
static ReturnValue_t convertReturnCode(rtems_status_code inValue);
|
|
};
|
|
|
|
|
|
#endif /* FSFW_OSAL_RTEMS_TASKBASE_H_ */
|