This commit is contained in:
Morten Nielsen 2020-01-16 23:01:11 -08:00
commit a7dd92d432

View file

@ -1,12 +1,8 @@
Nmea Parser
=========
_NOTE: The documentation below matches the v1.x releases. I'm currently working on a big revamp of the API to make it simpler and cover more scenarios learned over time, which will include some breaking changes. So the doc below does not currently match what you see in the master-branch_
=========
Library for reading and parsing NMEA data message streams.
It makes it easy to connect and listen for NMEA messages coming from various devices in Windows Store, Windows Phone, Windows Desktop/.NET and Windows Universal apps as well as Xamarin for iOS and Android.
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.
## Sponsoring
@ -18,25 +14,22 @@ See here for details: https://github.com/sponsors/dotMorten
The following inputs are supported:
- System.IO.Stream (all platforms)
- Emulation from NMEA log file (all platforms)
- Bluetooth: Windows Universal. Desktop is supported using the bluetooth device via the SerialPortDevice.
- Bluetooth: Windows Universal and Android. Desktop is supported using the bluetooth device via the SerialPortDevice.
- Serial Device: Windows Desktop and Windows Universal.
Currently supported NMEA messages:
- GPS: GPBOD, GPGGA, GPGLL, GPGNS, GPGSA, GPGST, GPGSV, GPRMB, GPRMC, GPRTE
- GLONASS: GLGNS, GLGSV
- GALILEO: GAGSV
- Generic GNSS: GNGGA, GNGLL, GNGNS, GNGSA, GNGST, GNRMC
- Garmin GPS NMEA (PGRME, PGRMZ)
- Trimble Laser Range Finder (PTNLA, PTNLB)
- TruePulse Laser Range Finder (PLTIT)
- 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
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.
Example:
```csharp
[NmeaMessageType("GPRMC")]
public class Gprmc : NmeaMessage
[NmeaMessageType("--RMC")]
public class Rmc : NmeaMessage
{
protected override void LoadMessage(string[] message)
{