// // Created by robtor on 05.01.23. // #ifndef FLOATPUMP_CONFIG_STORE_H #define FLOATPUMP_CONFIG_STORE_H #include namespace floatpump { class Config_Store { public: Config_Store(); void saveToFlash(); void resetDefaults(); void loadFromFlash(); template class Config_Object { public: Config_Object(T initialValue) : m_data(initialValue) {}; T getValue() { return m_data; } void setValue(T newValue) { m_data = newValue; } T *getLink() { return &m_data; } private: T m_data; }; Config_Object TankCalibLow = Config_Object(0); Config_Object TankCalibHigh = Config_Object(65535); Config_Object TankMinLevel = Config_Object(20); Config_Object TankHysteresis = Config_Object(5); Config_Object TankCooldown = Config_Object(5); Config_Object TankZeroLevelCM = Config_Object(0); Config_Object TankFullLevelCM = Config_Object(200); Config_Object TankPumpInvert = Config_Object(false); Config_Object RefillEnable = Config_Object(false); Config_Object RefillBlockInvert = Config_Object(false); Config_Object RefillBlockEnable = Config_Object(true); Config_Object RefillBelow = Config_Object(false); Config_Object RefillHysteresis = Config_Object(false); Config_Object RefillCooldown = Config_Object(60); }; } // floatpump #endif //FLOATPUMP_CONFIG_STORE_H