display date

This commit is contained in:
Nicu Hodos 2024-10-26 16:36:40 +02:00
parent a2e6469903
commit 8e50f89a72
2 changed files with 38 additions and 2 deletions

View File

@ -65,6 +65,15 @@ namespace Devices {
}
}).build()
)
.addSecondary(
Builder<Button>::instance(new Button{"Display date", "display_date",
[](const char* msg) {
if (strcmp("PRESS", msg) == 0 && !Display::tDisplayDate.isEnabled()) {
Display::tDisplayDate.restart();
};
}
}).build()
)
.addSecondary(
Builder<Button>::instance(new Button{"Update time", "update_time",
[](const char* msg) {

View File

@ -15,10 +15,12 @@
#define BRIGHTNESS_DAY 11
#define SECONDS(value) value*1000
#define DISPLAY_SENSOR_ITERATIONS 2
#define DISPLAY_DELAY (SECONDS(2))
namespace Display {
void displayTime();
void displayDate();
void displayTemp();
void displayHumidity();
void drawTime();
@ -40,6 +42,15 @@ namespace Display {
tDisplaySensor.setIterations(DISPLAY_SENSOR_ITERATIONS * 2);
tDisplayTime.enableDelayed(tDisplaySensor.getInterval());
});
Task tDisplayDate(TASK_IMMEDIATE, TASK_ONCE, displayDate, &ts, false,
[]() {
tDisplayTime.disable();
tDisplaySensor.disable();
return true;
},
[]() {
tDisplayTime.enableDelayed(5 * TASK_SECOND);
});
bool hourFormat24 = false;
void (*hourFormatChangedCallback)();
@ -133,14 +144,30 @@ namespace Display {
tDisplayTime.disable();
clockDisplay.print(value, HEX);
clockDisplay.writeDisplay();
tDisplayTime.enableDelayed(SECONDS(2));
tDisplayTime.enableDelayed(DISPLAY_DELAY);
}
void displayText(const char c[]) {
tDisplayTime.disable();
clockDisplay.println(c);
clockDisplay.writeDisplay();
tDisplayTime.enableDelayed(SECONDS(2));
tDisplayTime.enableDelayed(DISPLAY_DELAY);
}
unordered_map<char, const char*> daysOfWeek = {
{1, "So"},
{2, "Mo"},
{3, "Di"},
{4, "Mi"},
{5, "Do"},
{6, "Fr"},
{7, "Sa"},
};
void displayDate() {
char date[5];
sprintf(date, "%2s%2u", daysOfWeek[weekday()], day());
clockDisplay.println(date);
clockDisplay.writeDisplay();
}
void changeHourFormat24(bool format24) {