refactor(display): split render into screen-specific draw methods

This commit is contained in:
2026-02-17 00:06:30 -08:00
parent 9f0e603215
commit 66b4e75174
4 changed files with 144 additions and 86 deletions

View File

@@ -17,38 +17,50 @@ enum class ScreenID {
struct ScreenState {
DeviceState deviceState = DeviceState::BOOTED;
ScreenID screen = ScreenID::BOOT;
ScreenID screen = ScreenID::BOOT;
String alertTitle;
String alertBody;
uint32_t alertStartMs = 0;
String alertTitle;
String alertBody;
uint32_t alertStartMs = 0;
uint32_t silenceStartMs = 0;
bool backlightOn = false;
int wifiRssi = 0;
String wifiSsid;
String ipAddr;
uint32_t uptimeMs = 0;
uint32_t lastPollMs = 0;
uint32_t lastHeartbeatMs= 0;
bool backlightOn = false;
int wifiRssi = 0;
String wifiSsid;
String ipAddr;
uint32_t uptimeMs = 0;
uint32_t lastPollMs = 0;
uint32_t lastHeartbeatMs = 0;
bool showDashboard = false;
};
inline const char* deviceStateStr(DeviceState s) {
inline const char* deviceStateStr(DeviceState s)
{
switch (s) {
case DeviceState::BOOTED: return "BOOTED";
case DeviceState::SILENT: return "SILENT";
case DeviceState::ALERTING: return "ALERTING";
case DeviceState::SILENCED: return "SILENCED";
case DeviceState::BOOTED:
return "BOOTED";
case DeviceState::SILENT:
return "SILENT";
case DeviceState::ALERTING:
return "ALERTING";
case DeviceState::SILENCED:
return "SILENCED";
}
return "?";
}
inline const char* screenIdStr(ScreenID s) {
inline const char* screenIdStr(ScreenID s)
{
switch (s) {
case ScreenID::BOOT: return "BOOT";
case ScreenID::OFF: return "OFF";
case ScreenID::ALERT: return "ALERT";
case ScreenID::DASHBOARD: return "DASHBOARD";
case ScreenID::BOOT:
return "BOOT";
case ScreenID::OFF:
return "OFF";
case ScreenID::ALERT:
return "ALERT";
case ScreenID::DASHBOARD:
return "DASHBOARD";
}
return "?";
}