rtc: Remove custom encoding

This commit is contained in:
CTCaer 2020-05-05 19:16:16 +03:00
parent 822e0dcd98
commit 5fe84a78ac
6 changed files with 18 additions and 62 deletions

View file

@ -119,7 +119,7 @@ void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time)
time->weekday = 0; //! TODO. time->weekday = 0; //! TODO.
} }
u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding) u32 max77620_rtc_date_to_epoch(const rtc_time_t *time)
{ {
u32 year, month, epoch; u32 year, month, epoch;
@ -128,39 +128,17 @@ u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding)
//Month of year //Month of year
month = time->month; month = time->month;
if (!hos_encoding) // Month/Year offset.
if(month < 3)
{ {
// Month/Year offset. month += 12;
if(month < 3) year--;
{
month += 12;
year--;
}
}
else
{
year -= 2000;
month++;
// Month/Year offset.
if(month < 3)
{
month += 9;
year--;
}
else
month -= 3;
} }
epoch = (365 * year) + (year >> 2) - (year / 100) + (year / 400); // Years to days. epoch = (365 * year) + (year >> 2) - (year / 100) + (year / 400); // Years to days.
if (!hos_encoding) epoch += (30 * month) + (3 * (month + 1) / 5) + time->day; // Months to days.
{ epoch -= 719561; // Epoch time is 1/1/1970.
epoch += (30 * month) + (3 * (month + 1) / 5) + time->day; // Months to days.
epoch -= 719561; // Epoch time is 1/1/1970.
}
else
epoch += (30 * month) + ((3 * month + 2) / 5) + 59 + time->day; // Months to days.
epoch *= 86400; // Days to seconds. epoch *= 86400; // Days to seconds.
epoch += (3600 * time->hour) + (60 * time->min) + time->sec; // Add hours, minutes and seconds. epoch += (3600 * time->hour) + (60 * time->min) + time->sec; // Add hours, minutes and seconds.

View file

@ -72,6 +72,6 @@ typedef struct _rtc_time_t {
void max77620_rtc_get_time(rtc_time_t *time); void max77620_rtc_get_time(rtc_time_t *time);
void max77620_rtc_stop_alarm(); void max77620_rtc_stop_alarm();
void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time); void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time);
u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding); u32 max77620_rtc_date_to_epoch(const rtc_time_t *time);
#endif /* _MFD_MAX77620_RTC_H_ */ #endif /* _MFD_MAX77620_RTC_H_ */

View file

@ -1145,7 +1145,7 @@ static void _update_status_bar(void *params)
max77620_rtc_get_time(&time); max77620_rtc_get_time(&time);
if (n_cfg.timeoff) if (n_cfg.timeoff)
{ {
u32 epoch = (u32)((s32)max77620_rtc_date_to_epoch(&time, true) + (s32)n_cfg.timeoff); u32 epoch = (u32)((s32)max77620_rtc_date_to_epoch(&time) + (s32)n_cfg.timeoff);
max77620_rtc_epoch_to_date(epoch, &time); max77620_rtc_epoch_to_date(epoch, &time);
} }
soc_temp = tmp451_get_soc_temp(false); soc_temp = tmp451_get_soc_temp(false);

View file

@ -54,7 +54,7 @@ DWORD get_fattime (
max77620_rtc_get_time(&time); max77620_rtc_get_time(&time);
if (n_cfg.timeoff) if (n_cfg.timeoff)
{ {
u32 epoch = (u32)((s32)max77620_rtc_date_to_epoch(&time, true) + (s32)n_cfg.timeoff); u32 epoch = (u32)((s32)max77620_rtc_date_to_epoch(&time) + (s32)n_cfg.timeoff);
max77620_rtc_epoch_to_date(epoch, &time); max77620_rtc_epoch_to_date(epoch, &time);
} }

View file

@ -119,7 +119,7 @@ void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time)
time->weekday = 0; //! TODO. time->weekday = 0; //! TODO.
} }
u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding) u32 max77620_rtc_date_to_epoch(const rtc_time_t *time)
{ {
u32 year, month, epoch; u32 year, month, epoch;
@ -128,39 +128,17 @@ u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding)
//Month of year //Month of year
month = time->month; month = time->month;
if (!hos_encoding) // Month/Year offset.
if(month < 3)
{ {
// Month/Year offset. month += 12;
if(month < 3) year--;
{
month += 12;
year--;
}
}
else
{
year -= 2000;
month++;
// Month/Year offset.
if(month < 3)
{
month += 9;
year--;
}
else
month -= 3;
} }
epoch = (365 * year) + (year >> 2) - (year / 100) + (year / 400); // Years to days. epoch = (365 * year) + (year >> 2) - (year / 100) + (year / 400); // Years to days.
if (!hos_encoding) epoch += (30 * month) + (3 * (month + 1) / 5) + time->day; // Months to days.
{ epoch -= 719561; // Epoch time is 1/1/1970.
epoch += (30 * month) + (3 * (month + 1) / 5) + time->day; // Months to days.
epoch -= 719561; // Epoch time is 1/1/1970.
}
else
epoch += (30 * month) + ((3 * month + 2) / 5) + 59 + time->day; // Months to days.
epoch *= 86400; // Days to seconds. epoch *= 86400; // Days to seconds.
epoch += (3600 * time->hour) + (60 * time->min) + time->sec; // Add hours, minutes and seconds. epoch += (3600 * time->hour) + (60 * time->min) + time->sec; // Add hours, minutes and seconds.

View file

@ -72,6 +72,6 @@ typedef struct _rtc_time_t {
void max77620_rtc_get_time(rtc_time_t *time); void max77620_rtc_get_time(rtc_time_t *time);
void max77620_rtc_stop_alarm(); void max77620_rtc_stop_alarm();
void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time); void max77620_rtc_epoch_to_date(u32 epoch, rtc_time_t *time);
u32 max77620_rtc_date_to_epoch(const rtc_time_t *time, bool hos_encoding); u32 max77620_rtc_date_to_epoch(const rtc_time_t *time);
#endif /* _MFD_MAX77620_RTC_H_ */ #endif /* _MFD_MAX77620_RTC_H_ */