add telemetry messages: rx link quality, battery percentage, flight mode, relative altitude

This commit is contained in:
Constantin Leue
2026-08-02 21:09:33 +02:00
parent 11f894919b
commit 35c4129eb7
9 changed files with 186 additions and 11 deletions
@@ -94,4 +94,48 @@ void main() {
expect(parseMspNavStatusActiveWaypoint(navStatusPayload(5)), 5);
});
});
group('parseMspNavMode/MspNavMode.formatted', () {
Uint8List navStatusPayload(int mode, int state) {
return Uint8List.fromList([mode, state, 0, 0, 0, 0, 0]);
}
test('mode 0 (None) ohne state', () {
final nav = parseMspNavMode(navStatusPayload(0, 0));
expect(nav.mode, 0);
expect(nav.state, 0);
expect(nav.formatted, 'Idle');
});
test('mode 3 (Nav/Waypoint) + state 5 (WP_ENROUTE)', () {
final nav = parseMspNavMode(navStatusPayload(3, 5));
expect(nav.formatted, 'Waypoint mission (en route to WP)');
});
test('mode 2 (RTH) + state 15 (RTH_CLIMB)', () {
final nav = parseMspNavMode(navStatusPayload(2, 15));
expect(nav.formatted, 'Return to home (climbing)');
});
test('unbekannter mode faellt auf Nummer zurueck', () {
final nav = parseMspNavMode(navStatusPayload(7, 0));
expect(nav.formatted, 'Unknown (7)');
});
});
group('parseMspInavAnalogBatteryPercent', () {
test('liest Batterie-Prozent an Offset 21', () {
final payload = Uint8List(24);
payload[21] = 42;
expect(parseMspInavAnalogBatteryPercent(payload), 42);
});
});
group('parseMspLinkQuality', () {
test('liest Linkqualitaet an Offset 1', () {
final payload = Uint8List(3);
payload[1] = 87;
expect(parseMspLinkQuality(payload), 87);
});
});
}