#ifndef FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_ #define FSFW_HOUSEKEEPING_PERIODICHOUSEKEEPINGHELPER_H_ #include "../timemanager/Clock.h" #include 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_ */