added periodic helper
This commit is contained in:
35
housekeeping/PeriodicHousekeepingHelper.h
Normal file
35
housekeeping/PeriodicHousekeepingHelper.h
Normal file
@ -0,0 +1,35 @@
|
||||
#ifndef FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_
|
||||
#define FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_
|
||||
|
||||
#include "../timemanager/Clock.h"
|
||||
#include <cstdint>
|
||||
|
||||
class LocalPoolDataSetBase;
|
||||
|
||||
class PeriodicHousekeepingHelper {
|
||||
public:
|
||||
PeriodicHousekeepingHelper(LocalPoolDataSetBase* owner);
|
||||
|
||||
void initialize(float collectionInterval,
|
||||
dur_millis_t minimumPeriodicInterval, bool isDiagnostics,
|
||||
uint8_t nonDiagIntervalFactor);
|
||||
|
||||
void changeCollectionInterval(float newInterval);
|
||||
float getCollectionIntervalInSeconds();
|
||||
bool checkOpNecessary();
|
||||
private:
|
||||
LocalPoolDataSetBase* owner = nullptr;
|
||||
|
||||
|
||||
uint32_t intervalSecondsToInterval(float collectionIntervalSeconds);
|
||||
float intervalToIntervalSeconds(uint32_t collectionInterval);
|
||||
|
||||
dur_millis_t minimumPeriodicInterval = 0;
|
||||
uint32_t internalTickCounter = 1;
|
||||
uint32_t collectionIntervalTicks = 0;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_ */
|
Reference in New Issue
Block a user