2014-07-25 19:25:10 +02:00
Nmea Parser
2014-02-11 06:57:05 +01:00
=========
2015-05-30 00:15:45 +02:00
Library for reading and parsing NMEA data message streams.
2020-01-17 07:57:15 +01:00
It makes it easy to connect and listen for NMEA messages coming from various devices in Windows Universal, Windows Desktop/.NET and Windows Universal apps as well as Xamarin for iOS and Android.
2014-07-25 21:58:49 +02:00
2020-01-16 00:36:30 +01:00
## Sponsoring
If you like this library and use it a lot, consider sponsoring me. Anything helps and encourages me to keep going.
See here for details: https://github.com/sponsors/dotMorten
### Features
2015-05-30 00:14:26 +02:00
The following inputs are supported:
- System.IO.Stream (all platforms)
- Emulation from NMEA log file (all platforms)
2020-01-17 07:57:15 +01:00
- Bluetooth: Windows Universal and Android. Desktop is supported using the bluetooth device via the SerialPortDevice.
2015-05-30 00:14:26 +02:00
- Serial Device: Windows Desktop and Windows Universal.
2014-02-11 07:33:55 +01:00
2014-07-31 23:09:39 +02:00
Currently supported NMEA messages:
2020-01-17 07:57:15 +01:00
- GNSS: BOD, GGA, GLL, GNS, GSA, GST, GSV, RMB, RMA, RMB, RMC, RTE, VTG, ZDA
- Garmin Proprietary: PGRME, PGRMZ
- Trimble Laser Range Finder: PTNLA, PTNLB
- TruePulse Laser Range Finder: PLTIT
2014-02-11 07:38:13 +01:00
2014-07-31 08:20:17 +02:00
The API is easily extensible with more NMEA messages. Simply create a new class inheriting from "NmeaMessage" and use the NmeaMessageType Attribute to tag it with the NMEA Message Token it supports.
2014-02-11 07:38:13 +01:00
Example:
2014-07-31 23:09:12 +02:00
```csharp
2020-01-17 07:57:15 +01:00
[NmeaMessageType("--RMC")]
public class Rmc : NmeaMessage
2014-02-11 07:38:13 +01:00
{
protected override void LoadMessage(string[] message)
{
2014-07-25 22:01:36 +02:00
//TODO: Process message parts
2014-02-11 07:38:13 +01:00
}
}
```
2014-02-11 07:41:13 +01:00
If you add new messages, please fork, provide a simple unit test for the message and submit a pull request.
2014-02-11 07:33:55 +01:00
2014-07-31 08:16:16 +02:00
### NuGet
You can get the library via [NuGet ](http://www.nuget.org ) if you have the extension installed for Visual Studio or via the PowerShell package manager. This control is published via NuGet at [SharpGIS.NmeaParser ](https://nuget.org/packages/SharpGIS.NmeaParser ).
2015-01-30 21:26:30 +01:00
< table border = "4px" >
< tr > < td >
< code > PM> Install-Package SharpGIS.NmeaParser< / code >
< / td > < / tr > < / table >
2014-07-31 08:16:16 +02:00
2014-07-25 21:58:49 +02:00
Usage
2014-02-11 07:33:55 +01:00
=====================
2014-07-25 21:26:16 +02:00
2014-07-25 22:00:29 +02:00
Please see the [WIKI ](http://www.github.com/dotMorten/NmeaParser/wiki ) how to use it on the various platforms
2014-11-16 19:01:15 +01:00
Screenshots
=====================
Screenshots from Desktop sample app:


Map view using the [ArcGIS Runtime ](http://developer.arcgis.com/net ) (see [separate branch ](https://github.com/dotMorten/NmeaParser/tree/ArcGISLocationProvider )):
2014-11-16 19:28:14 +01:00

2014-11-16 19:01:15 +01:00