{"id":34293492,"url":"https://github.com/ktuukkan/marine-api","last_synced_at":"2026-04-11T05:02:24.884Z","repository":{"id":538824,"uuid":"8322256","full_name":"ktuukkan/marine-api","owner":"ktuukkan","description":"Java Marine API - NMEA 0183 library for Java","archived":false,"fork":false,"pushed_at":"2026-03-05T19:42:39.000Z","size":5225,"stargazers_count":267,"open_issues_count":11,"forks_count":105,"subscribers_count":20,"default_branch":"master","last_synced_at":"2026-03-05T22:46:26.244Z","etag":null,"topics":["0183","ais","autopilot","boating","gps","java","marine","navigation","nmea","radar","sailing","seatalk","sonar","ublox"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ktuukkan.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-02-20T21:10:29.000Z","updated_at":"2026-03-05T19:42:43.000Z","dependencies_parsed_at":"2023-11-17T01:09:47.543Z","dependency_job_id":"633d5350-031c-451b-ac76-9f41506ef6a0","html_url":"https://github.com/ktuukkan/marine-api","commit_stats":{"total_commits":700,"total_committers":35,"mean_commits":20.0,"dds":0.5057142857142858,"last_synced_commit":"2f804ba766fccb950a419b7710f1101082d4025f"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/ktuukkan/marine-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktuukkan%2Fmarine-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktuukkan%2Fmarine-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktuukkan%2Fmarine-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktuukkan%2Fmarine-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ktuukkan","download_url":"https://codeload.github.com/ktuukkan/marine-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ktuukkan%2Fmarine-api/sbom","scorecard":{"id":572243,"data":{"date":"2025-08-11","repo":{"name":"github.com/ktuukkan/marine-api","commit":"433ed911314bc46a26a05df687503faa8f74ce5c"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 2/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/ktuukkan/marine-api/build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/ktuukkan/marine-api/build.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU Lesser General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.12.0 not signed: https://api.github.com/repos/ktuukkan/marine-api/releases/93708627","Warn: release artifact 0.11.0 not signed: https://api.github.com/repos/ktuukkan/marine-api/releases/18450425","Warn: release artifact 0.10.0 not signed: https://api.github.com/repos/ktuukkan/marine-api/releases/6791194","Warn: release artifact 0.9.0 not signed: https://api.github.com/repos/ktuukkan/marine-api/releases/2268544","Warn: release artifact 0.8.1 not signed: https://api.github.com/repos/ktuukkan/marine-api/releases/363184","Warn: release artifact 0.12.0 does not have provenance: https://api.github.com/repos/ktuukkan/marine-api/releases/93708627","Warn: release artifact 0.11.0 does not have provenance: https://api.github.com/repos/ktuukkan/marine-api/releases/18450425","Warn: release artifact 0.10.0 does not have provenance: https://api.github.com/repos/ktuukkan/marine-api/releases/6791194","Warn: release artifact 0.9.0 does not have provenance: https://api.github.com/repos/ktuukkan/marine-api/releases/2268544","Warn: release artifact 0.8.1 does not have provenance: https://api.github.com/repos/ktuukkan/marine-api/releases/363184"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-cgp8-4m63-fhh5"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T16:38:33.861Z","repository_id":538824,"created_at":"2025-08-20T16:38:33.861Z","updated_at":"2025-08-20T16:38:33.861Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31669117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["0183","ais","autopilot","boating","gps","java","marine","navigation","nmea","radar","sailing","seatalk","sonar","ublox"],"created_at":"2025-12-17T03:37:16.879Z","updated_at":"2026-04-11T05:02:24.878Z","avatar_url":"https://github.com/ktuukkan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Java Marine API\n[![License](https://img.shields.io/badge/License-LGPL%20v3-brightgreen.svg)](./LICENSE)\n[![Build \u0026 Test](https://github.com/ktuukkan/marine-api/actions/workflows/build.yml/badge.svg)](https://github.com/ktuukkan/marine-api/actions/workflows/build.yml)\n[![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)\n[![Download Java Marine API](https://img.shields.io/sourceforge/dm/marineapi.svg)](https://sourceforge.net/projects/marineapi/files/Releases/)\n[![Javadocs](http://www.javadoc.io/badge/net.sf.marineapi/marineapi.svg)](http://www.javadoc.io/doc/net.sf.marineapi/marineapi)\n\n- [Java Marine API](#java-marine-api)\n  - [About](#about)\n    - [Features](#features)\n    - [Licensing](#licensing)\n    - [Disclaimer](#disclaimer)\n    - [Requirements](#requirements)\n    - [Usage](#usage)\n  - [Supported Protocols](#supported-protocols)\n    - [NMEA 0183](#nmea-0183)\n    - [AIS](#ais)\n    - [Raymarine SeaTalk\u003csup\u003e1\u003c/sup\u003e](#raymarine-seatalksup1sup)\n    - [u-blox](#u-blox)\n  - [Distribution](#distribution)\n    - [Pre-built JARs](#pre-built-jars)\n    - [Maven](#maven)\n      - [Snapshots](#snapshots)\n  - [Contributing](#contributing)\n  - [References](#references)\n    - [National Marine Electronics Association](#national-marine-electronics-association)\n    - [Navigation Center of U.S. Department of Homeland Security](#navigation-center-of-us-department-of-homeland-security)\n    - [Product Manuals and User Guides](#product-manuals-and-user-guides)\n    - [Wikipedia](#wikipedia)\n    - [Miscellaneus](#miscellaneus)\n    - [No longer available](#no-longer-available)\n\n## About\n\nJava Marine API is an [NMEA 0183](http://en.wikipedia.org/wiki/NMEA_0183) parser\nlibrary for decoding and encoding the data provided by various electronic marine\ndevices such as GPS, echo sounder and weather instruments.\n\n### Features\n\n- Generic and extentable API\n- Detects NMEA 0183 sentences from most input streams\n    - E.g. from file, serial port, TCP/IP or UDP socket\n    - The provided data readers can be overridden with custom implementation\n- Converts the ASCII data stream to event/listener model with interfaces and parsers for [selected sentences](#nmea-0183)\n- Additional parsers may be added by extending the provided base classes\n    - This can be done at runtime and does not require compiling the library\n- Sentence encoding with common validation and unified formatting\n- Several sentences can be aggregated to single event by using [providers](./src/main/java/net/sf/marineapi/provider)\n    - For example, to record current position and depth of water\n- Decoding of selected [AIS messages](#ais)\n- The NMEA 0183 layer of [Raymarine SeaTalk\u003csup\u003e1\u003c/sup\u003e](http://www.raymarine.com/view/?id=5535)\n- Utilities and enumerations for handling the extracted data\n\n### Licensing\n\nJava Marine API is free software: you can redistribute it and/or modify it\nunder the terms of the [GNU Lesser General Public License](./LICENSE) published\nby the Free Software Foundation, either version 3 of the License, or (at your\noption) any later version.\n\nJava Marine API is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\nFITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License\nfor more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with Java Marine API. If not, see http://www.gnu.org/licenses/.\n\n- See also: [LGPL and Java](https://www.gnu.org/licenses/lgpl-java.en.html)\n\n### Disclaimer\n\nJava Marine API is not official NMEA 0183 software. Further, it is not related\nto [National Marine Electronics Association](http://www.nmea.org/).\n\nThe interpretation of NMEA 0183 and related protocols is based entirely on\nvarying set of publicly available [documents](#references) in the Internet.\nThus, it is not guaranteed that the library follows and implements these\nstandards correctly.\n\nElectronic devices and software do not replace safe navigation practices and\nshould never be your only reference.\n\n### Requirements\n\n* Java 2 SE JRE/JDK 11 or newer\n* For serial port communication (choose one):\n  * [Neuron Robotics Java Serial Library](https://github.com/NeuronRobotics/nrjavaserial)\n  * [PureJavaComm](http://www.sparetimelabs.com/purejavacomm)\n  * [RXTX library](http://rxtx.qbang.org)\n  * [Java Communications API](http://www.oracle.com/technetwork/java/index-jsp-141752.html)\n\n### Usage\n\nWrite a listener:\n\n```java\nclass GGAListener extends AbstractSentenceListener\u003cGGASentence\u003e {\n    public void sentenceRead(GGASentence gga) {\n        Position pos = gga.getPosition();\n        // .. your code\n    }\n}\n```\n\nSet up the reader:\n\n```java\nFile file = new File(\"/var/log/nmea.log\");\nSentenceReader reader = new SentenceReader(new FileInputStream(file));\nreader.addSentenceListener(new GGAListener());\nreader.start();\n```\n\nManual parsing:\n\n```java\nString nmea = \"$GPGSA,A,3,03,05,07,08,10,15,18,19,21,28,,,1.4,0.9,1.1*3A\";\nSentenceFactory sf = SentenceFactory.getInstance();\nGSASentence gsa = (GSASentence) sf.createParser(nmea);\n```\n\nRecommended Android Proguard settings when `minifyEnabled` is set `true`:\n\n```\n-keep class net.sf.marineapi.** { *; }\n-keep interface net.sf.marineapi.** { *; }\n-keepattributes MethodParameters\n-dontwarn gnu.io.CommPortIdentifier\n-dontwarn gnu.io.RXTXPort\n-dontwarn gnu.io.SerialPort\n```\n\nSee also:\n- [Examples](src/main/java/net/sf/marineapi/example)\n- [Javadocs](http://www.javadoc.io/doc/net.sf.marineapi/marineapi)\n- [Graphical User Interface](https://github.com/aitov/gps-info) using marine-api by @aitov\n\n\n## Supported Protocols\n\n### NMEA 0183\n\nThe following sentences are decoded and encoded. The provided parsers may be\noverridden and additional parsers may be added at runtime, _without compiling_\nthe library. See wiki for\n[instructions](https://github.com/ktuukkan/marine-api/wiki/Integrating-your-own-parsers-\u0026-contributing).\n\n|ID     | Description\n|---    |---\n|ALK    |The NMEA 0183 layer of Raymarine SeaTalk\u003csup\u003e1\u003c/sup\u003e (`$STALK`)\n|APB    |Autopilot cross-track error, destination bearings and heading\n|BOD    |Bearing from origin to destination\n|CUR    |Water currents information\n|DBT    |Water depth below transducer in meters, feet and fathoms\n|DPT    |Water depth in meters with offset to transducer\n|DTA    |Boreal GasFinder2 and GasFinderMC\n|DTB    |Boreal GasFinder2 and GasFinderMC\n|DTM    |Datum reference\n|GBS    |Glonass satellite fault detection (RAIM support)\n|GGA    |GPS fix data\n|GLL    |Current geographic position and time\n|GNS    |Glonass fix data\n|GSA    |Precision of GPS fix\n|GST    |GPS pseudorange noise statistics\n|GSV    |Detailed GPS satellite data\n|HDG    |Heading with magnetic deviation and variation\n|HDM    |Magnetic heading in degrees\n|HDT    |True heading in degrees\n|HTC    |Heading/Track control systems input data and commands.\n|HTD    |Heading/Track control systems output data and commands.\n|MDA    |Meteorological composite\n|MHU    |Relative and absolute humidity with dew point\n|MMB    |Barometric pressure\n|MTA    |Air temperature in degrees Celcius\n|MTW    |Water temperature in degrees Celcius\n|MWD    |Wind speed and direction.\n|MWV    |Wind speed and angle\n|OSD    |Own ship data\n|RMB    |Recommended minimum navigation information \"type B\"\n|RMC    |Recommended minimum navigation information \"type C\"\n|ROT    |Vessel's rate of turn\n|RPM    |Engine or shaft revolutions\n|RSA    |Rudder angle in degrees\n|RSD    |Radar system data\n|RTE    |GPS route data with list of waypoints\n|TLB    |Target label\n|TTM    |Tracked target message\n|TXT    |Text message\n|VBW    |Dual ground/water speed.\n|VDM    |The NMEA 0183 layer of AIS: other vessels' data\n|VDO    |The NMEA 0183 layer of AIS: vessel's own data\n|VDR    |Set and drift\n|VHW    |Water speed and heading\n|VLW    |Distance traveled through water\n|VTG    |Course and speed over ground\n|VWR    |Relative wind speed and angle\n|VWT    |True wind speed and angle\n|WPL    |Destination waypoint location and ID\n|XDR    |Transducer measurements\n|XTE    |Measured cross-track error\n|ZDA    |UTC time and date with local time offset\n\n### AIS\n\nThe following [AIS](https://en.wikipedia.org/wiki/Automatic_Identification_System)\nmessages are decoded.\n\n| ID    | Description\n|---    |---\n|01     |Position Report Class A\n|02     |Position Report Class A (Assigned schedule)\n|03     |Position Report Class A (Response to interrogation)\n|04     |Base Station Report\n|05     |Static and Voyage Related Data\n|09     |Standard SAR Aircraft Position Report\n|18     |Standard Class B CS Position Report\n|19     |Extended Class B Equipment Position Report\n|21     |Aid-to-Navigation Report\n|24     |Static Data Report\n|27     |Position Report for long range applications\n\n### Raymarine SeaTalk\u003csup\u003e1\u003c/sup\u003e\n\n*Not to be confused with SeaTalk\u003csup\u003eng\u003c/sup\u003e derived from NMEA 2000.*\n\nOnly the NMEA layer is currently supported, see\n[STALKSentence](src/main/java/net/sf/marineapi/nmea/sentence/STALKSentence.java)\nand [Issue #67](https://github.com/ktuukkan/marine-api/issues/67).\n\n### u-blox\n\nThe following [u-blox](https://www.u-blox.com/)\nvendor extension messages are supported:\n\n| ID      | Description\n|---      |---\n| PUBX,01 |Lat/Long Position Data\n| PUBX,03 |Satellite Status\n\n## Distribution\n\nReleases and snapshots are published every now and then, but there is no clear\nplan or schedule for this as most of the development happens per user requests\nor contribution.\n\n### Pre-built JARs\n\nRelease JARs may be downloaded from [releases](https://github.com/ktuukkan/marine-api/releases)\nand [Sourceforge.net](https://sourceforge.net/projects/marineapi/files/Releases/).\nThe ZIP package should contain all to get you going.\n\nThe project was first published in Sourceforge, hence the `net.sf.marineapi`\npackage naming.\n\n\n### Maven\n\nBoth releases and snapshots are deployed to [Maven Central Repository](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22net.sf.marineapi%22)\nand may be imported by adding the following dependency in your `pom.xml`.\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003enet.sf.marineapi\u003c/groupId\u003e\n  \u003cartifactId\u003emarineapi\u003c/artifactId\u003e\n  \u003cversion\u003e0.10.0\u003c/version\u003e\n  \u003ctype\u003ebundle\u003c/type\u003e\n\u003c/dependency\u003e\n```\n\n#### Snapshots\n\nThe snapshots should be mostly stable, but they are still *Work In Progress* and\nshould be considered as a preview of the next release.\n\nSee [changelog.txt](changelog.txt) for the current `SNAPSHOT` version. Notice that\nyou may need to tweak your [Maven settings](https://gist.github.com/ktuukkan/8cf2de1e915185118c60)\nto enable snapshot dependencies.\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003enet.sf.marineapi\u003c/groupId\u003e\n  \u003cartifactId\u003emarineapi\u003c/artifactId\u003e\n  \u003cversion\u003e0.11.0-SNAPSHOT\u003c/version\u003e\n  \u003ctype\u003ebundle\u003c/type\u003e\n\u003c/dependency\u003e\n```\n\nSnapshots may also be downloaded manually from the\n[repository](https://oss.sonatype.org/content/repositories/snapshots/net/sf/marineapi/marineapi/).\n\n\n## Contributing\n\nAny feedback or contribution is welcome. You have several options:\n\n- [Contact me](https://github.com/ktuukkan)\n- [Report a bug](https://github.com/ktuukkan/marine-api/issues)\n- [Fork](https://help.github.com/articles/fork-a-repo/) and open a [pull request](https://help.github.com/articles/about-pull-requests/)\nto share improvements.\n\n\n## References\n\nAll information and specifications for this library has been gathered from the\nfollowing documents, availability last checked on 2020-03-15.\n\n*Notice: any warnings regarding the accuracy of the information in below\ndocuments apply equally to Java Marine API.*\n\n### National Marine Electronics Association\n\n* [Amendment to NMEA 0183 v4.10 # 20130814](https://www.nmea.org/Assets/21030814%20nmea%200183_man%20overboard%20notification_mob_sentence%20amendment.pdf)\n* [Amendment to NMEA0183 v4.10 # 20130815](https://www.nmea.org/Assets/20131028%200183%20safetynet%20%20v.2%20amendment%20version%204.10%20.pdf)\n* [Amendment to NMEA0183 v4.10 # 20131216](https://www.nmea.org/Assets/20131216%200183%20epv_spw_trl%20amendment%20version%204.10.pdf)\n* [Approved 0183 Manufacturer's Mnemonic Codes](https://www.nmea.org/Assets/20160523%200183%20manufacturer%20codes.pdf)\n* [Manufacturer Mnemonic Codes and Sentence Formatters List](https://www.nmea.org/Assets/20130801%200183%20identifier%20list.pdf)\n* [NMEA 0183 Sentences Not Recommended for New Designs](http://www.nmea.org/Assets/100108_nmea_0183_sentences_not_recommended_for_new_designs.pdf)\n* [Standards Update October 2014 by Steve Spitzer](http://www.nmea.org/Assets/20141004%20nmea%20standards%20update%20for%202014%20conference.pdf)\n\n### Navigation Center of U.S. Department of Homeland Security\n\n* [Automatic Identification System Overview](http://www.navcen.uscg.gov/?pageName=AISMessages)\n\n### Product Manuals and User Guides\n\n* [BD9xx GNSS Receivers Help](http://www.trimble.com/OEM_ReceiverHelp/V4.44/en/) by Trimble Navigation Limited\n* [Guide for AgGPS Receivers](http://trl.trimble.com/docushare/dsweb/Get/Document-159714/NMEA_Messages_RevA_Guide_ENG.pdf) by Trimble Navigation Limited\n* [Hydromagic NMEA 0183 documentation](https://www.eye4software.com/hydromagic/documentation/nmea0183/) by Eye4Software\n* [NM-2C User's Guide](http://www.nuovamarea.com/files/product%20manuals/nm%20manuals/NM-2C_v1.00.pdf) by Nuova Marea Ltd\n* [PB100 WeatherStation Manual](http://www.airmartechnology.com/uploads/installguide/PB100TechnicalManual_rev1.007.pdf) by Airmar\n* [RT Intertial+ NMEA Description (rev. 100720)](https://www.datrontechnology.co.uk/wp-content/uploads/2016/10/nmeaman.pdf) by Oxford Technical Solutions Ltd\n* [SeaTalk/NMEA/RS232 Converter Manual](https://community.atmel.com/sites/default/files/project_files/ManualV3-5.pdf) by gadgetPool\n* [SiRF NMEA Reference Manual](https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf) by SiRF Technology, Inc.\n* [The NMEA Information Sheet](https://www.actisense.com/wp-content/uploads/2020/01/NMEA-0183-Information-sheet-issue-4-1-1.pdf) by Actisense\n* [ZED-F9P F9 high precision GNSS receiver Interface Description](https://www.u-blox.com/en/docs/UBX-18010854) by u-blox\n\n### Wikipedia\n\n  * [NMEA 0183](http://en.wikipedia.org/wiki/NMEA_0183)\n  * [Automatic Identification System](https://en.wikipedia.org/wiki/Automatic_identification_system)\n\n### Miscellaneus\n\n* [AIVDM/AIVDO protocol decoding](https://gpsd.gitlab.io/gpsd/AIVDM.html) by Eric S. Raymond\n* [NMEA Revealed](https://gpsd.gitlab.io/gpsd/NMEA.html) by Eric S. Raymond\n* [SeaTalk Technical Reference](http://www.thomasknauf.de/seatalk.htm) by Thomas Knauf\n\n### No longer available\n\n* [NMEA Data](http://www.gpsinformation.org/dale/nmea.htm) by Dale DePriest\n* [NMEA Sentence Information](http://home.mira.net/~gnb/gps/nmea.html) by Glenn Baddeley (not found)\n* [RS232/SeaTalk/NMEA Converter manual](http://www.gadgetpool.de/nuke/downloads/ManualRS232.pdf) by gadgetPool (not found)\n* [The NMEA FAQ](http://vancouver-webpages.com/peter/nmeafaq.txt) by Peter Bennett (see [older copy](http://www.eoss.org/pubs/nmeafaq.htm))\n\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktuukkan%2Fmarine-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fktuukkan%2Fmarine-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fktuukkan%2Fmarine-api/lists"}