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 [](https://github.com/adrianmo/go-nmea/actions/workflows/ci.yml) [](https://goreportcard.com/report/github.com/adrianmo/go-nmea) [](https://coveralls.io/github/adrianmo/go-nmea?branch=master) [](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.