kopia lustrzana https://github.com/meshtastic/firmware
Added local Time to banner screen
rodzic
72f6fde772
commit
213a178d71
src/graphics
|
@ -2027,7 +2027,7 @@ static void drawDefaultScreen(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||
display->setColor(BLACK);
|
||||
}
|
||||
|
||||
// === TOP ROW: Battery, %, Voltage ===
|
||||
// === TOP ROW: Battery, %, Time ===
|
||||
int screenWidth = display->getWidth();
|
||||
|
||||
// Draw battery icon slightly inset from top
|
||||
|
@ -2036,23 +2036,45 @@ static void drawDefaultScreen(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||
// Calculate vertical center for text (centered in header row)
|
||||
int textY = y + (highlightHeight - FONT_HEIGHT_SMALL) / 2;
|
||||
|
||||
// Battery Percentage
|
||||
char percentStr[8];
|
||||
snprintf(percentStr, sizeof(percentStr), "%d%%", powerStatus->getBatteryChargePercent());
|
||||
|
||||
int batteryOffset = screenWidth > 128 ? 34 : 18;
|
||||
int percentX = x + xOffset + batteryOffset;
|
||||
display->drawString(percentX, textY, percentStr);
|
||||
if (isBold) display->drawString(percentX + 1, textY, percentStr);
|
||||
|
||||
// --- Voltage (Commented out) ---
|
||||
/*
|
||||
char voltStr[10];
|
||||
int batV = powerStatus->getBatteryVoltageMv() / 1000;
|
||||
int batCv = (powerStatus->getBatteryVoltageMv() % 1000) / 10;
|
||||
snprintf(voltStr, sizeof(voltStr), "%d.%02dV", batV, batCv);
|
||||
int voltX = SCREEN_WIDTH - xOffset - display->getStringWidth(voltStr);
|
||||
display->drawString(voltX, textY, voltStr);
|
||||
if (isBold) display->drawString(voltX + 1, textY, voltStr);
|
||||
*/
|
||||
|
||||
if (isBold) {
|
||||
display->drawString(percentX + 1, textY, percentStr);
|
||||
display->drawString(voltX + 1, textY, voltStr);
|
||||
// --- Local Time ---
|
||||
uint32_t rtc_sec = getValidTime(RTCQuality::RTCQualityDevice, true); // local time
|
||||
if (rtc_sec > 0) {
|
||||
long hms = rtc_sec % SEC_PER_DAY;
|
||||
hms = (hms + SEC_PER_DAY) % SEC_PER_DAY;
|
||||
|
||||
int hour = hms / SEC_PER_HOUR;
|
||||
int minute = (hms % SEC_PER_HOUR) / SEC_PER_MIN;
|
||||
|
||||
bool isPM = hour >= 12;
|
||||
hour = hour % 12;
|
||||
if (hour == 0) hour = 12;
|
||||
|
||||
char timeStr[10];
|
||||
snprintf(timeStr, sizeof(timeStr), "%d:%02d%s", hour, minute, isPM ? "PM" : "AM");
|
||||
|
||||
int timeX = SCREEN_WIDTH - xOffset - display->getStringWidth(timeStr);
|
||||
display->drawString(timeX, textY, timeStr);
|
||||
if (isBold) display->drawString(timeX + 1, textY, timeStr);
|
||||
}
|
||||
|
||||
display->setColor(WHITE);
|
||||
|
@ -2108,7 +2130,6 @@ static void drawDefaultScreen(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||
display->drawString(uptimeX, uptimeY, uptimeFullStr);
|
||||
}
|
||||
|
||||
|
||||
#if defined(ESP_PLATFORM) && defined(USE_ST7789)
|
||||
SPIClass SPI1(HSPI);
|
||||
#endif
|
||||
|
|
Ładowanie…
Reference in New Issue