action
container
contrib
controller
coordinates
datalinklayer
datapool
datapoolglob
datapoollocal
devicehandlers
events
fdir
globalfunctions
health
housekeeping
internalError
ipc
memory
modes
monitoring
objectmanager
osal
FreeRTOS
host
linux
BinarySemaphore.cpp
BinarySemaphore.h
Clock.cpp
CountingSemaphore.cpp
CountingSemaphore.h
FixedTimeslotTask.cpp
FixedTimeslotTask.h
InternalErrorCodes.cpp
MessageQueue.cpp
MessageQueue.h
Mutex.cpp
Mutex.h
MutexFactory.cpp
PeriodicPosixTask.cpp
PeriodicPosixTask.h
PosixThread.cpp
PosixThread.h
QueueFactory.cpp
SemaphoreFactory.cpp
TaskFactory.cpp
TcUnixUdpPollingTask.cpp
TcUnixUdpPollingTask.h
Timer.cpp
Timer.h
TmTcUnixUdpBridge.cpp
TmTcUnixUdpBridge.h
rtems
Endiness.h
InternalErrorCodes.h
parameters
power
pus
returnvalues
rmap
serialize
serviceinterface
storagemanager
subsystem
tasks
tcdistribution
thermal
timemanager
tmstorage
tmtcpacket
tmtcservices
.gitignore
LICENSE
NOTICE
framework.mk
43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#include <framework/osal/linux/FixedTimeslotTask.h>
|
|
#include <framework/osal/linux/PeriodicPosixTask.h>
|
|
#include <framework/tasks/TaskFactory.h>
|
|
#include <framework/returnvalues/HasReturnvaluesIF.h>
|
|
|
|
//TODO: Different variant than the lazy loading in QueueFactory. What's better and why?
|
|
TaskFactory* TaskFactory::factoryInstance = new TaskFactory();
|
|
|
|
TaskFactory::~TaskFactory() {
|
|
}
|
|
|
|
TaskFactory* TaskFactory::instance() {
|
|
return TaskFactory::factoryInstance;
|
|
}
|
|
|
|
PeriodicTaskIF* TaskFactory::createPeriodicTask(TaskName name_,
|
|
TaskPriority taskPriority_,TaskStackSize stackSize_,
|
|
TaskPeriod periodInSeconds_,
|
|
TaskDeadlineMissedFunction deadLineMissedFunction_) {
|
|
return new PeriodicPosixTask(name_, taskPriority_,stackSize_,
|
|
periodInSeconds_ * 1000, deadLineMissedFunction_);
|
|
}
|
|
|
|
FixedTimeslotTaskIF* TaskFactory::createFixedTimeslotTask(TaskName name_,
|
|
TaskPriority taskPriority_,TaskStackSize stackSize_,
|
|
TaskPeriod periodInSeconds_,
|
|
TaskDeadlineMissedFunction deadLineMissedFunction_) {
|
|
return new FixedTimeslotTask(name_, taskPriority_,stackSize_,
|
|
periodInSeconds_*1000);
|
|
}
|
|
|
|
ReturnValue_t TaskFactory::deleteTask(PeriodicTaskIF* task) {
|
|
//TODO not implemented
|
|
return HasReturnvaluesIF::RETURN_FAILED;
|
|
}
|
|
|
|
ReturnValue_t TaskFactory::delayTask(uint32_t delayMs){
|
|
return PosixThread::sleep(delayMs*1000000ull);
|
|
}
|
|
|
|
TaskFactory::TaskFactory() {
|
|
}
|