59 lines
2.0 KiB
Dart
59 lines
2.0 KiB
Dart
|
// 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"),
|
||
|
);
|
||
|
}
|
||
|
}
|