19 #include "time_tracker.h" 23 #define DAY_TICK_LENGTH (24 * 3600 * MS_TIMER_TICKS_MS(1000)) 25 #define NO_OF_MONTHS 12 30 time_tracker_ddmmyy_t log_date;
33 static uint32_t last_date[] = {0xff, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
35 static date_time_log_t date_time;
37 static uint32_t log_id;
42 if(date_time.log_date.mm == NO_OF_MONTHS &&
43 date_time.log_date.dd == last_date[NO_OF_MONTHS])
46 date_time.log_date.yy++;
48 last_date[2] = (date_time.log_date.yy%4 == 0) ? 29 : 28;
50 date_time.log_date.dd = 1;
51 date_time.log_date.mm = 1;
56 if(date_time.log_date.dd == last_date[date_time.log_date.mm])
59 date_time.log_date.mm++;
61 date_time.log_date.dd = 1;
66 date_time.log_date.dd++;
76 .entry_size =
sizeof(date_time_log_t),
77 .start_page = TIME_TRACKER_NVM_PAGE_USED_0,
78 .no_of_pages = TIME_TRACKER_NVM_NO_PAGES_USED,
83 log_id = nvm_logger_log_init (&log);
84 if(nvm_logger_is_log_empty (log_id) ==
false)
87 nvm_logger_fetch_tail_data (log_id, &date_time, 1);
91 date_time.log_time = TIME_TRACKER_TIME_NOT_SET;
99 memcpy(&date_time.log_date, p_date_ddmmyy,
sizeof(time_tracker_ddmmyy_t));
100 nvm_logger_feed_data (log_id, &date_time);
101 last_date[2] = (date_time.log_date.yy%4 == 0) ? 29 : 28;
109 date_time.log_time = (date_time.log_time + ticks);
110 if(date_time.log_time > DAY_TICK_LENGTH)
113 date_time.log_time = date_time.log_time - DAY_TICK_LENGTH;
116 nvm_logger_feed_data (log_id, &date_time);
127 return &date_time.log_date;
uint32_t time_tracker_init(uint32_t time_log)
Function to initiate the time tracker module.
time_tracker_ddmmyy_t * time_tracker_get_current_date()
Function to get current date.
void time_tracker_set_date_time(time_tracker_ddmmyy_t *p_date_ddmmyy, uint32_t time_s)
Function to set current time.
uint32_t time_tracker_get_current_time_s()
Function to get current time in ms.
#define MS_TIMER_TICKS_MS(ms)
void time_tracker_update_time(uint32_t ticks)
Function to update time.