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.