1
0
forked from fsfw/fsfw
Files
action
container
contrib
controller
coordinates
datalinklayer
datapool
devicehandlers
events
fdir
globalfunctions
health
internalError
ipc
memory
modes
HasModesIF.h
ModeHelper.cpp
ModeHelper.h
ModeMessage.cpp
ModeMessage.h
monitoring
objectmanager
osal
parameters
power
returnvalues
rmap
serialize
serviceinterface
storagemanager
subsystem
tasks
tcdistribution
thermal
timemanager
tmstorage
tmtcpacket
tmtcservices
.gitignore
LICENSE
NOTICE
framework.mk
fsfw/modes/ModeHelper.h
Ulrich Mohr 575f70ba03 updating code from Flying Laptop
This is the framework of Flying Laptop OBSW version A.13.0.
2018-07-12 16:29:32 +02:00

50 lines
1.0 KiB
C++

#ifndef MODEHELPER_H_
#define MODEHELPER_H_
#include <framework/modes/ModeMessage.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/timemanager/Countdown.h>
class HasModesIF;
class ModeHelper {
public:
MessageQueueId_t theOneWhoCommandedAMode;
Mode_t commandedMode;
Submode_t commandedSubmode;
ModeHelper(HasModesIF *owner);
virtual ~ModeHelper();
ReturnValue_t handleModeCommand(CommandMessage *message);
/**
*
* @param parentQueue the Queue id of the parent object. Set to 0 if no parent present
*/
void setParentQueue(MessageQueueId_t parentQueueId);
ReturnValue_t initialize(MessageQueueId_t parentQueueId);
ReturnValue_t initialize(void); //void is there to stop eclipse CODAN from falsely reporting an error
void modeChanged(Mode_t mode, Submode_t submode);
void startTimer(uint32_t timeoutMs);
bool isTimedOut();
bool isForced();
void setForced(bool forced);
protected:
HasModesIF *owner;
MessageQueueId_t parentQueueId;
Countdown countdown;
bool forced;
};
#endif /* MODEHELPER_H_ */