#ifndef WATCHY_RTC_H #define WATCHY_RTC_H #include "config.h" #include #include #include namespace WatchFeatures { class RTC; } class WatchFeatures::RTC { public: void Get(tmElements_t & tm); void Set(tmElements_t tm); uint64_t GetTimestamp(); std::string GetDateString(); void SetTimer(); bool CheckWakeup(); // Checks to really wake up or not, also resets the timer after the initial sleep void Resync(); // Resync the timer cycle, both initially and after RTC resync static void OffsetTime(tmElements_t & tm, int offsetInSeconds); static unsigned int GetDayOfYear(tmElements_t & tm); static unsigned int DaysDifference(tmElements_t & tm1, tmElements_t & tm2); private: Rtc_Pcf8563 m_rtcPcf; static RTC_DATA_ATTR bool m_timerSet, m_initialTimer; }; #endif