Contains necessary classes and functions for ELEC351
loggingMaster/dateAndTime.cpp
- Committer:
- Luka_Danilovic
- Date:
- 2017-12-24
- Revision:
- 0:f44c89c33601
- Child:
- 1:4825c27dfbc9
File content as of revision 0:f44c89c33601:
#include "mbed.h" #include "dateAndTime.hpp" TDS_DT C_DT::getDT() // Returns TDS_DT Date & Time format { time_t secondsElapsed; // Object of type time_t struct tm *tempTimeInfo; // Pointer to a embeded structure containing calendar dates time(&secondsElapsed); // Get time is seconds since epoch. Also hope people are ready for UNIX milenium bug tempTimeInfo = localtime (&secondsElapsed); // Convert current epoch time to calendar time acounting for timezones & daylight saving // Reasign time components to custom data type this-> date_time.sec = tempTimeInfo->tm_sec; this-> date_time.min = tempTimeInfo->tm_min; this-> date_time.hr = tempTimeInfo->tm_hour; // Reasign date components to custom data type this-> date_time.day = tempTimeInfo->tm_mday; this-> date_time.mnt = 1+tempTimeInfo->tm_mon; // Months indexed at 1 this-> date_time.yr = 1900 + tempTimeInfo->tm_year; // Years since epoch return date_time; // Return custom data type containing Date & Time } void C_DT::setT(int hr, int min, int sec) // Updates RTC time { time_t secondsElapsed; // Object of type time_t struct tm *tempTimeInfo; // Pointer to a embeded structure containing calendar dates time(&secondsElapsed); // Get time is seconds since epoch. tempTimeInfo = localtime (&secondsElapsed); // Convert current epoch time to calendar time acounting for timezones & daylight saving tempTimeInfo->tm_sec = sec; // Update seconds tempTimeInfo->tm_min = min; // Update minutes tempTimeInfo->tm_hour = hr; // Update hours secondsElapsed = mktime(tempTimeInfo); // Convert to epoch time set_time(secondsElapsed); // Update RTC } void C_DT::setD(int yr, int mnt, int day) // Updates RTC date { time_t secondsElapsed; // Object of type time_t struct tm *tempTimeInfo; // Pointer to a embeded structure containing calendar dates time(&secondsElapsed); // Get time is seconds since epoch. tempTimeInfo = localtime (&secondsElapsed); // Convert current epoch time to calendar time acounting for timezones & daylight saving tempTimeInfo->tm_mday = day; // Update day tempTimeInfo->tm_mon = mnt - 1; // Update month / Indexed at 0 tempTimeInfo->tm_year = yr - 1900 ; // Update year / Years since epoch secondsElapsed = mktime(tempTimeInfo); // Convert to epoch time set_time(secondsElapsed); // Update RTC }