A Node.js stream.Transform which converts NMEA 0183 sentences into Signal K delta messages.
The following is the list of sentences the parser supports. Pull requests welcome!
- APB - Autopilot Sentence "B"
- DBT - Depth Below Transducer
- DSC - Digital Selective Calling Class-D Radios
- GGA - Global Positioning System Fix Data
- GLL - Geographic Position - Latitude/Longitude
- HDM - Heading - Magnetic
- HDT - Heading - True
- MTW - Mean Temperature of Water
- MWV - Wind Speed and Angle
- RMC - Recommended Minimum Navigation Information
- ROT - Rate of Turn
- RPM - Revolutions
- VDM - AIS Other Vessel Data
- VDO - AIS Own Vessel Data
- VDR - Set and Drift
- VHW - Water Speed and Heading
- VPW - Speed - Measured Parallel to Wind
- VTG - Track Made Good and Ground Speed
- VWR - Relative Wind Speed and Angle
$ git clone https://github.com/SignalK/signalk-parser-nmea0183.git
$ cd signalk-parser-nmea0183
$ npm install
$ echo '$IIDBT,035.53,f,010.83,M,005.85,F*23' | ./bin/nmea0183-signalk
Should return something like this:
{
"self": "D344B1D0",
"version": "1",
"vessels": {
"D344B1D0": {
"uuid": "D344B1D0",
"environment": {
"depth": {
"belowTransducer": {
"value": 10.83,
"source": {
"type": "NMEA0183",
"sentence": "DBT",
"label": "signalk/signalk-parser-nmea0183",
"talker": "II"
},
"timestamp": "2016-04-15T17:56:52.000Z"
}
}
}
}
}
}
You can also pipe a file into the parser CLI:
$ cat some-nmea-file.log | ./bin/nmea0183-signalk
See https://github.com/SignalK/signalk-server-node/blob/master/providers/nmea0183-signalk.js for an example in a Node application.