Fix uptime on Device Focused page to actually detail

This commit is contained in:
Jason P 2025-06-03 19:22:44 -05:00
parent f1cebe9d1d
commit c847ae0509

View File

@ -576,29 +576,21 @@ void drawDeviceFocused(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t
((rows == 4) ? compactFirstLine : ((SCREEN_HEIGHT > 64) ? compactFirstLine : moreCompactFirstLine)) + 2, nodeStatus, ((rows == 4) ? compactFirstLine : ((SCREEN_HEIGHT > 64) ? compactFirstLine : moreCompactFirstLine)) + 2, nodeStatus,
-1, false, "online"); -1, false, "online");
char uptimeStr[32] = "";
uint32_t uptime = millis() / 1000; uint32_t uptime = millis() / 1000;
char uptimeStr[6]; uint32_t days = uptime / 86400;
uint32_t minutes = uptime / 60, hours = minutes / 60, days = hours / 24; uint32_t hours = (uptime % 86400) / 3600;
uint32_t mins = (uptime % 3600) / 60;
if (days > 365) { // Show as "Up: 2d 3h", "Up: 5h 14m", or "Up: 37m"
snprintf(uptimeStr, sizeof(uptimeStr), "?"); if (days)
} else { snprintf(uptimeStr, sizeof(uptimeStr), " Up: %ud %uh", days, hours);
snprintf(uptimeStr, sizeof(uptimeStr), "%u%c", else if (hours)
days ? days snprintf(uptimeStr, sizeof(uptimeStr), " Up: %uh %um", hours, mins);
: hours ? hours else
: minutes ? minutes snprintf(uptimeStr, sizeof(uptimeStr), " Uptime: %um", mins);
: (int)uptime, display->drawString(SCREEN_WIDTH - display->getStringWidth(uptimeStr),
days ? 'd'
: hours ? 'h'
: minutes ? 'm'
: 's');
}
char uptimeFullStr[16];
snprintf(uptimeFullStr, sizeof(uptimeFullStr), "Uptime: %s", uptimeStr);
display->drawString(SCREEN_WIDTH - display->getStringWidth(uptimeFullStr),
((rows == 4) ? compactFirstLine : ((SCREEN_HEIGHT > 64) ? compactFirstLine : moreCompactFirstLine)), ((rows == 4) ? compactFirstLine : ((SCREEN_HEIGHT > 64) ? compactFirstLine : moreCompactFirstLine)),
uptimeFullStr); uptimeStr);
// === Second Row: Satellites and Voltage === // === Second Row: Satellites and Voltage ===
config.display.heading_bold = false; config.display.heading_bold = false;