Remarks

GPSWing
Status Status badge: working
Source code GitHub
NuGet package NuGet Gallery for GPSWing

Code Example

GPSWing gps;

public MeadowApp()
{
    Console.WriteLine("Initializing ...");

    ISerialMessagePort serial = Device.CreateSerialMessagePort(
        Device.SerialPortNames.Com4,
        suffixDelimiter: Encoding.ASCII.GetBytes("\r\n"),
        preserveDelimiter: true,
        baudRate: 9600);

    gps = new GPSWing(serial);

    Subscribe();

    gps.StartUpdating();
}

void Subscribe()
{
    gps.GgaReceived += (object sender, GnssPositionInfo location) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine(location);
        Console.WriteLine("*********************************************");
    };

    // GLL
    gps.GllReceived += (object sender, GnssPositionInfo location) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine(location);
        Console.WriteLine("*********************************************");
    };

    // GSA
    gps.GsaReceived += (object sender, ActiveSatellites activeSatellites) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine(activeSatellites);
        Console.WriteLine("*********************************************");
    };

    // RMC (recommended minimum)
    gps.RmcReceived += (object sender, GnssPositionInfo positionCourseAndTime) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine(positionCourseAndTime);
        Console.WriteLine("*********************************************");

    };

    // VTG (course made good)
    gps.VtgReceived += (object sender, CourseOverGround courseAndVelocity) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine($"{courseAndVelocity}");
        Console.WriteLine("*********************************************");
    };

    // GSV (satellites in view)
    gps.GsvReceived += (object sender, SatellitesInView satellites) => {
        Console.WriteLine("*********************************************");
        Console.WriteLine($"{satellites}");
        Console.WriteLine("*********************************************");
    };
}

Sample project(s) available on GitHub

Characteristic Locus
Inheritance System.Object Mt3339 > GPSWing
Inherited Members Mt3339.GgaReceived Mt3339.GllReceived Mt3339.GsaReceived Mt3339.RmcReceived Mt3339.VtgReceived Mt3339.GsvReceived Mt3339.Init() Mt3339.StartUpdating() Mt3339.InitDecoders()
Namespace Meadow.Foundation.FeatherWings
Assembly GPSWing.dll

Syntax

public class GPSWing : Mt3339

Constructors

GPSWing(ISerialMessagePort)

Declaration
public GPSWing(ISerialMessagePort serialMessagePort)

Parameters

Type Name Description
ISerialMessagePort serialMessagePort