extended-nmea
Version:
A TypeScript library for parsing NMEA0183-like sentences with support for custom and proprietary sentences.
52 lines • 1.63 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RMA = void 0;
const TalkerSentence_1 = require("../../types/sentences/TalkerSentence");
const helpers_1 = require("../../helpers");
var parseGeoCoordinate = helpers_1.Helpers.parseGeoCoordinate;
class RMA extends TalkerSentence_1.TalkerSentence {
constructor(data) {
super(data);
}
get warning() {
return this.dataFields[0] === 'V';
}
get latitude() {
return parseGeoCoordinate(this.dataFields[1], this.dataFields[2]);
}
get longitude() {
return parseGeoCoordinate(this.dataFields[3], this.dataFields[4]);
}
get timeDifferenceA() {
return parseFloat(this.dataFields[5]);
}
get timeDifferenceB() {
return parseFloat(this.dataFields[6]);
}
get speedOverGround() {
return parseFloat(this.dataFields[8]);
}
get trackMadeGood() {
return parseFloat(this.dataFields[9]);
}
get magneticVariation() {
const val = parseFloat(this.dataFields[10]);
const positive = this.dataFields[11] === 'E';
return (positive ? 1 : -1) * val;
}
get valid() {
return super.valid && this.dataFields.length === 11;
}
get invalidReason() {
if (!super.valid) {
return super.invalidReason;
}
if (this.dataFields.length !== 11) {
return `Expected 11 fields, got ${this.dataFields.length}`;
}
return null;
}
}
exports.RMA = RMA;
RMA.ID = "RMA";
//# sourceMappingURL=RMA.js.map