Baseline for testing
EditTimeMenu.cpp
- Committer:
- foxbrianr
- Date:
- 2019-07-25
- Revision:
- 3:8395f7ab6d3e
File content as of revision 3:8395f7ab6d3e:
#include "mbed.h" #include "EditTimeMenu.h" #include "TimeUtilities.h" RealTimeClock rtc; EditTimeMenu::EditTimeMenu(string id): Menu(id) { active_selection = 0; row=0; column=0; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo = localtime (&rawtime); hours = timeinfo->tm_hour; mins = timeinfo->tm_min; secs = timeinfo->tm_sec; years = timeinfo->tm_year + 1900; months = timeinfo->tm_mon + 1 ; days = timeinfo->tm_mday; } void EditTimeMenu::display(LCD * lcd) { char setTime = 1; char setDate = 1; char current[40]; time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo = localtime (&rawtime); if (!active_selection){ hours = timeinfo->tm_hour; mins = timeinfo->tm_min; secs = timeinfo->tm_sec; years = timeinfo->tm_year+1900; months = timeinfo->tm_mon + 1; days = timeinfo->tm_mday; lcd->setCursorMode (0) ; } else { // edit mode secs = timeinfo->tm_sec; lcd->setCursorMode (1) ; } switch(active_selection) { case 1: lcd->writeLine(0,"Set Time (hours) :"); break; case 2: lcd->writeLine(0,"Set Time (min) :"); break; case 3: lcd->writeLine(0,"Set Time (sec) :"); break; case 4: lcd->writeLine(0,"Set Date (month) :"); break; case 5: lcd->writeLine(0,"Set Date (day) :"); break; case 6: lcd->writeLine(0,"Set Date (year) :"); break; default: lcd->writeLine(0,"Current Time/Date :"); break; }; //rtc.GetTimeString(buf); //sprintf(current,"%02d:%02d:%02d", timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec); if (setTime) { sprintf(current,"%02d:%02d", hours,mins); lcd->writeLine(1,current); } if (setDate) { sprintf(current,"%02d/%02d/%02d", months, days, years); lcd->writeLine(2,current); } } void EditTimeMenu::pressMode() { // advance thru if (active_selection++ > 6 ) active_selection = 0; update_needed = 1; } void EditTimeMenu::pressSet() { struct tm t; t.tm_hour = hours; t.tm_min = mins; t.tm_sec = 0; t.tm_year = years - 1900; t.tm_mon = months - 1; t.tm_mday = days; // set the time set_time(mktime(&t)); // go back to normal display // --------------------------------- active_selection = 0; update_needed = 1; } void EditTimeMenu::pressUp() { switch(active_selection) { case 1: hours++;break; case 2: mins++;break; case 3: secs++;break; case 4: months++;break; case 5: days++;break; case 6: years++;break; default:break; } if (hours > 23) hours = 0; if (mins > 60) mins = 0; if (secs > 60) secs = 0; if (months > 12) months = 1; if (days > 31) days = 1; if (years > 2050) years =2011; update_needed = 1; } void EditTimeMenu::pressDown() { switch(active_selection) { case 1: hours--;break; case 2: mins--;break; case 3: secs--;break; case 4: months--;break; case 5: days--;break; case 6: years--;break; default:break; } if (hours < 0) hours += 23; if (mins < 0) mins += 60; if (secs < 0) secs += 60; if (months < 1) months += 12; if (days < 1) days += 31; if (years < 2011) years =2050; update_needed = 1; }