From 04af54e7c8029f05a999f85afa0bcc194f654fed Mon Sep 17 00:00:00 2001 From: BlackMark Date: Fri, 15 May 2020 10:20:56 +0200 Subject: [PATCH] Remove C time API glue from driver --- systime.cpp | 107 ---------------------------------------------------- systime.h | 29 -------------- 2 files changed, 136 deletions(-) delete mode 100644 systime.cpp delete mode 100644 systime.h diff --git a/systime.cpp b/systime.cpp deleted file mode 100644 index 315f255..0000000 --- a/systime.cpp +++ /dev/null @@ -1,107 +0,0 @@ -#include "systime.h" - -////////////////////////////////////////////////////////////////////////// -// DST magic by Edgar Bonet -int SysTime::euDST( const time_t *pTime, int32_t *pZ ) -{ - static_cast( pZ ); - - uint32_t t = *pTime; - - if( static_cast( t >> 24 ) >= 194 ) - t -= 3029443200U; - - t = ( t + 655513200 ) / 604800 * 28; - - if( static_cast( t % 1461 ) < 856 ) - return ONE_HOUR; - - return 0; -} - -////////////////////////////////////////////////////////////////////////// -bool SysTime::init() -{ - twi_init_master(); - rtc_init(); - - if( !rtc_is_ds3231() ) - return false; - - set_zone( 1 * ONE_HOUR ); - set_dst( euDST ); - - syncSysTime(); - - return true; -} - -////////////////////////////////////////////////////////////////////////// -void SysTime::syncSysTime() -{ - tm sTime = getTime(); - set_system_time( mk_gmtime( &sTime ) ); -} - -////////////////////////////////////////////////////////////////////////// -bool SysTime::checkSync() -{ - time_t timeNow = time( nullptr ); - tm *ptmUTC = gmtime( &timeNow ); - - rtc_tm *ptmRtcTime = rtc_get_time(); - - if( ptmUTC->tm_sec != ptmRtcTime->sec || ptmUTC->tm_min != ptmRtcTime->min || ptmUTC->tm_hour != ptmRtcTime->hour ) - return false; - - if( ptmUTC->tm_mday != ptmRtcTime->mday || ( ptmUTC->tm_mon + 1 ) != ptmRtcTime->mon || ( ptmUTC->tm_year + 1900 ) != ptmRtcTime->year ) - return false; - - return true; -} - -////////////////////////////////////////////////////////////////////////// -void SysTime::tick() -{ - system_tick(); -} - -////////////////////////////////////////////////////////////////////////// -tm SysTime::getTime() -{ - tm sTime; - rtc_tm *ptmTime = rtc_get_time(); - - sTime.tm_sec = ptmTime->sec; - sTime.tm_min = ptmTime->min; - sTime.tm_hour = ptmTime->hour; - sTime.tm_mday = ptmTime->mday; - sTime.tm_mon = ptmTime->mon - 1; - sTime.tm_year = ptmTime->year - 1900; - sTime.tm_isdst = 0; - - time_t timeUTC = mk_gmtime( &sTime ); - sTime = *( gmtime( &timeUTC ) ); - - return sTime; -} - -////////////////////////////////////////////////////////////////////////// -void SysTime::setTime( const tm &sTime ) -{ - rtc_tm *pRtcTime = rtc_get_time(); - - pRtcTime->sec = sTime.tm_sec; - pRtcTime->min = sTime.tm_min; - pRtcTime->hour = sTime.tm_hour; - pRtcTime->mday = sTime.tm_mday; - pRtcTime->mon = sTime.tm_mon + 1; - pRtcTime->year = sTime.tm_year + 1900; - pRtcTime->wday = sTime.tm_wday + 1; - pRtcTime->am = ( sTime.tm_hour < 12 ) ? true : false; - pRtcTime->twelveHour = ( sTime.tm_hour == 0 ) ? 12 : ( ( sTime.tm_hour > 12 ) ? ( sTime.tm_hour - 12 ) : sTime.tm_hour ); - - rtc_set_time( pRtcTime ); - - syncSysTime(); -} \ No newline at end of file diff --git a/systime.h b/systime.h deleted file mode 100644 index 3e2803d..0000000 --- a/systime.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -* Copyright (c) by BlackMark 2017 -* Date 17/12/2016 -* Version 1.0 -*/ - -#ifndef SYSTIME_H -#define SYSTIME_H - -#include - -#include "twi.h" -#include "rtc.h" - -class SysTime -{ -private: - static int euDST( const time_t *pTime, int32_t *pZ ); - -public: - static bool init(); - static void syncSysTime(); - static bool checkSync(); - static void tick(); - static tm getTime(); - static void setTime( const tm &sTime ); -}; - -#endif \ No newline at end of file