v2.7.3: Flight logbook safety net, radar/clock/timezone fixes
New: - Flight logbook safety net: disabled by default, requires confirming a full-screen warning before it can be turned on, and automatically switches off again after exactly 24 hours - survives restarts and power cycles (no valid enable timestamp = guaranteed off). Each activation now writes its own CSV file instead of endlessly appending to one growing file, and every file can be deleted individually from Logbook files. - Adjustable display brightness (10-100% in 10% steps, Menu -> System -> "Brightness") with a live preview. - About screen (Menu -> System -> "About") showing project name, description, and firmware version. Fixed: - Radar's red altitude band (>9100m/30000ft) no longer gets dimmed at night - the previous dim tone looked orange-brown and was hard to tell apart from yellow. Legend and markers are consistent again. - Radius change no longer leaves a stale "tail" trail behind each aircraft between the old and new position. - Splash screen no longer shows a time-of-day greeting that appeared too late in the boot sequence to be useful; the star animation now starts immediately instead of only near the end of boot. - Clock stayed on raw UTC after the first boot instead of local time (missing DST handling in some timezones) because the location wait loop skipped the timezone lookup once a location was already saved. - Header clock no longer leaves stale digit fragments behind the current time, most visible on the last minute digit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
#include "splash_screen.h"
|
||||
#include "menu_stars.h"
|
||||
#include "i18n.h"
|
||||
#include <math.h>
|
||||
|
||||
namespace SplashScreen {
|
||||
@@ -132,30 +131,6 @@ void begin(TFT_eSPI& tft) {
|
||||
tft.setTextSize(1);
|
||||
}
|
||||
|
||||
void showGreeting(TFT_eSPI& tft) {
|
||||
// Ohne per NTP synchronisierte Uhrzeit koennen wir die Tageszeit nicht
|
||||
// bestimmen - dann lieber nichts anzeigen als zu raten (gleiches Muster
|
||||
// wie bei der Nachtdimmung in main.cpp::isNightDimHours()).
|
||||
time_t now = time(nullptr);
|
||||
if (now <= 8 * 3600 * 2) return;
|
||||
|
||||
struct tm tmNow;
|
||||
localtime_r(&now, &tmNow);
|
||||
int h = tmNow.tm_hour;
|
||||
|
||||
StringId greetingId;
|
||||
if (h < 12) greetingId = StringId::SPLASH_GREETING_MORNING;
|
||||
else if (h < 18) greetingId = StringId::SPLASH_GREETING_DAY;
|
||||
else greetingId = StringId::SPLASH_GREETING_EVENING;
|
||||
|
||||
int16_t cx = tft.width() / 2;
|
||||
tft.setTextDatum(MC_DATUM);
|
||||
tft.setTextColor(TFT_DARKGREEN, TFT_BLACK);
|
||||
tft.setTextSize(1);
|
||||
tft.drawString(I18n::t(greetingId), cx, 84);
|
||||
tft.setTextDatum(TL_DATUM);
|
||||
}
|
||||
|
||||
void setStatusLine(TFT_eSPI& tft, uint8_t slot, const String& text, uint16_t color) {
|
||||
if (slot >= MAX_STATUS_LINES) return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user