61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
|
#ifndef FSFW_TASKS_FIXEDSEQUENCESLOT_H_
|
||
|
#define FSFW_TASKS_FIXEDSEQUENCESLOT_H_
|
||
|
|
||
|
#include "ExecutableObjectIF.h"
|
||
|
#include "../objectmanager/ObjectManagerIF.h"
|
||
|
|
||
|
class PeriodicTaskIF;
|
||
|
|
||
|
/**
|
||
|
* @brief This class is the representation of a single polling sequence
|
||
|
* table entry.
|
||
|
* @details
|
||
|
* The PollingSlot class is the representation of a single polling
|
||
|
* sequence table entry.
|
||
|
* @author baetz
|
||
|
*/
|
||
|
class FixedSequenceSlot {
|
||
|
public:
|
||
|
FixedSequenceSlot( object_id_t handlerId, uint32_t setTimeMs,
|
||
|
int8_t setSequenceId, ExecutableObjectIF* executableObject,
|
||
|
PeriodicTaskIF* executingTask);
|
||
|
virtual ~FixedSequenceSlot();
|
||
|
|
||
|
object_id_t handlerId;
|
||
|
|
||
|
/**
|
||
|
* @brief Handler identifies which object is executed in this slot.
|
||
|
*/
|
||
|
ExecutableObjectIF* executableObject = nullptr;
|
||
|
|
||
|
/**
|
||
|
* @brief This attribute defines when a device handler object is executed.
|
||
|
* @details
|
||
|
* The pollingTime attribute identifies the time the handler is
|
||
|
* executed in ms. It must be smaller than the period length of the
|
||
|
* polling sequence.
|
||
|
*/
|
||
|
uint32_t pollingTimeMs;
|
||
|
|
||
|
/**
|
||
|
* @brief This value defines the type of device communication.
|
||
|
*
|
||
|
* @details The state of this value decides what communication routine is
|
||
|
* called in the PST executable or the device handler object.
|
||
|
*/
|
||
|
uint8_t opcode;
|
||
|
|
||
|
/**
|
||
|
* @brief Operator overload for the comparison operator to
|
||
|
* allow sorting by polling time.
|
||
|
* @param fixedSequenceSlot
|
||
|
* @return
|
||
|
*/
|
||
|
bool operator <(const FixedSequenceSlot & fixedSequenceSlot) const {
|
||
|
return pollingTimeMs < fixedSequenceSlot.pollingTimeMs;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif /* FSFW_TASKS_FIXEDSEQUENCESLOT_H_ */
|