Add WebUI live radar; mutex-protect AirlineFilter/AircraftWatchlist
The WebUI home page now shows a live radar canvas above the flight logbook, polling a new /radar.json endpoint every 3 seconds. It mirrors the device display: distance rings, aircraft colored by altitude, ground vehicles as squares, rotorcraft as diamonds, and emergency/watchlist/heavy-category rings in that priority. Applies the same range, hide-ground-vehicles, and airline filters as the device radar. AirlineFilter and AircraftWatchlist gain proper mutex protection around their in-memory arrays (previously only guarded around SD file I/O) since the new /lists WebUI pages reach them from Core 0 (NetTask) in addition to their existing Core 1 (menu screen) callers. Note: the "notable aircraft" military/government callsign-prefix marker is not implemented - Config::NOTABLE_CALLSIGN_PREFIXES was never defined anywhere in this project, on the device display or here. The "notable" ring currently fires on heavy-category aircraft only. Also documents the OTA-testing exception to the auto-flash rule in CLAUDE.md (build-only during Push & Release, so the test device stays on the previous version for OTA testing). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -199,7 +199,7 @@ static const char* const I18N_EN[] = {
|
||||
|
||||
"Logbook / WebUI",
|
||||
"Logbook / WebUI",
|
||||
"This web page lets you view, download and individually delete the flight logbook right from a browser. While connected to the same WiFi network, open a browser and go to:",
|
||||
"This web page shows a live radar with all currently visible aircraft at the top, and below it lets you view, download and individually delete the flight logbook right from a browser. While connected to the same WiFi network, open a browser and go to:",
|
||||
"No WiFi connection - the page is only reachable while connected to a network.",
|
||||
|
||||
"Weather",
|
||||
|
||||
Reference in New Issue
Block a user