Merge pull request 'task convergence' (#307) from KSat/fsfw:mueller/tasks-update into development

Reviewed-on: fsfw/fsfw#307
This commit is contained in:
Steffen Gaisser 2020-12-15 15:20:15 +01:00
commit 5ba1932076
2 changed files with 27 additions and 9 deletions

View File

@ -1,16 +1,32 @@
#ifndef FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_ #ifndef FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_
#define FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_ #define FRAMEWORK_TASKS_FIXEDTIMESLOTTASKIF_H_
#include "../objectmanager/ObjectManagerIF.h"
#include "PeriodicTaskIF.h" #include "PeriodicTaskIF.h"
#include "../objectmanager/ObjectManagerIF.h"
/** /**
* Following the same principle as the base class IF. This is the interface for a Fixed timeslot task * @brief Following the same principle as the base class IF.
* This is the interface for a Fixed timeslot task
*/ */
class FixedTimeslotTaskIF : public PeriodicTaskIF { class FixedTimeslotTaskIF : public PeriodicTaskIF {
public: public:
virtual ~FixedTimeslotTaskIF() {} virtual ~FixedTimeslotTaskIF() {}
virtual ReturnValue_t addSlot(object_id_t componentId, uint32_t slotTimeMs, int8_t executionStep) = 0;
/**
* Add an object with a slot time and the execution step to the task.
* The execution step will be passed to the object (e.g. as an operation
* code in #performOperation)
* @param componentId
* @param slotTimeMs
* @param executionStep
* @return
*/
virtual ReturnValue_t addSlot(object_id_t componentId, uint32_t slotTimeMs,
int8_t executionStep) = 0;
/**
* Check whether the sequence is valid and perform all other required
* initialization steps which are needed after task creation
*/
virtual ReturnValue_t checkSequence() const = 0; virtual ReturnValue_t checkSequence() const = 0;
}; };

View File

@ -1,10 +1,11 @@
#ifndef FRAMEWORK_TASKS_TASKFACTORY_H_ #ifndef FSFW_TASKS_TASKFACTORY_H_
#define FRAMEWORK_TASKS_TASKFACTORY_H_ #define FSFW_TASKS_TASKFACTORY_H_
#include <stdlib.h>
#include "FixedTimeslotTaskIF.h" #include "FixedTimeslotTaskIF.h"
#include "Typedef.h" #include "Typedef.h"
#include <cstdlib>
/** /**
* Singleton Class that produces Tasks. * Singleton Class that produces Tasks.
*/ */
@ -48,10 +49,11 @@ public:
/** /**
* Function to be called to delete a task * Function to be called to delete a task
* @param task The pointer to the task that shall be deleted, NULL specifies current Task * @param task The pointer to the task that shall be deleted,
* nullptr specifies current Task
* @return Success of deletion * @return Success of deletion
*/ */
static ReturnValue_t deleteTask(PeriodicTaskIF* task = NULL); static ReturnValue_t deleteTask(PeriodicTaskIF* task = nullptr);
/** /**
* Function to be called to delay current task * Function to be called to delay current task
@ -69,4 +71,4 @@ private:
}; };
#endif /* FRAMEWORK_TASKS_TASKFACTORY_H_ */ #endif /* FSFW_TASKS_TASKFACTORY_H_ */