Add flight mode and GPS fix type to drone status menu

MSP_RAW_GPS already reports a fixType byte (0=no fix, 1=2D, 2=3D) but
only a collapsed hasFix bool was surfaced past the parser. Thread
fixType through TelemetryFrame and show it as a color-coded field in
the status grid, alongside the already-parsed but previously unshown
flight mode string. Arming/Temperatures/Flight mode is now a 3-column
row, and GPS fix type/GPS satellites/GPS precision (HDOP) another.
This commit is contained in:
Constantin Leue
2026-08-06 22:38:11 +02:00
parent 539a6e4171
commit 0141cdb17d
6 changed files with 112 additions and 68 deletions
@@ -29,6 +29,7 @@ class TelemetryFrame {
required this.lat,
required this.lon,
required this.hasFix,
required this.fixType,
required this.numSat,
required this.altitudeM,
required this.gpsAltitudeM,
@@ -54,6 +55,13 @@ class TelemetryFrame {
final double lat;
final double lon;
final bool hasFix;
/// Roher `gpsFixType_e`-Wert aus `MSP_RAW_GPS` (`MspGpsReading.fixType` in
/// msp_telemetry_codec.dart): 0 = kein Fix, 1 = 2D, 2 = 3D. [hasFix] ist
/// bereits daraus abgeleitet (`fixType != 0`) - dieses Feld existiert nur
/// fuer die 2D/3D-Unterscheidung selbst (Doku: "GPS Fixtyp im Drone Status
/// Menue anzeigen").
final int fixType;
final int numSat;
/// Barometrisch/GPS-fusionierte Hoehe relativ zum Referenzpunkt der
@@ -102,6 +102,7 @@ class MockFlightControllerLink implements FlightControllerLink {
lat: lat,
lon: lon,
hasFix: true,
fixType: 2,
numSat: 12,
altitudeM: 120,
// Leicht abweichend von altitudeM statt identisch (Doku: rohe
@@ -137,6 +137,7 @@ class MspTelemetryPoller {
lat: gps.lat,
lon: gps.lon,
hasFix: gps.hasFix,
fixType: gps.fixType,
numSat: gps.numSat,
altitudeM: altitudeM,
gpsAltitudeM: gps.altitudeM,