Awesome Go

go-nmea

CategoryText Processing
SubcategoryParsers/Encoders/Decoders
Stars266

NMEA parser library for the Go language

About go-nmea

This large README is shown as a plain-text preview. Read the full README at the source

# go-nmea

[![CI](https://github.com/adrianmo/go-nmea/actions/workflows/ci.yml/badge.svg)](https://github.com/adrianmo/go-nmea/actions/workflows/ci.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/adrianmo/go-nmea)](https://goreportcard.com/report/github.com/adrianmo/go-nmea) [![Coverage Status](https://coveralls.io/repos/adrianmo/go-nmea/badge.svg?branch=master&service=github)](https://coveralls.io/github/adrianmo/go-nmea?branch=master) [![GoDoc](https://godoc.org/github.com/adrianmo/go-nmea?status.svg)](https://godoc.org/github.com/adrianmo/go-nmea)

This is a NMEA library for the Go programming language (Golang).

## Features

- Parse individual NMEA 0183 sentences
- Support for sentences with NMEA 4.10 "TAG Blocks"
- Register custom parser for unsupported sentence types
- User-friendly MIT license

## Installing

To install go-nmea use `go get`:

```
go get github.com/adrianmo/go-nmea
```

This will then make the `github.com/adrianmo/go-nmea` package available to you.

### Staying up to date

To update go-nmea to the latest version, use `go get -u github.com/adrianmo/go-nmea`.

## Supported sentences

Sentence with link is supported by this library. NMEA0183 sentences list is based
on [IEC 61162-1:2016 (Edition 5.0 2016-08)](https://webstore.iec.ch/publication/25754) table of contents.

| Sentence           | Description                                                         | References                                                                                     |
|--------------------|---------------------------------------------------------------------|------------------------------------------------------------------------------------------------|
| [AAM](./aam.go)    | Waypoint arrival alarm                                              | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_aam_waypoint_arrival_alarm)                      |
| ABK                | AIS addressed and binary broadcast acknowledgement                  |                                                                                                |
| [ABM](./abm.go)    | AIS addressed binary and safety related message                     |                                                                                                |
| ACA                | AIS channel assignment message                                      |                                                                                                |
| [ACK](./ack.go)    | Acknowledge alarm                                                   |                                                                                                |
| [ACN](./acn.go)    | Alert command                                                       |                                                                                                |
| ACS                | AIS channel management information source                           |                                                                                                |
| AIR                | AIS interrogation request                                           |                                                                                                |
| AKD                | Acknowledge detail alarm condition                                  |                                                                                                |
| [ALA](./ala.go)    | Report detailed alarm condition                                     |                                                                                                |
| [ALC](./alc.go)    | Cyclic alert list                                                   |                                                                                                |
| [ALF](./alf.go)    | Alert sentence                                                      |                                                                                                |
| [ALR](./alr.go)    | Set alarm state                                                     |                                                                                                |
| [APB](./apb.go)    | Heading/track controller (autopilot) sentence B                     | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_apb_autopilot_sentence_b)                        |
| [ARC](./arc.go)    | Alert command refused                                               |                     |
| [BBM](./bbm.go)    | AIS broadcast binary message                                        |                                                                                                |
| [BEC](./bec.go)    | Bearing and distance to waypoint, Dead reckoning                    | [1](http://www.nmea.de/nmea0183datensaetze.html#bec)                                           |
| [BOD](./bod.go)    | Bearing origin to destination                                       | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_bod_bearing_waypoint_to_waypoint)                |
| [BWC](./bwc.go)    | Bearing and distance to waypoint, Great circle                      | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_bwc_bearing_distance_to_waypoint_great_circle)   |
| [BWR](./bwr.go)    | Bearing and distance to waypoint, Rhumb line                        | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_bwr_bearing_and_distance_to_waypoint_rhumb_line) |
| [BWW](./bww.go)    | Bearing waypoint to waypoint                                        | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_bww_bearing_waypoint_to_waypoint)                |
| CUR                | Water current layer, Multi-layer water current data                 |                                                                                                |
| [DBK](./dbk.go)    | Depth Below Keel (obsolete, use DPT instead)                        | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_dbk_depth_below_keel)                            |
| [DBS](./dbs.go)    | Depth below transducer                                              | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_dbs_depth_below_surface)                         |
| [DBT](./dbt.go)    | Depth below transducer                                              | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_dbt_depth_below_transducer)                      |
| DDC                | Display dimming control                                             |                                                                                                |
| [DOR](./dor.go)    | Door status detection                                               |                                                                                                |
| [DPT](./dpt.go)    | Depth                                                               | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_dpt_depth_of_water)                              |
| [DSC](./dsc.go)    | Digital selective calling information                               |                                                                                                |
| [DSE](./dse.go)    | Expanded digital selective calling                                  |                                                                                                |
| [DTM](./dtm.go)    | Datum reference                                                     | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_dtm_datum_reference)                             |
| EPV                | Command or report equipment property value                          |                                                                                                |
| ETL                | Engine telegraph operation status                                   |                                                                                                |
| [EVE](./eve.go)    | General event message                                               |                                                                                                |
| [FIR](./fir.go)    | Fire detection                                                      |                                                                                                |
| FSI                | Frequency set information                                           |                                                                                                |
| GBS                | GNSS satellite fault detection                                      |                                                                                                |
| GEN                | Generic binary information                                          |                                                                                                |
| GFA                | GNSS fix accuracy and integrity                                     |                                                                                                |
| [GGA](./gga.go)    | Global positioning system (GPS) fix data                            | [1](http://aprs.gids.nl/nmea/#gga)                                                             |
| [GLL](./gll.go)    | Geographic position, Latitude/longitude                             | [1](http://aprs.gids.nl/nmea/#gll)                                                             |
| [GNS](./gns.go)    | GNSS fix data                                                       | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_gns_fix_data)                                    |
| GRS                | GNSS range residuals                                                |                                                                                                |
| [GSA](./gsa.go)    | GNSS DOP and active satellites                                      | [1](http://aprs.gids.nl/nmea/#gsa)                                                             |
| GST                | GNSS pseudorange noise statistics                                   |                                                                                                |
| [GSV](./gsv.go)    | GNSS satellites in view                                             | [1](http://aprs.gids.nl/nmea/#gsv) [NMEA ERRATA # 0183](https://web.nmea.org/External/WCPages/WCWebContent/webcontentpage.aspx?ContentID=258)               |
| [HBT](./hbt.go)    | Heartbeat supervision sentence                                      |                                                                                                |
| HCR                | Heading correction report                                           |                                                                                                |
| [HDG](./hdg.go)    | Heading, deviation and variation                                    | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_hdg_heading_deviation_variation)                 |
| HDM                | Heading - Magnetic                                                  | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_hdm_heading_magnetic)                            |
| [HDT](./hdt.go)    | Heading true                                                        | [gpsd](http://aprs.gids.nl/nmea/#hdt)                                                          |
| HMR                | Heading monitor receive                                             |                                                                                                |
| HMS                | Heading monitor set                                                 |                                                                                                |
| HRM                | heel angle, roll period and roll amplitude measurement device       |                                                                                                |
| [HSC](./hsc.go)    | Heading steering command                                            | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_hsc_heading_steering_command)                    |
| HSS                | Hull stress surveillance systems                                    |                                                                                                |
| HTC                | Heading/track control command                                       |                                                                                                |
| HTD                | Heading /track control data                                         |                                                                                                |
| KLDS               | Kenwood LMR - FleetSync AVL                                         |                                                                                                |
| KLID               | Kenwood LMR - FleetSync                                             |                                                                                                |
| KLSH               | Kenwood LMR - FleetSync AVL                                         |                                                                                                |
| KNDS               | Kenwood LMR - Digital AVL                                           |                                                                                                |
| KNID               | Kenwood LMR - Digital                                               |                                                                                                |
| KNSH               | Kenwood LMR - Digital AVL                                           |                                                                                                |
| KWDWPL             | Kenwood Waypoint Location - Amateur Radio                           | [direwolf](https://github.com/wb2osz/direwolf/blob/master/src/waypoint.c)                      |
| LR1                | AIS long-range reply sentence 1                                     |                                                                                                |
| LR2                | AIS long-range reply sentence 2                                     |                                                                                                |
| LR3                | AIS long-range reply sentence 3                                     |                                                                                                |
| LRF                | AIS long-range function                                             |                                                                                                |
| LRI                | AIS long-range interrogation                                        |                                                                                                |
| [MDA](./mda.go)    | Meteorological Composite                                            | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_mda_meteorological_composite)                    |
| [MTA](./mta.go)    | Air Temperature (obsolete, use XDR instead)                         |                                                                                                |
| MOB                | Man over board notification                                         |                                                                                                |
| MSK                | MSK receiver interface                                              |                                                                                                |
| MSS                | MSK receiver signal status                                          |                                                                                                |
| [MTW](./mtw.go)    | Water temperature                                                   | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_mtw_mean_temperature_of_water)                   |
| [MWD](./mwd.go)    | Wind direction and speed                                            | [1](https://www.tronico.fi/OH6NT/docs/NMEA0183.pdf)                                            |
| [MWV](./mwv.go)    | Wind speed and angle                                                | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_mwv_wind_speed_and_angle)                        |
| NAK                | Negative acknowledgement                                            |                                                                                                |
| NRM                | NAVTEX receiver mask                                                |                                                                                                |
| NRX                | NAVTEX received message                                             |                                                                                                |
| NSR                | Navigation status report                                            |                                                                                                |
| [OSD](./osd.go)    | Own ship data                                                       | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_osd_own_ship_data)                               |
| POS                | Device position and ship dimensions report or configuration command |                                                                                                |
| PRC                | Propulsion remote control status                                    |                                                                                                |
| RLM                | Return link message                                                 |                                                                                                |
| RMA                | Recommended minimum specific LORAN-C data                           |                                                                                                |
| [RMB](./rmb.go)    | Recommended minimum navigation information                          | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_rmb_recommended_minimum_navigation_information)  |
| [RMC](./rmc.go)    | Recommended minimum specific GNSS data                              | [1](http://aprs.gids.nl/nmea/#rmc)                                                             |
| ROR                | Rudder order status                                                 |                                                                                                |
| [ROT](./rot.go)    | Rate of turn                                                        | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_rot_rate_of_turn)                                |
| RRT                | Report route transfer                                               |                                                                                                |
| [RPM](./rpm.go)    | Revolutions                                                         | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_rpm_revolutions)                                 |
| [RSA](./rsa.go)    | Rudder sensor angle                                                 | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_rsa_rudder_sensor_angle)                         |
| [RSD](./rsd.go)    | Radar system data                                                   | [gpsd](https://gpsd.gitlab.io/gpsd/NMEA.html#_rsd_radar_system_data)                           |
| [RTE](./rte.go)    | Routes                                                              | [1](http://aprs.gids.nl/nmea/#rte)                                                             |

Frequently Asked Questions

What is go-nmea?

go-nmea is a Text Processing library for the Go programming language. NMEA parser library for the Go language

How do I install go-nmea?

Install go-nmea with the Go module system using `go get adrianmo/go-nmea`. Check the repository for the current installation instructions.

What category does go-nmea belong to?

go-nmea is listed under Text Processing, specifically Parsers/Encoders/Decoders.

← Back to Parsers/Encoders/Decoders