extended-nmea
Version:
A TypeScript library for parsing NMEA0183-like sentences with support for custom and proprietary sentences.
60 lines • 1.81 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GGA = void 0;
const TalkerSentence_1 = require("../../types/sentences/TalkerSentence");
const helpers_1 = require("../../helpers");
var parseTime = helpers_1.Helpers.parseTime;
var parseGeoCoordinate = helpers_1.Helpers.parseGeoCoordinate;
class GGA extends TalkerSentence_1.TalkerSentence {
constructor(data) {
super(data);
}
get time() {
return parseTime(this.dataFields[0]);
}
get latitude() {
return parseGeoCoordinate(this.dataFields[1], this.dataFields[2]);
}
get longitude() {
return parseGeoCoordinate(this.dataFields[3], this.dataFields[4]);
}
get gpsQuality() {
return parseInt(this.dataFields[5]);
}
get satellitesInView() {
return parseInt(this.dataFields[6]);
}
get horizontalDOP() {
return parseFloat(this.dataFields[7]);
}
get altMean() {
return parseFloat(this.dataFields[8]);
}
get geoidalSeparation() {
return parseFloat(this.dataFields[10]);
}
get differentialAge() {
let age = this.dataFields[12];
if (age.length === 0)
return null;
return parseFloat(age);
}
get differentialStationId() {
return parseInt(this.dataFields[13]);
}
get valid() {
return super.valid && this.dataFields.length === 14;
}
get invalidReason() {
if (!super.valid) {
return super.invalidReason;
}
if (this.dataFields.length !== 14) {
return `Expected 14 fields, got ${this.dataFields.length}`;
}
return null;
}
}
exports.GGA = GGA;
GGA.ID = "GGA";
//# sourceMappingURL=GGA.js.map