msp over wifi implemented
This commit is contained in:
@@ -29,6 +29,7 @@ Timer _startFakeFlightController(LoopbackTransport transport) {
|
||||
d.setInt32(2, 525200000, Endian.little); // lat 52.52
|
||||
d.setInt32(6, 134050000, Endian.little); // lon 13.405
|
||||
d.setUint16(12, 500, Endian.little); // 5.00 m/s
|
||||
d.setUint16(14, 2700, Endian.little); // 270.0 deg
|
||||
payload = d.buffer.asUint8List();
|
||||
case MspCommands.altitude:
|
||||
final d = ByteData(10);
|
||||
@@ -67,6 +68,7 @@ void main() {
|
||||
expect(frame.lon, closeTo(13.405, 1e-6));
|
||||
expect(frame.altitudeM, closeTo(50.0, 1e-6));
|
||||
expect(frame.speedMs, closeTo(5.0, 1e-6));
|
||||
expect(frame.headingDeg, closeTo(270.0, 1e-6));
|
||||
|
||||
await link.disconnect();
|
||||
responder.cancel();
|
||||
|
||||
@@ -28,6 +28,7 @@ void main() {
|
||||
expect(reading.lat, closeTo(52.52, 1e-9));
|
||||
expect(reading.lon, closeTo(13.405, 1e-9));
|
||||
expect(reading.speedMs, closeTo(12.34, 1e-9));
|
||||
expect(reading.headingDeg, closeTo(90.0, 1e-9));
|
||||
});
|
||||
|
||||
test('fixType 0 bedeutet kein Fix', () {
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user