modes for VC/stores
This commit is contained in:
42
mission/com/PersistentLogTmStoreTask.h
Normal file
42
mission/com/PersistentLogTmStoreTask.h
Normal file
@ -0,0 +1,42 @@
|
||||
#ifndef MISSION_TMTC_PERSISTENTLOGTMSTORETASK_H_
|
||||
#define MISSION_TMTC_PERSISTENTLOGTMSTORETASK_H_
|
||||
|
||||
#include <fsfw/objectmanager/SystemObject.h>
|
||||
#include <fsfw/storagemanager/StorageManagerIF.h>
|
||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||
#include <fsfw/tmtcservices/AcceptsTelemetryIF.h>
|
||||
#include <mission/com/TmStoreTaskBase.h>
|
||||
#include <mission/com/VirtualChannelWithQueue.h>
|
||||
#include <mission/genericFactory.h>
|
||||
#include <mission/tmtc/PersistentTmStore.h>
|
||||
#include <mission/tmtc/PersistentTmStoreWithTmQueue.h>
|
||||
|
||||
struct LogStores {
|
||||
LogStores(PersistentTmStores& stores)
|
||||
: okStore(*stores.okStore), notOkStore(*stores.notOkStore), miscStore(*stores.miscStore) {}
|
||||
PersistentTmStoreWithTmQueue& okStore;
|
||||
PersistentTmStoreWithTmQueue& notOkStore;
|
||||
PersistentTmStoreWithTmQueue& miscStore;
|
||||
};
|
||||
|
||||
class PersistentLogTmStoreTask : public TmStoreTaskBase, public ExecutableObjectIF {
|
||||
public:
|
||||
PersistentLogTmStoreTask(object_id_t objectId, StorageManagerIF& ipcStore, LogStores tmStore,
|
||||
VirtualChannel& channel, SdCardMountedIF& sdcMan);
|
||||
|
||||
ReturnValue_t performOperation(uint8_t opCode) override;
|
||||
|
||||
private:
|
||||
LogStores stores;
|
||||
DumpContext okStoreContext;
|
||||
DumpContext notOkStoreContext;
|
||||
DumpContext miscStoreContext;
|
||||
Countdown tcHandlingCd = Countdown(400);
|
||||
Countdown graceDelayDuringDumping = Countdown(200);
|
||||
bool someFileWasSwapped = false;
|
||||
|
||||
bool initStoresIfPossible() override;
|
||||
void startTransition(Mode_t mode, Submode_t submode) override;
|
||||
};
|
||||
|
||||
#endif /* MISSION_TMTC_PERSISTENTLOGTMSTORETASK_H_ */
|
Reference in New Issue
Block a user