import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../transport/flight_controller_link.dart'; import '../../transport/mock/mock_flight_controller_link.dart'; /// FlightControllerLink fuer den Fly-Modus (Doku 3.1) - aktuell fest auf den /// Mock verdrahtet, bis ein echter Transport (MSP, Doku 4.19) existiert. /// autoDispose: verbindet erst, wenn der Fly-Screen tatsaechlich beobachtet /// wird, und trennt/stoppt den Mock-Ticker wieder, sobald niemand mehr /// zuhoert (z.B. Rueckkehr in den Plan-Modus) statt endlos im Hintergrund /// weiterzulaufen. final flightControllerLinkProvider = Provider.autoDispose((ref) { final link = MockFlightControllerLink(); ref.onDispose(link.disconnect); return link; }); /// Live-Telemetrie des verbundenen Flightcontrollers (Doku 3.4). connect() /// wird beim ersten Abonnenten ausgeloest - MockFlightControllerLink /// verlangt das vor subscribeTelemetry(). final telemetryProvider = StreamProvider.autoDispose((ref) async* { final link = ref.watch(flightControllerLinkProvider); await link.connect(); yield* link.subscribeTelemetry(); });