31 lines
954 B
C++
31 lines
954 B
C++
#ifndef FSFW_ACTION_SIMPLEACTIONHELPER_H_
|
|
#define FSFW_ACTION_SIMPLEACTIONHELPER_H_
|
|
|
|
#include "ActionHelper.h"
|
|
|
|
/**
|
|
* @brief This is an action helper which is only able to service one action
|
|
* at a time but remembers last commander and last action which
|
|
* simplifies usage
|
|
*/
|
|
class SimpleActionHelper: public ActionHelper {
|
|
public:
|
|
SimpleActionHelper(HasActionsIF* setOwner, MessageQueueIF* useThisQueue);
|
|
virtual ~SimpleActionHelper();
|
|
void step(ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
|
|
void finish(ReturnValue_t result = HasReturnvaluesIF::RETURN_OK);
|
|
ReturnValue_t reportData(SerializeIF* data);
|
|
|
|
protected:
|
|
void prepareExecution(MessageQueueId_t commandedBy, ActionId_t actionId,
|
|
store_address_t dataAddress);
|
|
virtual void resetHelper();
|
|
private:
|
|
bool isExecuting;
|
|
MessageQueueId_t lastCommander = MessageQueueIF::NO_QUEUE;
|
|
ActionId_t lastAction = 0;
|
|
uint8_t stepCount = 0;
|
|
};
|
|
|
|
#endif /* SIMPLEACTIONHELPER_H_ */
|