diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..cca7fc27 --- /dev/null +++ b/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/README.md b/README.md index 58b094fe..84d6d909 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,303 @@ -Java Marine API [![Build Status](https://travis-ci.org/ktuukkan/marine-api.png)](https://travis-ci.org/ktuukkan/marine-api) [![Sponsored by Spice](https://img.shields.io/badge/sponsored%20by-Spice-brightgreen.svg)](http://www.spiceprogram.org) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.sf.marineapi/marineapi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.sf.marineapi/marineapi) +# Java Marine API +[![License](https://img.shields.io/badge/License-LGPL%20v3-brightgreen.svg)](./LICENSE) +[![Build Status](https://travis-ci.org/ktuukkan/marine-api.png)](https://travis-ci.org/ktuukkan/marine-api) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.sf.marineapi/marineapi/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.sf.marineapi/marineapi) [![Javadocs](http://www.javadoc.io/badge/net.sf.marineapi/marineapi.svg)](http://www.javadoc.io/doc/net.sf.marineapi/marineapi) ---------------- +[![Sponsored by Spice](https://img.shields.io/badge/sponsored%20by-Spice-brightgreen.svg)](http://www.spiceprogram.org) -Java Marine API is an [NMEA 0183](http://en.wikipedia.org/wiki/NMEA_0183) parser library for Java. See project [webpage](http://ktuukkan.github.io/marine-api/) for more info and documentation. +## About -Basic support for decoding [AIS messages](https://en.wikipedia.org/wiki/Automatic_Identification_System) is also under development and included in latest snapshots for preview. As this is quite a large new feature, all feedback and contribution is much appreciated. +Java Marine API is an [NMEA 0183](http://en.wikipedia.org/wiki/NMEA_0183) parser +library for decoding and encoding the data provided by various electronic marine +devices such as GPS, echo sounder and weather instruments. -License: [LGPL](https://github.com/ktuukkan/marine-api/blob/master/src/main/resources/doc/lgpl.txt) +### Features -**Usage** +- Generic and extentable API -The API has been designed generic and easy to use instead for particular purpose. The NMEA stream translates into event/listener model. For example, +- Detects NMEA 0183 sentences from most input streams + - E.g. from file, serial port, TCP/IP or UDP socket + - The provided data readers can be overridden with custom implementation - SentenceReader reader = new SentenceReader(new FileInputStream(file)); // any stream will do - reader.addSentenceListener(this); // "this" extends or implements sentence listener - reader.start(); +- Converts the ASCII data stream to event/listener model with interfaces and +parsers for [selected sentences](#supported-protocols) + +- Additional parsers may be added by extending the provided base classes + - This can be done at runtime and does not require compiling the library + +- Sentence encoding with common validation and unified formatting + +- Several sentences can be aggregated to single event by using [providers](./src/main/java/net/sf/marineapi/provider) + - For example, to record current position and depth of water + +- Decoding of selected [AIS messages](#ais) + +- The NMEA 0183 layer of [Raymarine SeaTalk1](http://www.raymarine.com/view/?id=5535) + +- Utilities and enumerations for handling the extracted data + +### Licensing + +Java Marine API is free software: you can redistribute it and/or modify it +under the terms of the [GNU Lesser General Public License](./LICENSE) published +by the Free Software Foundation, either version 3 of the License, or (at your +option) any later version. + +Java Marine API 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 Java Marine API. If not, see http://www.gnu.org/licenses/. + +- See also: [LGPL and Java](https://www.gnu.org/licenses/lgpl-java.en.html) + +### Disclaimer + +Java Marine API is not official NMEA 0183 software. Further, it is not related +to [National Marine Electronics Association](http://www.nmea.org/). + +The interpretation of NMEA 0183 and related protocols is based entirely on +varying set of publicly available [documents](#references) in the Internet. +Thus, it is not guaranteed that the library follows and implements these +standards correctly. + +Electronic devices and software do not replace safe navigation practices and +should never be your only reference. -reads through a file and passes all or filtered sentences to listeners: +### Requirements - public void sentenceRead(GGASentence gga) { - System.out.println(gga.getPosition()); +* Java 2 SE JRE/JDK v1.8.0 or newer +* For serial port communication: + + * [Neuron Robotics Java Serial Library](https://github.com/NeuronRobotics/nrjavaserial) + * [PureJavaComm](http://www.sparetimelabs.com/purejavacomm) + * [RXTX library](http://rxtx.qbang.org) + * [Java Communications API](http://www.oracle.com/technetwork/java/index-jsp-141752.html) + +### Usage + +Write a listener: + + class GGAListener extends AbstractSentenceListener { + public void sentenceRead(GGASentence gga) { + Position pos = gga.getPosition(); + // .. your code + } } -See [examples](https://github.com/ktuukkan/marine-api/tree/master/src/main/java/net/sf/marineapi/example) for more. +Set up the reader: + + File file = new File("/var/log/nmea.log"); + SentenceReader reader = new SentenceReader(new FileInputStream(file)); + reader.addSentenceListener(new GGAListener()); + reader.start(); + +Manual parsing: + + String nmea = "$GPGSA,A,3,03,05,07,08,10,15,18,19,21,28,,,1.4,0.9,1.1*3A"; + SentenceFactory sf = SentenceFactory.getInstance(); + GSASentence gsa = (GSASentence) sf.createParser(nmea); + +See also: +- [Examples](src/main/java/net/sf/marineapi/example) +- [Javadocs](http://www.javadoc.io/doc/net.sf.marineapi/marineapi) + +## Supported Protocols + +### NMEA 0183 + +The following sentences are decoded and encoded. The provided parsers may be +overridden and additional parsers may be added at runtime, _without compiling_ +the library. See wiki for +[instructions](https://github.com/ktuukkan/marine-api/wiki/Integrating-your-own-parsers-&-contributing). + +|ID | Description +|--- |--- +|ALK |The NMEA 0183 layer of Raymarine SeaTalk1 (`$STALK`) +|APB |Autopilot cross-track error, destination bearings and heading +|BOD |Bearing from origin to destination +|CUR |Water currents information +|DBT |Water depth below transducer in meters, feet and fathoms +|DPT |Water depth in meters with offset to transducer +|DTM |Datum reference +|GBS |Glonass satellite fault detection (RAIM support) +|GGA |GPS fix data +|GLL |Current geographic position and time +|GNS |Glonass fix data +|GSA |Precision of GPS fix +|GST |GPS pseudorange noise statistics +|GSV |Detailed GPS satellite data +|HDG |Heading with magnetic deviation and variation +|HDM |Magnetic heading in degrees +|HDT |True heading in degrees +|HTC |Heading/Track control systems input data and commands. +|HTD |Heading/Track control systems output data and commands. +|MDA |Meteorological composite +|MHU |Relative and absolute humidity with dew point +|MMB |Barometric pressure +|MTA |Air temperature in degrees Celcius +|MTW |Water temperature in degrees Celcius +|MWD |Wind speed and direction. +|MWV |Wind speed and angle +|RMB |Recommended minimum navigation information "type B" +|RMC |Recommended minimum navigation information "type C" +|ROT |Vessel's rate of turn +|RPM |Engine or shaft revolutions +|RSA |Rudder angle in degrees +|RTE |GPS route data with list of waypoints +|TTM |Tracked target message +|TXT |Text message +|VBW |Dual ground/water speed. +|VDM |The NMEA 0183 layer of AIS: other vessels' data +|VDO |The NMEA 0183 layer of AIS: vessel's own data +|VDR |Set and drift +|VHW |Water speed and heading +|VLW |Distance traveled through water +|VTG |Course and speed over ground +|VWR |Relative wind speed and angle +|VWT |True wind speed and angle +|WPL |Destination waypoint location and ID +|XDR |Transducer measurements +|XTE |Measured cross-track error +|ZDA |UTC time and date with local time offset + +### AIS + +The following [AIS](https://en.wikipedia.org/wiki/Automatic_Identification_System) +messages are decoded. + +| ID | Description +|--- |--- +|01 |Position Report Class A +|02 |Position Report Class A (Assigned schedule) +|03 |Position Report Class A (Response to interrogation) +|04 |Base Station Report +|05 |Static and Voyage Related Data +|09 |Standard SAR Aircraft Position Report +|18 |Standard Class B CS Position Report +|19 |Extended Class B Equipment Position Report +|21 |Aid-to-Navigation Report +|24 |Static Data Report + +### Raymarine SeaTalk1 + +*Not to be confused with SeaTalkng derived from NMEA 2000.* + +Only the NMEA layer is currently supported, see +[STALKSentence](src/main/java/net/sf/marineapi/nmea/sentence/STALKSentence.java) +and [Issue #67](https://github.com/ktuukkan/marine-api/issues/67). + + +## Distribution + +Releases and snapshots are published every now and then, but there is no clear +plan or schedule for this as most of the development happens per user requests +or contribution. + +### Pre-built JARs + +Release JARs may be downloaded from [releases](https://github.com/ktuukkan/marine-api/releases) +and [Sourceforge.net](https://sourceforge.net/projects/marineapi/files/Releases/). +The ZIP package should contain all to get you going. + +The project was first published in Sourceforge, hence the `net.sf.marineapi` +package naming. + +[![Download Java Marine API](https://img.shields.io/sourceforge/dm/marineapi.svg)](https://sourceforge.net/projects/marineapi/files/Releases/) + +### Maven + +Both releases and snapshots are deployed to [Maven Central Repository](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22net.sf.marineapi%22) +and may be imported by adding the following dependency in your `pom.xml`. + + + net.sf.marineapi + marineapi + 0.10.0 + bundle + + +#### Snapshots + +The snapshots should be mostly stable, but they are still *Work In Progress* and +should be considered as a preview of the next release. + +See [changelog](changelog.txt) for the current `SNAPSHOT` version. Notice that +you may need to tweak your [Maven settings](https://gist.github.com/ktuukkan/8cf2de1e915185118c60) +to enable snapshot dependencies. + + + net.sf.marineapi + marineapi + 0.11.0-SNAPSHOT + bundle + + +Snapshots may also be downloaded manually from the +[repository](https://oss.sonatype.org/content/repositories/snapshots/net/sf/marineapi/marineapi/). + +## Contributing + +Any feedback or contribution is welcome. You have several options: + +- [Contact me](https://github.com/ktuukkan) +- [Report a bug](https://github.com/ktuukkan/marine-api/issues) +- [Fork](https://help.github.com/articles/fork-a-repo/) and open a [pullrequest](https://help.github.com/articles/about-pull-requests/) +to share improvements. + +## References + +All information and specifications for this library have been gathered from the +following documents. The availability was checked on 2018-11-10. + +*Notice: any warnings regarding the accuracy of the information in below +documents apply equally to Java Marine API.* + +### Wikipedia + + * [NMEA 0183](http://en.wikipedia.org/wiki/NMEA_0183) + * [Automatic Identification System](https://en.wikipedia.org/wiki/Automatic_identification_system) + +### National Marine Electronics Association + +* [Amendment to NMEA 0183 v4.10 # 20130814](https://www.nmea.org/Assets/21030814%20nmea%200183_man%20overboard%20notification_mob_sentence%20amendment.pdf) +* [Amendment to NMEA0183 v4.10 # 20130815](https://www.nmea.org/Assets/20131028%200183%20safetynet%20%20v.2%20amendment%20version%204.10%20.pdf) +* [Amendment to NMEA0183 v4.10 # 20131216](https://www.nmea.org/Assets/20131216%200183%20epv_spw_trl%20amendment%20version%204.10.pdf) +* [Approved 0183 Manufacturer's Mnemonic Codes](https://www.nmea.org/Assets/20160523%200183%20manufacturer%20codes.pdf) +* [Manufacturer Mnemonic Codes and Sentence Formatters List](https://www.nmea.org/Assets/20130801%200183%20identifier%20list.pdf) +* [NMEA 0183 Sentences Not Recommended for New Designs](http://www.nmea.org/Assets/100108_nmea_0183_sentences_not_recommended_for_new_designs.pdf) +* [Standards Update October 2014 by Steve Spitzer](http://www.nmea.org/Assets/20141004%20nmea%20standards%20update%20for%202014%20conference.pdf) + +### Navigation Center of U.S. Department of Homeland Security -**Downloads** +* [Automatic Identification System Overview](http://www.navcen.uscg.gov/?pageName=AISMessages) -Pre-built jars may be downloaded from [releases](https://github.com/ktuukkan/marine-api/releases) and [Sourceforge.net](https://sourceforge.net/projects/marineapi/files/Releases/). Project was originally published in Sourceforge, hence the `net.sf.marineapi` package naming. +### Product Manuals and User Guides -[![Download Java Marine API](https://img.shields.io/sourceforge/dm/marineapi.svg)](https://sourceforge.net/projects/marineapi/files/latest/download) +* [BD9xx GNSS Receivers Help](http://www.trimble.com/OEM_ReceiverHelp/V4.44/en/) by Trimble Navigation Limited +* [Guide for AgGPS Receivers](http://trl.trimble.com/docushare/dsweb/Get/Document-159714/NMEA_Messages_RevA_Guide_ENG.pdf) by Trimble Navigation Limited +* [Hydromagic NMEA 0183 documentation](https://www.eye4software.com/hydromagic/documentation/nmea0183/) by Eye4Software +* [NM-2C User's Guide](http://www.nuovamarea.com/files/product%20manuals/nm%20manuals/NM-2C_v1.00.pdf) by Nuova Marea Ltd +* [PB100 WeatherStation Manual](http://www.airmartechnology.com/uploads/installguide/PB100TechnicalManual_rev1.007.pdf) by Airmar +* [RT Intertial+ NMEA Description (rev. 100720)](https://www.datrontechnology.co.uk/wp-content/uploads/2016/10/nmeaman.pdf) by Oxford Technical Solutions Ltd +* [SeaTalk/NMEA/RS232 Converter Manual](https://community.atmel.com/sites/default/files/project_files/ManualV3-5.pdf) by gadgetPool +* [SiRF NMEA Reference Manual](https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf) by SiRF Technology, Inc. +* [The NMEA Information Sheet](https://www.actisense.com/wp-content/uploads/2017/07/NMEA-0183-Information-sheet-issue-4-1-1.pdf) by Actisense -**Maven** +### Miscellaneus -Development snapshots and releases are deployed to [Maven Central Repository](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22net.sf.marineapi%22) every now and then. However, there is no plan or schedule for this. Also, notice that although the snapshots should be mostly stable, they are still work-in-progress. +* [NMEA Revealed](http://catb.org/gpsd/NMEA.html) by Eric S. Raymond +* [AIVDM/AIVDO protocol decoding](http://catb.org/gpsd/AIVDM.html) by Eric S. Raymond +* [NMEA Data](http://www.gpsinformation.org/dale/nmea.htm) by Dale DePriest +* [SeaTalk Technical Reference](http://www.thomasknauf.de/seatalk.htm) by Thomas Knauf -* [Snapshots repository](https://oss.sonatype.org/content/repositories/snapshots/net/sf/marineapi/marineapi/) +### No longer available -See [changelog](https://github.com/ktuukkan/marine-api/blob/master/changelog.txt) for current SNAPSHOT version. You may also need to tweak your [Maven settings](https://gist.github.com/ktuukkan/8cf2de1e915185118c60) to enable snapshot dependencies. +* [RS232/SeaTalk/NMEA Converter manual](http://www.gadgetpool.de/nuke/downloads/ManualRS232.pdf) + by gadgetPool (not found) +* [NMEA Sentence Information](http://home.mira.net/~gnb/gps/nmea.html) + by Glenn Baddeley (not found) +* [The NMEA FAQ](http://vancouver-webpages.com/peter/nmeafaq.txt) + by Peter Bennett (see [older copy](http://www.eoss.org/pubs/nmeafaq.htm)) diff --git a/src/main/resources/doc/readme.txt b/src/main/resources/doc/readme.txt index a152111d..0948bd5e 100644 --- a/src/main/resources/doc/readme.txt +++ b/src/main/resources/doc/readme.txt @@ -1,29 +1,11 @@ Java Marine API - README -Version @VERSION@ (b@BUILD_ID@) - +Version @VERSION@ (@BUILD_ID@) +https://github.com/ktuukkan/marine-api Java Marine API is an NMEA-0183 library for decoding and encoding the data provided by various electronic marine instruments such as GPS, echo sounder and weather instruments. -SYSTEM REQUIREMENTS - - * Java 2 SE JRE/JDK (1.8+ recommended) - - For serial port communication (choose one): - - * Java Communications API - - - * RXTX library - - - * Neuron Robotics Java Serial Library - - - * PureJavaComm - - LICENSING Java Marine API is free software: you can redistribute it and/or modify it @@ -37,119 +19,22 @@ 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 Java Marine API. If not, see . +along with Java Marine API. If not, see http://www.gnu.org/licenses/ + +See also: +https://www.gnu.org/licenses/lgpl-java.en.html DISCLAIMER Java Marine API is not official NMEA software. Further, it is not related to -National Marine Electronics Association . 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. - -SOURCE CODE - -The source code is maintained in Github . - -Browse code at Github.com: - +National Marine Electronics Association (http://www.nmea.org/). The +interpretation of NMEA 0183 and related protocols is based entirely on +varying set of publicly available documents in the Internet. Thus, it is not +guaranteed that the library follows and implements these standards correctly. -Repository URL (read-only): - - -If you wish to contribute new features or bug fixes, please fork and send pull -requests in Github. +Electronic devices and software do not replace safe navigation practices and +should never be your only reference. DEVELOPERS -* Kimmo Tuukkanen - -REFERENCES - -All technical information and specifications have been gathered from the -following documents found publicly available in the Internet. The availability -has been last checked on 2018-11-10. - - * NMEA 0183 article in Wikipedia - - - * Manufacturer Mnemonic Codes and Sentence Formatters List (August 1 2013) by NMEA.org - - - * Approved 0183 Manufacturer's Mnemonic Codes (November 22, 2011) by NMEA.org - - - * Amendment to NMEA0183 Version 4.10 # AT 0183 20130815 Version 2 by NMEA.org - - - * Amendment to NMEA 0183 Version 4.10 # AT 0183 20130814 by NMEA.org - - - * Amendment to NMEA0183 Version 4.10 # AT 0183 20131216 by NMEA.org - - - * NMEA 0183 Sentences Not Recommended for New Designs by NMEA.org - - - * NMEA International Conference & Expo - Standards Update October 2014 by Steve Spitzer - - - * Automatic Identification System Overview by Navigation Center of U.S. Department of Homeland Security - - - * SiRF NMEA Reference Manual (Rev. 2.1, Dec 2007) by SiRF Technology, Inc. - - - * Hydromagic NMEA 0183 documentation by Eye4Software - - - * The NMEA Information Sheet (issue 4, July 2017) by Actisense - - - * PB100 WeatherStation Technical Manual by Airmar - - - * BD9xx GNSS Receivers Help by Trimble Navigation Limited - - - * NMEA-0183 Messages - Guide for AgGPS Receivers by Trimble Navigation Limited - - - * NM-2C User's Guide/Installation Manual v1.0 by Nuova Marea Ltd - - - * SeaTalk <-> NMEA / SeaTalk <-> RS232 Converter installation and operation manual by gadgetPool - - - * NMEA Revealed by Eric S. Raymond - - - * AIVDM/AIVDO protocol decoding (v1.52, Aug 2016) by Eric S. Raymond - - - * NMEA Data by Dale DePriest - - - * SeaTalk Technical Reference (revision 3.22) by Thomas Knauf - - - Unavailable or outdated - - * The NMEA FAQ by Peter Bennett - [not found] - [older copy] - - * RT Intertial+ NMEA Description (rev. 100720) by Oxford Technical Solutions - [not found] - - * NMEA Sentence Information by Glenn Baddeley - [not found] - - * Eye4Software GPS Toolkit - Description of supported NMEA0183 sentences - [not found] - - * RS232 SeaTalk <-> NMEA Converter installation and operation manual by gadgetPool - [not found] - -All warnings concerning the accuracy of information in the above documents apply -equally to Java Marine API. +* Kimmo Tuukkanen (kimmo.tuukkanen@gmail.com)