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:
Constantin Leue
2026-07-26 21:28:25 +02:00
co-authored by Claude Sonnet 5
parent 62d655fe8e
commit 346fcc2183
45 changed files with 2884 additions and 0 deletions
@@ -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();
}
}