msp over wifi implemented

This commit is contained in:
Constantin Leue
2026-08-02 09:20:05 +02:00
parent 24db38dc33
commit 6cfb82bd77
11 changed files with 155 additions and 13 deletions
+23 -2
View File
@@ -25,6 +25,7 @@ import 'package:dmc_app/ui/providers/geocoding_provider.dart';
import 'package:dmc_app/ui/providers/mission_meta_provider.dart';
import 'package:dmc_app/ui/providers/sharing_provider.dart';
import 'package:dmc_app/ui/providers/telemetry_provider.dart';
import 'package:dmc_app/transport/mock/mock_flight_controller_link.dart';
import 'package:dmc_app/ui/widgets/full_value_chart.dart';
import 'package:dmc_app/ui/widgets/halo_menu.dart';
import 'package:dmc_app/ui/widgets/header_wind_pill.dart';
@@ -68,8 +69,21 @@ class _FakeSharingService extends SharingService {
// path_provider-Plugin (echtes Dateisystem) benoetigt wird.
AppDatabase _testDatabase() => AppDatabase.forTesting(NativeDatabase.memory());
// flightControllerLinkProvider waehlt inzwischen je nach Verbindungsart
// (Settings-Default: WLAN) zwischen echtem MSP-ueber-UDP-Link und dem Mock -
// in Tests immer explizit den Mock erzwingen, sonst wuerde der Fly-Modus
// versuchen, einen echten Platform-Channel (WifiNetworkSpecifier) zu
// verwenden, der in der Testumgebung nie eine Antwort liefert und den Test
// haengen liesse.
ProviderContainer _testContainer() => ProviderContainer(
overrides: [appDatabaseProvider.overrideWithValue(_testDatabase())],
overrides: [
appDatabaseProvider.overrideWithValue(_testDatabase()),
flightControllerLinkProvider.overrideWith((ref) {
final link = MockFlightControllerLink();
ref.onDispose(link.disconnect);
return link;
}),
],
);
/// Der Fly-Modus startet ueber telemetryProvider einen Mock-Telemetrie-
@@ -81,7 +95,14 @@ Future<void> _stopTelemetry(ProviderContainer container) =>
container.read(flightControllerLinkProvider).disconnect();
Widget _wrap(Widget child) => ProviderScope(
overrides: [appDatabaseProvider.overrideWithValue(_testDatabase())],
overrides: [
appDatabaseProvider.overrideWithValue(_testDatabase()),
flightControllerLinkProvider.overrideWith((ref) {
final link = MockFlightControllerLink();
ref.onDispose(link.disconnect);
return link;
}),
],
child: BlocProvider(
create: (_) => AppModeCubit(),
child: MaterialApp(home: child),