public void ParseRmcLine() { const string line = "$GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130917,011.3,E*65"; { var nmeaMsg = new NmeaLineFactory().ParseLine(line); Assert.Equal(NmeaType.Rmc, nmeaMsg.NmeaType); var rmc = (RmcLine)nmeaMsg; Assert.Equal(new DateTime(2017, 9, 13, 8, 18, 36), rmc.FixTime); Assert.Equal(-37.8608333333, rmc.GeoCoordinate.Latitude, 10); Assert.Equal(145.1226666667, rmc.GeoCoordinate.Longitude, 10); Assert.True(rmc.Active); Assert.Equal(360, rmc.GeoCoordinate.Course); Assert.Equal(11.3, rmc.MagneticVariation); Assert.Equal(0, rmc.GeoCoordinate.Speed); } }
public void ParseGsaLine() { const string line = "$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39"; var nmeaMsg = new NmeaLineFactory().ParseLine(line); Assert.Equal(NmeaType.Gsa, nmeaMsg.NmeaType); var gsa = (GsaLine)nmeaMsg; Assert.Equal(FixType.Fix3D, gsa.Fix); var expectedSatIds = new[] { 04, 05, 09, 12, 24 }; Assert.Equal(expectedSatIds, gsa.SatelliteIDs); Assert.Equal(2.5, gsa.Pdop); Assert.Equal(1.3, gsa.Hdop); Assert.Equal(2.1, gsa.Vdop); }
public void ParseRmbLine() { const string line = "$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*20"; var nmeaMsg = new NmeaLineFactory().ParseLine(line); Assert.Equal(NmeaType.Rmb, nmeaMsg.NmeaType); var rmb = (RmbLine)nmeaMsg; Assert.Equal(RmbDataStatus.Ok, rmb.Status); Assert.Equal(-0.66, rmb.CrossTrackError); Assert.Equal(3, rmb.OriginWaypointId); Assert.Equal(4, rmb.DestinationWaypointId); Assert.Equal(49.287333, rmb.DestinationGeoCoordinate.Latitude, 6); Assert.Equal(-123.1595, rmb.DestinationGeoCoordinate.Longitude); Assert.Equal(1.3, rmb.RangeToDestination); Assert.Equal(52.5, rmb.TrueBearing); Assert.False(rmb.Arrived); }
public void ParseGgaLine() { const string line = "$GPGGA,115739.00,4158.8441367,N,09147.4416929,W,4,13,0.9,255.747,M,-32.00,M,01,0000*6E"; var nmeaMsg = new NmeaLineFactory().ParseLine(line); Assert.Equal(NmeaType.Gga, nmeaMsg.NmeaType); var gga = (GgaLine)nmeaMsg; Assert.Equal(Helper.StringToTimeSpan("115739"), gga.FixTime); Assert.Equal(41.9807356117, gga.Position.Latitude, 10); Assert.Equal(-91.7906948817, gga.Position.Longitude, 10); Assert.Equal(FixQuality.RealTimeKinematic, gga.Quality); Assert.Equal(13, gga.NumberOfSatellites); Assert.Equal(0.9, gga.Hdop); Assert.Equal(255.747, gga.Position.Altitude); Assert.Equal("M", gga.Position.AltitudeUnits); Assert.Equal(-32, gga.GeoidalSeparation); Assert.Equal("M", gga.GeoidalSeparationUnits); Assert.Equal(1.Seconds(), gga.TimeSinceLastDgpsUpdate); Assert.Equal(0, gga.DgpsStationId); }
public void ParseGsvLine() { const string line = "$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75"; var nmeaMsg = new NmeaLineFactory().ParseLine(line); Assert.Equal(NmeaType.Gsv, nmeaMsg.NmeaType); var gsv = (GsvLine)nmeaMsg; Assert.Equal(2, gsv.MessageCount); Assert.Equal(1, gsv.MessageIndex); Assert.Equal(8, gsv.SatelliteCount); Assert.Equal(4, gsv.Satellites.Length); //01,40,083,46 Assert.Equal(1, gsv.Satellites[0].ID); Assert.Equal(40, gsv.Satellites[0].Elevation); Assert.Equal(83, gsv.Satellites[0].Azimuth); Assert.Equal(46, gsv.Satellites[0].SNR); //02,17,308,41 Assert.Equal(2, gsv.Satellites[1].ID); Assert.Equal(17, gsv.Satellites[1].Elevation); Assert.Equal(308, gsv.Satellites[1].Azimuth); Assert.Equal(41, gsv.Satellites[1].SNR); //12,07,344,39 Assert.Equal(12, gsv.Satellites[2].ID); Assert.Equal(7, gsv.Satellites[2].Elevation); Assert.Equal(344, gsv.Satellites[2].Azimuth); Assert.Equal(39, gsv.Satellites[2].SNR); //14,22,228,45 Assert.Equal(14, gsv.Satellites[3].ID); Assert.Equal(22, gsv.Satellites[3].Elevation); Assert.Equal(228, gsv.Satellites[3].Azimuth); Assert.Equal(45, gsv.Satellites[3].SNR); }