import '../app_mode/app_mode_cubit.dart'; import '../domain/waypoint/flat_waypoint_list.dart'; import '../transport/flight_controller_link.dart'; /// Orchestriert Connect -> Verify -> Upload -> Ready-to-Fly und erzwingt das /// Ready-to-Fly-Gate (Architektur-Doku 3.3 / 4.5). class MissionSyncService { MissionSyncService(this._link, this._appMode); final FlightControllerLink _link; final AppModeCubit _appMode; Future syncAndUpload(FlatWaypointList mission) async { await _link.connect(); // uploadMission() der jeweiligen FlightControllerLink-Implementierung // verweigert den Upload selbst, falls die Drohne armed ist (Doku 4.5) - // dieser Service verlaesst sich bewusst nicht zusaetzlich auf einen // eigenen Telemetrie-Vorab-Check, um keine zwei Wahrheitsquellen zu haben. await _link.uploadMission(mission); _appMode.missionUploadConfirmed(); // TODO: echte Verifikation gegen FC-Rueckmeldung, sobald ein // Protokoll-Adapter (MSP/MAVLink) eine Upload-Bestaetigung liefert. _appMode.missionVerifiedConfirmed(); } }