#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_ */