Alot of changes

This commit is contained in:
ImBenji
2024-05-01 12:29:59 +01:00
parent 8cc4016836
commit fc4d3ef898
23 changed files with 1755 additions and 430 deletions

View File

@@ -7,7 +7,7 @@ import 'package:bus_infotainment/backend/live_information.dart';
import 'package:bus_infotainment/backend/modules/info_module.dart';
import 'package:bus_infotainment/utils/NameBeautify.dart';
import 'package:bus_infotainment/utils/OrdinanceSurveyUtils.dart';
import 'package:csv/csv.dart';
import 'package:fast_csv/csv_converter.dart';
import 'package:vector_math/vector_math.dart';
class BusSequences extends InfoModule {
@@ -19,13 +19,16 @@ class BusSequences extends InfoModule {
BusSequences.fromCSV(String destinationsCSV, String busSequencesCSV) {
// Init the bus destinations
List<List<dynamic>> destinationRows = const CsvToListConverter().convert(destinationsCSV);
List<List<String>> destinationRows = CsvConverter().convert(destinationsCSV);
destinationRows.removeAt(0);
print("Destination rows: ${destinationRows.length}");
for (int i = 0; i < destinationRows.length; i++) {
try {
List<dynamic> entries = destinationRows[i];
// print("Parsing destination row $i: $entries");
String routeNumber = entries[0].toString();
@@ -50,9 +53,11 @@ class BusSequences extends InfoModule {
} catch (e) {}
}
print("Loaded ${destinations.length} destinations");
// Init the bus routes
List<List<dynamic>> busSequenceRows = const CsvToListConverter().convert(busSequencesCSV);
List<List<dynamic>> busSequenceRows = CsvConverter().convert(busSequencesCSV);
busSequenceRows.removeAt(0);
for (int i = 0; i < busSequenceRows.length; i++) {
@@ -61,20 +66,21 @@ class BusSequences extends InfoModule {
{
List<dynamic> entries = busSequenceRows[i];
// print("Parsing bus sequence row $i: $entries");
String routeNumber = entries[0].toString();
BusRoute route = routes.containsKey(routeNumber) ? routes[routeNumber]! : BusRoute(routeNumber: routeNumber);
int routeVariant = entries[1];
int routeVariant = int.parse(entries[1]);
BusRouteStop stop = BusRouteStop();
stop.stopName = entries[6].toString();
stop.stopCode = entries[4].toString();
stop.easting = entries[7];
stop.northing = entries[8];
stop.heading = entries[9] != "" ? entries[9] : -1;
stop.easting = int.parse(entries[7]);
stop.northing = int.parse(entries[8]);
stop.heading = int.parse(entries[9] != "" ? entries[9] : "-1");
BusRouteVariant variant = route.routeVariants.containsKey(routeVariant) ? route.routeVariants[routeVariant]! : BusRouteVariant(routeVariant: routeVariant, busRoute: route);
@@ -90,6 +96,8 @@ class BusSequences extends InfoModule {
}
}
print("Loaded ${routes.length} routes");
}
}
@@ -164,6 +172,9 @@ class BusRouteVariant {
}
print("Nearest destination A: $nearestDestinationA, distance: $nearestDistanceA");
print("Nearest destination B: $nearestDestinationB, distance: $nearestDistanceB");
// Choose the nearest destination
if (nearestDistanceA < nearestDistanceB) {
_destination = nearestDestinationA;
@@ -172,8 +183,14 @@ class BusRouteVariant {
}
}
return _destination;
}
@override
String toString() {
return 'BusRouteVariant{routeVariant: $routeVariant, busRoute: ${busRoute.routeNumber}, busStops: ${busStops.length}, destinations: ${busRoute.destinations.length}}';
}
}
class BusRouteStop {