NMEA 0183 is a combined electrical and data specification for communication between marine electronics such as echo sounder, sonars, anemometer, gyrocompass, autopilot, GPS receivers and many other types of instruments.
The NMEA 0183 standard uses a simple ASCII, serial communications protocol that defines how data are transmitted in a "sentence" from one "talker" to multiple "listeners" at a time. Through the use of intermediate expanders, a talker can have a unidirectional conversation with a nearly unlimited number of listeners, and using multiplexers, multiple sensors can talk to a single computer port.
This project reads and writes NMEA GPS sentences.
This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this software. If not, see http://www.gnu.org/licenses/.
This is not official NMEA software. Further, it is not related to National Marine Electronics Association http://www.nmea.org/. The decoding of NMEA-0183 sentences is based entirely on publicly available resources in the Internet. Thus, it is NOT guaranteed that the library would follow and implement the standard accurately and correctly.
The source code is maintained in Github http://www.github.com.
Browse code at Github.com: https://github.com/keybridge/lib-nmea-0183
If you wish to contribute new code or bug fixes, please fork and send pull requests in Github.
- Key Bridge
- Some classes are based on code imported from the Marine API (GPL) project by Kimmo Tuukkanen [email protected]
AIS is composed of small bursts of data sent over normal marine VHF but using GMSK modulation instead of FM to identify vessels, their position, and telemetry. The data is encoded into a bit pattern (bit vector) to make it as small as possible. The NMEA standard uses two primary sentences to for AIS data !AIVDM (Received Data from other vessels) and !AIVDO (Your own vessels information)
See ITU M.1371-2 for a complete definition of the AIS Data Format.
The NMEA 0183 information has been acquired from many publicly available documents including various of the following:
- NMEA 0183 article in Wikipedia
- NMEA Revealed by Eric S. Raymond
- SiRF NMEA Reference Manual (Rev. 2.1, Dec 2007) by SiRF Technology, Inc.
- The NMEA Information Sheet (issue 3, 25th Feb 2011) by Actisense
- PB100 WeatherStation Technical Manual by Airmar
- RT Intertial+ NMEA Description (rev. 100720) by Oxford Technical Solutions
- BD9xx GNSS Receivers Help by Trimble Navigation Limited
- NMEA-0183 Messages - Guide for AgGPS Receivers by Trimble Navigation Limited
- Eye4Software GPS Toolkit - Description of supported NMEA0183 sentences
- NMEA International Conference & Expo - Standards Update October 2014 by Steve Spitzer
- NMEA 0183 Sentences Not Recommended for New Designs by NMEA
- NMEA Sentence Information by Glenn Baddeley
- NMEA Data by Dale DePriest
- The NMEA FAQ by Peter Bennett
- Automatic Identification System Overview by Navigation Center of U.S. Department of Homeland Security
- SeaTalk Technical Reference (revision 3.22) by Thomas Knauf
- RS232 SeaTalk (-) NMEA Converter installation and operation manual by gadgetPool
All warnings concerning the accuracy of information in above documents apply equally to this software.