Mock-Batteriespannung an Zellenzahl des aktiven Drohnenprofils koppeln

Die simulierte Telemetrie war fest auf 6S verdrahtet (18.0-24.0V), obwohl
das Drohnenprofil laengst eine konfigurierbare Zellenzahl hat - beim
T1-Ranger-Standardprofil (4S) zeigte die Statusanzeige dadurch bis zu 18V,
obwohl 16.8V (4 * 4.2V Ladeschluss) der realistische Maximalwert ist.

MockFlightControllerLink nimmt jetzt batteryCellCount entgegen und
skaliert den simulierten Spannungsverlauf (4.2V/Zelle voll bis 3.0V/Zelle
nahezu leer) damit. telemetry_provider.dart uebergibt dafuer die
Zellenzahl des aktuell aktiven Drohnenprofils (ref.read, analog zu den
initialWaypoints - einmalig bei der Verbindungserzeugung, kein Reset des
laufenden Akkustands bei spaeteren Profilwechseln).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Constantin Leue
2026-08-06 14:08:11 +02:00
co-authored by Claude Sonnet 5
parent e902197462
commit 8d5b06d0b4
2 changed files with 31 additions and 8 deletions
+9 -1
View File
@@ -5,6 +5,7 @@ import '../../transport/flight_controller_link.dart';
import '../../transport/link_transport.dart';
import '../../transport/mock/mock_flight_controller_link.dart';
import '../../transport/msp/msp_flight_controller_link.dart';
import 'active_drone_profile_provider.dart';
import 'connection_settings_provider.dart';
import 'current_mission_provider.dart';
import 'wifi_connection_provider.dart';
@@ -44,7 +45,14 @@ final flightControllerLinkProvider = Provider<FlightControllerLink>((ref) {
// verankert werden (Doku: "Mock-Daten fuer die Live-Details-Ansicht
// nutzbar machen"), nicht bei jeder spaeteren Missionsaenderung
// neu erzeugt werden (das wuerde Timer/Drift/Akkustand zuruecksetzen).
: MockFlightControllerLink(initialWaypoints: ref.read(currentMissionProvider));
// Gleiches gilt fuer die Zellenzahl: sie bestimmt nur den simulierten
// Spannungsbereich bei der Erzeugung, ein spaeterer Profilwechsel
// waehrend einer laufenden Mock-Verbindung setzt den Akkustand nicht
// zurueck.
: MockFlightControllerLink(
initialWaypoints: ref.read(currentMissionProvider),
batteryCellCount: ref.read(activeDroneProfileProvider).batteryCellCount,
);
ref.onDispose(link.disconnect);
return link;
});