41 lines
1.1 KiB
Dart
41 lines
1.1 KiB
Dart
import 'package:flutter/foundation.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'app.dart';
|
|
import 'config/settings.dart';
|
|
import 'decoder/decoder.dart';
|
|
import 'export/csv_exporter.dart';
|
|
import 'layout/layout_controller.dart';
|
|
import 'session/session_controller.dart';
|
|
import 'transport/websocket_transport.dart';
|
|
|
|
Future<void> main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
final settings = await Settings.load(isWeb: kIsWeb);
|
|
final layout = await LayoutController.load();
|
|
|
|
final transport = WebSocketTransport(
|
|
initialReconnectDelay: settings.reconnectInitialDelay,
|
|
maxReconnectDelay: settings.reconnectMaxDelay,
|
|
backoffFactor: settings.reconnectBackoffFactor,
|
|
);
|
|
final decoder = DecoderImpl(batchInterval: settings.decoderBatchInterval);
|
|
await decoder.start();
|
|
|
|
final session = SessionController(
|
|
transport: transport,
|
|
decoder: decoder,
|
|
settings: settings,
|
|
);
|
|
await session.start();
|
|
|
|
final exporter = CsvExporterImpl();
|
|
|
|
runApp(TelemetryApp(
|
|
session: session,
|
|
layout: layout,
|
|
settings: settings,
|
|
exporter: exporter,
|
|
));
|
|
} |