Drone Status Menue: rohe GPS-Hoehe im Altitude-Feld ergaenzt

MSP_RAW_GPS liefert bereits eine eigene Hoehe (gpsSol.llh.alt, Offset 10,
u16 Meter) - bislang ungenutzt/uebersprungen. Jetzt als eigenes Feld
(MspGpsReading.altitudeM -> TelemetryFrame.gpsAltitudeM) geparst und im
selben "Altitude"-Feld wie die bisherige barometrisch/GPS-fusionierte
Schaetzung angezeigt ("120 m (GPS 119 m)"), statt einer eigenen Kachel -
nur bei vorhandenem Fix angehaengt, analog zur bestehenden hasFix-Handhabung
bei GPS coordinates/HDOP.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Constantin Leue
2026-08-06 16:06:48 +02:00
co-authored by Claude Sonnet 5
parent 9cece7dbb6
commit 13e2827344
8 changed files with 38 additions and 3 deletions
+1
View File
@@ -15,6 +15,7 @@ TelemetryFrame _frame({
hasFix: hasFix,
numSat: numSat,
altitudeM: 100,
gpsAltitudeM: 100,
speedMs: 15,
headingDeg: 0,
armed: true,
@@ -7,9 +7,9 @@ import 'package:dmc_app/transport/msp/msp_telemetry_codec.dart';
void main() {
group('parseMspRawGps', () {
test('parst fixType, numSat, lat/lon (1e-7 deg), Speed (cm/s) und HDOP', () {
test('parst fixType, numSat, lat/lon (1e-7 deg), Hoehe, Speed (cm/s) und HDOP', () {
// fixType=2, numSat=9, lat=52.5200000 deg, lon=13.4050000 deg,
// alt=100m (ungenutzt), groundSpeed=1234 cm/s, groundCourse=900 (0.1deg,
// alt=100m, groundSpeed=1234 cm/s, groundCourse=900 (0.1deg,
// ungenutzt), hdop=120 (/100 = 1.2).
final data = ByteData(18);
data.setUint8(0, 2);
@@ -28,6 +28,7 @@ void main() {
expect(reading.numSat, 9);
expect(reading.lat, closeTo(52.52, 1e-9));
expect(reading.lon, closeTo(13.405, 1e-9));
expect(reading.altitudeM, closeTo(100, 1e-9));
expect(reading.speedMs, closeTo(12.34, 1e-9));
expect(reading.headingDeg, closeTo(90.0, 1e-9));
expect(reading.hdop, closeTo(1.2, 1e-9));
@@ -16,6 +16,7 @@ TelemetryFrame _frame({bool hasFix = true, int numSat = 10}) => TelemetryFrame(
hasFix: hasFix,
numSat: numSat,
altitudeM: 100,
gpsAltitudeM: 100,
speedMs: 15,
headingDeg: 0,
armed: false,