Release v3.6.3: OTA reliability + watchdog fix + WebUI live radar
Fixes a watchdog reset that could crash the device after many hours of continuous flight logging: yield() alone doesn't reliably feed the task watchdog (it only yields to the idle task when another equal-or-higher-priority task is actually ready to run), so long CSV scans in flight_logbook.cpp now use delay(1) instead, in countLinesFast(), loadSeenFromCurrentFile(), and todayMaxAltitude(). Bundles all OTA reliability and WebUI live radar work already committed since v3.6.0 (title-overflow fix, OTA diagnostic logging, NetTask pause/resume during updates, WebUI radar compass/click/ radius/starfield enhancements). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,7 @@ namespace Config {
|
||||
// CLAUDE.md-Workflow "Standard-Workflow: Push & Release") - erscheint
|
||||
// im Info-Screen (Menue > System > Info) und muss zum jeweiligen
|
||||
// Git-Tag passen.
|
||||
constexpr const char* APP_VERSION = "3.6.2";
|
||||
constexpr const char* APP_VERSION = "3.6.3";
|
||||
|
||||
// Display-Helligkeit (Menue > System > Helligkeit), in Prozent.
|
||||
// MIN bewusst nicht 0 - ein komplett dunkles Display koennte sonst wie
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace {
|
||||
if (buf[i] == '\n') lines++;
|
||||
}
|
||||
blocksRead++;
|
||||
if (blocksRead % 8 == 0) yield();
|
||||
if (blocksRead % 8 == 0) delay(1);
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
@@ -141,7 +141,7 @@ namespace {
|
||||
}
|
||||
}
|
||||
blocksRead++;
|
||||
if (blocksRead % 8 == 0) yield();
|
||||
if (blocksRead % 8 == 0) delay(1);
|
||||
}
|
||||
f.close();
|
||||
}
|
||||
@@ -284,6 +284,7 @@ TopAltitude todayMaxAltitude() {
|
||||
if (!f) return result;
|
||||
|
||||
bool firstLine = true;
|
||||
uint32_t lineIdx = 0;
|
||||
while (f.available()) {
|
||||
String line = f.readStringUntil('\n');
|
||||
if (firstLine) { firstLine = false; continue; } // CSV-Header ueberspringen
|
||||
@@ -315,7 +316,8 @@ TopAltitude todayMaxAltitude() {
|
||||
strncpy(result.callsign, callsign.c_str(), sizeof(result.callsign) - 1);
|
||||
result.callsign[sizeof(result.callsign) - 1] = 0;
|
||||
}
|
||||
yield();
|
||||
lineIdx++;
|
||||
if (lineIdx % 16 == 0) delay(1);
|
||||
}
|
||||
f.close();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user