Plymouth ELEC351 Group T / Mbed OS ELEC351

Dependencies:   BME280 BMP280 TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers TIME.cpp Source File

TIME.cpp

00001 #include "TIME.hpp"
00002 
00003 
00004 using namespace std;
00005 
00006 Mutex Time_Lock;
00007 
00008 int current_time_global = 0;
00009 int new_time = 0;
00010 
00011 int get_current_time()              //Get Current Time
00012 {
00013     Time_Lock.lock();
00014     current_time_global = time(0);
00015     Time_Lock.unlock();
00016     return current_time_global;
00017 }
00018 
00019 void set_new_date(int days, int months, int years)
00020 {
00021     time_t Time = time(NULL);
00022     tm* Time_Pointer = localtime(&Time); 
00023     set_time(get_current_time() - year*(Time_Pointer->tm_year - 70) + year*(years - 1970));
00024     set_time(get_current_time() - month*Time_Pointer->tm_mon + month*(months - 1));
00025     set_time(get_current_time() - day*Time_Pointer->tm_mday + day*days);
00026 }
00027 
00028 void set_new_time(int hours, int minutes, int seconds)
00029 {
00030     time_t Time = time(NULL);
00031     tm* Time_Pointer = localtime(&Time); 
00032     set_time(get_current_time() - second*Time_Pointer->tm_sec + second*seconds);
00033     set_time(get_current_time() - minute*Time_Pointer->tm_min + minute*minutes);
00034     set_time(get_current_time() - hour*Time_Pointer->tm_hour + hour*hours);    
00035 }
00036 
00037 void Add_Second()                   //Seconds to Seconds
00038 {
00039     Time_Lock.lock();
00040     new_time = time(0) + 1;
00041     set_time(new_time);
00042     Time_Lock.unlock();    
00043 }
00044 
00045 void Subtract_Second()
00046 {
00047     Time_Lock.lock();
00048     new_time = time(0) - 1;
00049     set_time(new_time);
00050     Time_Lock.unlock();    
00051 }
00052 
00053 void Add_Minute()                   //Minutes to Seconds
00054 {
00055     Time_Lock.lock();
00056     new_time = time(0) + 60;
00057     set_time(new_time);  
00058     Time_Lock.unlock();  
00059 }
00060 
00061 void Subtract_Minute()
00062 {
00063     Time_Lock.lock();
00064     new_time = time(0) - 60;
00065     set_time(new_time);
00066     Time_Lock.unlock();
00067 }
00068 
00069 void Add_Hour()                     //Hours to Seconds
00070 {
00071     Time_Lock.lock();
00072     new_time = time(0) + 3600;
00073     set_time(new_time); 
00074     Time_Lock.unlock();
00075 }
00076 
00077 void Subtract_Hour()
00078 {
00079     Time_Lock.lock();
00080     new_time = time(0) - 3600;
00081     set_time(new_time);  
00082     Time_Lock.unlock(); 
00083 }
00084 
00085 void Add_Day()                      //Days to Seconds
00086 {
00087     Time_Lock.lock();
00088     new_time = time(0) + 86400;
00089     set_time(new_time); 
00090     Time_Lock.unlock(); 
00091 }
00092 
00093 void Subtract_Day()
00094 {
00095     Time_Lock.lock();
00096     new_time = time(0) - 86400;
00097     set_time(new_time);
00098     Time_Lock.unlock();  
00099 }
00100 
00101 void Add_Month()                   //Months to Seconds
00102 {
00103     Time_Lock.lock();
00104     new_time = time(0) + 2629743;
00105     set_time(new_time);  
00106     Time_Lock.unlock();
00107 }
00108 
00109 void Subtract_Month()
00110 {
00111     Time_Lock.lock();
00112     new_time = time(0) - 2629743;
00113     set_time(new_time);  
00114     Time_Lock.unlock();
00115 }
00116 
00117 void Add_Year()                     //Years to Seconds
00118 {
00119     Time_Lock.lock();
00120     new_time = time(0) + 31556926;
00121     set_time(new_time); 
00122     Time_Lock.unlock();    
00123 }
00124 
00125 void Subtract_Year()
00126 {
00127     Time_Lock.lock();
00128     new_time = time(0) - 31556926;
00129     set_time(new_time);  
00130     Time_Lock.unlock();   
00131 }