feat: add status screen with system info display

This commit is contained in:
2026-02-20 02:11:21 -08:00
parent fd04dea8dd
commit ba8789797c
7 changed files with 110 additions and 5 deletions

View File

@@ -354,6 +354,18 @@ int DoorbellLogic::handleTouch(const TouchEvent& evt) {
return -1;
}
// Handle STATUS screen back button (lower right corner)
if(_state.screen == ScreenID::STATUS) {
int dispW = _display->width();
int dispH = _display->height();
// Back button area: lower right (dispW-60 to dispW, dispH-30 to dispH)
if(evt.x >= dispW - 60 && evt.y >= dispH - 30) {
Serial.printf("[%lu] [TOUCH] STATUS → DASHBOARD (back)\n", millis());
setScreen(ScreenID::DASHBOARD);
return -1;
}
}
// Draw debug crosshair at touch point
#ifdef DEBUG_MODE
if(_state.screen == ScreenID::DASHBOARD) {
@@ -380,7 +392,7 @@ int DoorbellLogic::handleTouch(const TouchEvent& evt) {
silenceAlert();
break;
case TileAction::STATUS:
heartbeat();
setScreen(ScreenID::STATUS);
break;
case TileAction::REBOOT:
flushStatus("REBOOT (tile)");

View File

@@ -3,7 +3,7 @@
enum class DeviceState { BOOTED, SILENT, ALERTING, SILENCED };
enum class ScreenID { BOOT, OFF, ALERT, DASHBOARD };
enum class ScreenID { BOOT, OFF, ALERT, DASHBOARD, STATUS };
enum class BootStage { SPLASH, INIT_DISPLAY, INIT_NETWORK, CONNECTING_WIFI, READY, DONE };
@@ -94,6 +94,8 @@ inline const char* screenIdStr(ScreenID s) {
return "ALERT";
case ScreenID::DASHBOARD:
return "DASHBOARD";
case ScreenID::STATUS:
return "STATUS";
}
return "?";
}