Files
nmea/README.md
hyzl b0a1993169
Some checks failed
Node.js CI / build (10.x) (push) Has been cancelled
Node.js CI / build (12.x) (push) Has been cancelled
Node.js CI / build (14.x) (push) Has been cancelled
Node.js CI / build (15.x) (push) Has been cancelled
feat: 导入 NMEA-0183 GPS 协议解析库(node-nmea)
NMEA-0183 语句解析器,含 21 个语句类型 codec 与配套单元测试。

- codecs/:APB/BWC/DBT/GGA/GLL/GRMT/GSA/GSV/HDG/HDM/HDT/MWV/RDID/
  RMB/RMC/ROT/RSA/TXT/VTG/VWR/ZDA
- test/:各 codec 对应的 mocha 用例
- .github/workflows/:node与 npm-publish 流水线

许可证:MIT(原作者 James Penn)
2026-10-19 09:54:44 +08:00

1.1 KiB

A NMEA-0183 GPS Protocol parser

An example using the node-serialport library to read a stream of messages from a GlobalSat BU-353 USB GPS receiver:

var serialport = require('serialport');
var nmea = require('nmea');

var port = new serialport.SerialPort('/dev/cu.usbserial', {
                baudrate: 4800,
                parser: serialport.parsers.readline('\r\n')});
    
port.on('data', function(line) {
    console.log(nmea.parse(line));
});

// { type: 'active-satellites',
//   selectionMode: 'A',
//   mode: 1,
//   satellites: [ 29, 18, 21 ],
//   PDOP: '',
//   HDOP: '',
//   VDOP: '',
//   talker_id: 'GP' }
// { type: 'satellite-list-partial',
//   numMsgs: 3,
//   msgNum: 1,
//   satsInView: 11,
//   satellites: 
//    [ { id: '18', elevationDeg: 7, azimuthTrue: 214, SNRdB: 43 },
//      { id: '21', elevationDeg: 5, azimuthTrue: 114, SNRdB: 34 },
//      { id: '26', elevationDeg: 71, azimuthTrue: 234, SNRdB: 0 } ],
//   talker_id: 'GP' }

To add custom codecs

var MyCustom = require('./MyCustom.js');
nmea.traditionalDecoders['MyCustomr'] = MyCustom.decode;