31 lines
1.1 KiB
C++
31 lines
1.1 KiB
C++
#ifndef MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_
|
|
#define MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_
|
|
|
|
#include <fsfw/objectmanager/SystemObject.h>
|
|
#include <fsfw/tasks/ExecutableObjectIF.h>
|
|
#include <mission/com/TmStoreTaskBase.h>
|
|
#include <mission/com/VirtualChannel.h>
|
|
#include <mission/tmtc/PersistentTmStoreWithTmQueue.h>
|
|
|
|
class PersistentSingleTmStoreTask : public TmStoreTaskBase, public ExecutableObjectIF {
|
|
public:
|
|
PersistentSingleTmStoreTask(object_id_t objectId, StorageManagerIF& ipcStore,
|
|
PersistentTmStoreWithTmQueue& storeWithQueue, VirtualChannel& channel,
|
|
Event eventIfDumpDone, Event eventIfCancelled,
|
|
SdCardMountedIF& sdcMan);
|
|
|
|
ReturnValue_t performOperation(uint8_t opCode) override;
|
|
|
|
private:
|
|
PersistentTmStoreWithTmQueue& storeWithQueue;
|
|
DumpContext dumpContext;
|
|
Countdown tcHandlingCd = Countdown(400);
|
|
Countdown graceDelayDuringDumping = Countdown(100);
|
|
|
|
bool initStoresIfPossible() override;
|
|
|
|
void startTransition(Mode_t mode, Submode_t submode) override;
|
|
};
|
|
|
|
#endif /* MISSION_TMTC_PERSISTENTSINGLETMSTORETASK_H_ */
|