aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--remihap/remihap.ino49
1 files changed, 46 insertions, 3 deletions
diff --git a/remihap/remihap.ino b/remihap/remihap.ino
index 48123fb..d3c7d03 100644
--- a/remihap/remihap.ino
+++ b/remihap/remihap.ino
@@ -189,7 +189,8 @@ char maxDays[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 30, 30, 31};
int hours = 9;
int minutes = 15;
int seconds = 0;
-int day = 31;
+int day = 9;
+int weekdayIndex = 4;
int month = 7;
int year = 2020;
char time[17];
@@ -368,6 +369,43 @@ void alarmMenu(char key)
}
}
+/* Weekday menu */
+
+char selWeekdayIndex;
+
+void printWeekdayMenu() {
+ if (confirm) {
+ printToLCD(0, MSG_CONFIRM);
+ }
+ else {
+ printToLCD(0, MSG_DAY_NUM);
+ }
+ printToLCD(1, " ");
+}
+
+void weekdayMenu(char key) {
+ switch(key) {
+ case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7':
+ if(!confirm) {
+ selWeekdayIndex = key - '0';
+ confirm = true;
+ weekdayMenu('~');
+ }
+ break;
+ case '#':
+ if(confirm) {
+ confirm = false;
+ weekdayIndex = selWeekdayIndex;
+ weekdayMenu('*');
+ }
+ break;
+ case 'C': confirm = false; weekdayMenu('~'); break;
+ case '*': menu = mainMenu; menu('~'); break;
+ case '~': printWeekdayMenu(); break;
+ }
+}
+
/* Week menu */
bool waitForDayNum;
@@ -430,11 +468,12 @@ void alarmSettingsMenu(char key)
void mainMenu(char key) {
switch(key) {
case 'A': menu = alarmSettingsMenu; menu('~'); break;
+ case 'B': menu = weekdayMenu; menu('~'); break;
case '~':
- snprintf(time,17," %02i:%02i:%02i ", hours, minutes, seconds);
+ snprintf(time,17," %02i:%02i:%02i |A", hours, minutes, seconds);
printToLCD(0,time);
- snprintf(time,17," %02i/%02i/%04i ", day, month, year);
+ snprintf(time,17," %c %02i/%02i/%04i |B", weekLetters[weekdayIndex], day, month, year);
printToLCD(1,time);
}
}
@@ -487,8 +526,12 @@ void loop()
}
if (hours > 23) {
hours = 0;
+ weekdayIndex++;
day++;
}
+ if(weekdayIndex > 7) {
+ weekdayIndex = 1;
+ }
if (day > maxDays[month]) {
day = 1;
month++;