Add Flutter project skeleton (Android-only MVP)
Five-layer architecture per DMC_Architektur_und_Design.md: FlightControllerLink abstraction (Mock + MSP stub), protocol-neutral mission domain layer, App-Mode state machine with Ready-to-Fly gate, Drift persistence schema, and placeholder UI screens wired via go_router. App icon generated from design/Y2_pink_dark.svg. Verified with flutter analyze and flutter test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
62d655fe8e
commit
346fcc2183
@@ -0,0 +1,26 @@
|
||||
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<void> 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user