Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ELEC351_Group_T by
TIME.cpp
00001 #include "TIME.hpp" 00002 00003 00004 using namespace std; 00005 00006 Mutex Time_Lock; //Declare MUTEX 00007 00008 int current_time_global = 0; //Declare required variable 00009 int new_time = 0; //Declare required variable 00010 00011 int get_current_time() //Get Current Time 00012 { 00013 Time_Lock.lock(); //Apply MUTEX lock 00014 current_time_global = time(0); //Get current time 00015 Time_Lock.unlock(); //Release MUTEX lock 00016 return current_time_global; //Return the current time 00017 } 00018 00019 void set_new_date(int days, int months, int years) //Set new date 00020 { 00021 Time_Lock.lock(); //Apply MUTEX lock 00022 time_t Time = time(NULL); //Get system time 00023 Time_Lock.unlock(); //Release MUTEX lock 00024 tm* Time_Pointer = localtime(&Time); //Create pointer to Time 00025 set_time(get_current_time() - year*(Time_Pointer->tm_year - 70) + year*(years - 1970)); //Set the year 00026 set_time(get_current_time() - month*Time_Pointer->tm_mon + month*(months - 1)); //Set the month 00027 set_time(get_current_time() - day*Time_Pointer->tm_mday + day*days); //Set the day 00028 } 00029 00030 void set_new_time(int hours, int minutes, int seconds) //Set new time 00031 { 00032 Time_Lock.lock(); //Apply MUTEX lock 00033 time_t Time = time(NULL); //Get system time 00034 Time_Lock.unlock(); //Release MUTEX lock 00035 tm* Time_Pointer = localtime(&Time); //Create pointer to Time 00036 set_time(get_current_time() - second*Time_Pointer->tm_sec + second*seconds); //Set the second 00037 set_time(get_current_time() - minute*Time_Pointer->tm_min + minute*minutes); //Set the minute 00038 set_time(get_current_time() - hour*Time_Pointer->tm_hour + hour*hours); //Set the hour 00039 } 00040 00041 void Add_Second() //Add one second to current time 00042 { 00043 Time_Lock.lock(); //Apply MUTEX lock 00044 new_time = time(0) + 1; //Calculate new time 00045 Time_Lock.unlock(); //Release MUTEX lock 00046 set_time(new_time); //Set new time 00047 } 00048 00049 void Subtract_Second() //Subtract one second from current time 00050 { 00051 Time_Lock.lock(); //Apply MUTEX lock 00052 new_time = time(0) - 1; //Calculate new time 00053 Time_Lock.unlock(); //Release MUTEX lock 00054 set_time(new_time); //Set new time 00055 } 00056 00057 void Add_Minute() //Add one minute to the current time 00058 { 00059 Time_Lock.lock(); //Apply MUTEX lock 00060 new_time = time(0) + 60; //Calculate new time 00061 Time_Lock.unlock(); //Release MUTEX lock 00062 set_time(new_time); //Set new time 00063 } 00064 00065 void Subtract_Minute() //Subtract one minute from current time 00066 { 00067 Time_Lock.lock(); //Apply MUTEX lock 00068 new_time = time(0) - 60; //Calculate new time 00069 Time_Lock.unlock(); //Release MUTEX lock 00070 set_time(new_time); //Set new time 00071 00072 } 00073 00074 void Add_Hour() //Add one hour to the current time 00075 { 00076 Time_Lock.lock(); //Apply MUTEX lock 00077 new_time = time(0) + 3600; //Calculate new time 00078 Time_Lock.unlock(); //Release MUTEX lock 00079 set_time(new_time); //Set new time 00080 } 00081 00082 void Subtract_Hour() //Subtract one hour from the current time 00083 { 00084 Time_Lock.lock(); //Apply MUTEX lock 00085 new_time = time(0) - 3600; //Calculate new time 00086 Time_Lock.unlock(); //Release MUTEX lock 00087 set_time(new_time); //Set new time 00088 } 00089 00090 void Add_Day() //Add one day to the current time 00091 { 00092 Time_Lock.lock(); //Apply MUTEX lock 00093 new_time = time(0) + 86400; //Calculate new time 00094 Time_Lock.unlock(); //Release MUTEX lock 00095 set_time(new_time); //Set new time 00096 } 00097 00098 void Subtract_Day() //Subtract one day from the current time 00099 { 00100 Time_Lock.lock(); //Apply MUTEX lock 00101 new_time = time(0) - 86400; //Calculate new time 00102 Time_Lock.unlock(); //Release MUTEX lock 00103 set_time(new_time); //Set new time 00104 } 00105 00106 void Add_Month() //Add one month to current time 00107 { 00108 Time_Lock.lock(); //Apply MUTEX lock 00109 new_time = time(0) + 2629743; //Calculate new time 00110 Time_Lock.unlock(); //Release MUTEX lock 00111 set_time(new_time); //Set new time 00112 } 00113 00114 void Subtract_Month() //Subtract one month from current time 00115 { 00116 Time_Lock.lock(); //Apply MUTEX lock 00117 new_time = time(0) - 2629743; //Calculate new time 00118 Time_Lock.unlock(); //Release MUTEX lock 00119 set_time(new_time); //Set new time 00120 } 00121 00122 void Add_Year() //Add one year to current time 00123 { 00124 Time_Lock.lock(); //Apply MUTEX lock 00125 new_time = time(0) + 31556926; //Calculate new time 00126 Time_Lock.unlock(); //Release MUTEX lock 00127 set_time(new_time); //Set new time 00128 } 00129 00130 void Subtract_Year() //Subtract one year from current time 00131 { 00132 Time_Lock.lock(); //Apply MUTEX lock 00133 new_time = time(0) - 31556926; //Calculate new time 00134 Time_Lock.unlock(); //Release MUTEX lock 00135 set_time(new_time); //Set new time 00136 }
Generated on Tue Jul 12 2022 22:52:51 by
