diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 86ab48c81e5496caa2fb05e7674831c28008b715..f25060c0a0ccdd77d361f71cffaeeb85e993991b 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -3,25 +3,6 @@ <option name="RIGHT_MARGIN" value="100" /> <option name="WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN" value="true" /> <Objective-C-extensions> - <file> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" /> - </file> - <class> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" /> - <option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" /> - </class> <extensions> <pair source="cpp" header="hpp" fileNamingConvention="PASCAL_CASE" /> <pair source="c" header="h" fileNamingConvention="NONE" /> diff --git a/inc/Helpers/TimeHelper.hpp b/inc/Helpers/TimeHelper.hpp index 099f3fccea9d5b150bcb145518cffeac50a5ba17..97a8d183964347e7cc61504b7118af8c231ed0ee 100644 --- a/inc/Helpers/TimeHelper.hpp +++ b/inc/Helpers/TimeHelper.hpp @@ -4,6 +4,10 @@ #include <cstdint> #include <Message.hpp> +#define SECONDS_PER_MINUTE 60 +#define SECONDS_PER_HOUR 3600 +#define SECONDS_PER_DAY 86400 + /** * The time and date provided from Real Time Clock(Real Time Clock). * @@ -37,9 +41,6 @@ struct TimeAndDate { */ class TimeHelper { private: - const uint8_t SecondsPerMinute = 60; - const uint16_t SecondsPerHour = 3600; - const uint32_t SecondsPerDay = 86400; const uint8_t DaysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /** diff --git a/src/Helpers/TimeHelper.cpp b/src/Helpers/TimeHelper.cpp index 81aa12a2e54b075ad8ad4b4f4f129ed00d46b19d..152596226b50651be38e49991de20109ed70115f 100644 --- a/src/Helpers/TimeHelper.cpp +++ b/src/Helpers/TimeHelper.cpp @@ -13,17 +13,17 @@ bool TimeHelper::IsLeapYear(uint16_t year) { uint32_t TimeHelper::mkUTCtime(struct TimeAndDate &TimeInfo) { uint32_t secs = 1546300800; // elapsed seconds from Unix epoch until 1/1/2019 00:00:00(UTC date) for (uint16_t y = 2019; y < TimeInfo.year; ++y) { - secs += (IsLeapYear(y) ? 366 : 365) * SecondsPerDay; + secs += (IsLeapYear(y) ? 366 : 365) * SECONDS_PER_DAY; } for (uint16_t m = 1; m < TimeInfo.month; ++m) { - secs += DaysOfMonth[m - 1] * SecondsPerDay; + secs += DaysOfMonth[m - 1] * SECONDS_PER_DAY; if (m == 2 && IsLeapYear(TimeInfo.year)) { - secs += SecondsPerDay; + secs += SECONDS_PER_DAY; } } - secs += (TimeInfo.day - 1) * SecondsPerDay; - secs += TimeInfo.hour * SecondsPerHour; - secs += TimeInfo.minute * SecondsPerMinute; + secs += (TimeInfo.day - 1) * SECONDS_PER_DAY; + secs += TimeInfo.hour * SECONDS_PER_HOUR; + secs += TimeInfo.minute * SECONDS_PER_MINUTE; secs += TimeInfo.second; return secs; } @@ -39,39 +39,39 @@ struct TimeAndDate TimeHelper::utcTime(uint32_t seconds) { TimeInfo.second = 0; // calculate years - while (seconds >= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SecondsPerDay) { - seconds -= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SecondsPerDay; + while (seconds >= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SECONDS_PER_DAY) { + seconds -= (IsLeapYear(TimeInfo.year) ? 366 : 365) * SECONDS_PER_DAY; TimeInfo.year++; } // calculate months uint8_t i = 0; - while (seconds >= (DaysOfMonth[i] * SecondsPerDay)) { + while (seconds >= (DaysOfMonth[i] * SECONDS_PER_DAY)) { TimeInfo.month++; - seconds -= (DaysOfMonth[i] * SecondsPerDay); + seconds -= (DaysOfMonth[i] * SECONDS_PER_DAY); i++; if (i == 1 && IsLeapYear(TimeInfo.year)) { - if (seconds <= (28 * SecondsPerDay)) { + if (seconds <= (28 * SECONDS_PER_DAY)) { break; } TimeInfo.month++; - seconds -= 29 * SecondsPerDay; + seconds -= 29 * SECONDS_PER_DAY; i++; } } // calculate days - TimeInfo.day = seconds/SecondsPerDay; - seconds -= TimeInfo.day * SecondsPerDay; + TimeInfo.day = seconds/SECONDS_PER_DAY; + seconds -= TimeInfo.day * SECONDS_PER_DAY; TimeInfo.day++; // add 1 day because we start count from 1 January(and not 0 January!) // calculate hours - TimeInfo.hour = seconds/SecondsPerHour; - seconds -= TimeInfo.hour * SecondsPerHour; + TimeInfo.hour = seconds/SECONDS_PER_HOUR; + seconds -= TimeInfo.hour * SECONDS_PER_HOUR; // calculate minutes - TimeInfo.minute = seconds/SecondsPerMinute; - seconds -= TimeInfo.minute * SecondsPerMinute; + TimeInfo.minute = seconds/SECONDS_PER_MINUTE; + seconds -= TimeInfo.minute * SECONDS_PER_MINUTE; // calculate seconds TimeInfo.second = seconds; @@ -92,13 +92,13 @@ uint64_t TimeHelper::generateCDStimeFormat(struct TimeAndDate &TimeInfo) { * The `DAY` segment, 16 bits as defined from standard. Actually the days passed since Unix * epoch */ - auto elapsedDays = static_cast<uint16_t>(seconds / 86400); + auto elapsedDays = static_cast<uint16_t>(seconds / SECONDS_PER_DAY); /** * The `ms of day` segment, 32 bits as defined in standard. The `ms of the day` and DAY` * should give the time passed since Unix epoch */ - auto msOfDay = static_cast<uint32_t >((seconds % 86400) * 1000); + auto msOfDay = static_cast<uint32_t >((seconds % SECONDS_PER_DAY) * 1000); uint64_t timeFormat = (static_cast<uint64_t>(elapsedDays) << 32 | msOfDay); @@ -113,7 +113,7 @@ struct TimeAndDate TimeHelper::parseCDStimeFormat(const uint8_t *data) { (static_cast<uint32_t >(data[4])) << 8 | static_cast<uint32_t >(data[5]); - uint32_t seconds = elapsedDays * 86400 + msOfDay / 1000; + uint32_t seconds = elapsedDays * SECONDS_PER_DAY + msOfDay / 1000; return Access.utcTime(seconds); }