// ignore_for_file: constant_identifier_names import 'parser.dart'; import 'sentence.dart'; import 'types.dart'; const TypeBEC = "BEC"; class BEC { Time time; // UTC Time double latitude; // latitude of waypoint double longitude; // longitude of waypoint double bearingTrue; // true bearing in degrees bool bearingTrueValid; // is unit of true bearing valid double bearingMagnetic; // magnetic bearing in degrees bool bearingMagneticValid; // is unit of magnetic bearing valid double distanceNauticalMiles; // distance to waypoint in nautical miles bool distanceNauticalMilesValid; // is unit of distance to waypoint nautical miles valid String destinationWaypointID; // destination waypoint ID BEC({ required this.time, required this.latitude, required this.longitude, required this.bearingTrue, required this.bearingTrueValid, required this.bearingMagnetic, required this.bearingMagneticValid, required this.distanceNauticalMiles, required this.distanceNauticalMilesValid, required this.destinationWaypointID, }); static BEC newBEC(BaseSentence s) { var p = Parser(s); return BEC( time: p.time(0, "time"), latitude: p.latLong(1, 2, "latitude"), longitude: p.latLong(3, 4, "longitude"), bearingTrue: p.float64(5, "true bearing"), bearingTrueValid: p.enumString(6, "true bearing unit valid", [BearingTrue]) == BearingTrue, bearingMagnetic: p.float64(7, "magnetic bearing"), bearingMagneticValid: p.enumString(8, "magnetic bearing unit valid", [BearingMagnetic]) == BearingMagnetic, distanceNauticalMiles: p.float64(9, "distance to waypoint is nautical miles"), distanceNauticalMilesValid: p.enumString( 10, "is distance to waypoint nautical miles valid", [DistanceUnitNauticalMile]) == DistanceUnitNauticalMile, destinationWaypointID: p.string(11, "destination waypoint ID"), ); } }