// Yukart display: the tablet app. Starts the link to the Orin and hands the screen to // the shell (lib/shell.dart). Code layout: lib/README.md. import 'package:flutter/material.dart'; import 'link/boundary.dart'; import 'link/net.dart'; import 'link/reading.dart'; import 'pages/link_test.dart'; import 'shell.dart'; import 'shell_scope.dart'; import 'theme/light.dart'; import 'theme/palette.dart'; /// Override for development, e.g. `--dart-define=YUKART_GW=ws://halogen.local:7700/`. const defaultUrl = String.fromEnvironment( 'YUKART_GW', defaultValue: 'ws://192.168.55.1:7700/', ); Future main() async { WidgetsFlutterBinding.ensureInitialized(); final themes = await Themes.load() ..followLight(lightLevels()); final usb = UsbLink(); await usb.bindFor(Uri.parse(defaultUrl)); final boundary = Boundary(defaultUrl)..start(); // The sun, for auto dark/bright: the car's position while GNSS has one. boundary.addListener(() { final lat = Reading.of(boundary, 'gnss_lat'); final lon = Reading.of(boundary, 'gnss_lon'); if (!lat.dim && !lon.dim && lat.number != null && lon.number != null) { themes.setPosition(lat.number!, lon.number!); } }); final linkTest = LinkTest(usb); // Development hook: `am start ... --es linktest [dl:|bi:]