node-nmea/codecs/GSA.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2023-10-16 12:09:14 +08:00
/*
=== GSA - GPS DOP and active satellites ===
This is one of the sentences commonly emitted by GPS units.
------------------------------------------------------------------------------
1 2 3 4 14 15 16 17 18
| | | | | | | | |
$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.x*hh
------------------------------------------------------------------------------
Field Number:
1) Selection mode
2) Mode
3) ID of 1st satellite used for fix
4) ID of 2nd satellite used for fix
...
14) ID of 12th satellite used for fix
15) PDOP in meters
16) HDOP in meters
17) VDOP in meters
18) Checksum
*/
exports.TYPE = 'active-satellites';
exports.ID = 'GSA';
exports.decode = function(fields) {
// $GPGSA,A,3,12,05,25,29,,,,,,,,,9.4,7.6,5.6
var sats = [];
for (var i=1; i < 13; i++) {
if (fields[i+2]) sats.push(+fields[i+2]);
};
return {
sentence: exports.ID,
type: exports.TYPE,
selectionMode: fields[1],
mode: +fields[2],
satellites: sats,
PDOP: +fields[15],
HDOP: +fields[16],
VDOP: +fields[17],
systemId: +fields[18]
};
}