4 * This software is distributed under a zlib-style license.
\r
5 * See license.txt for more information.
\r
9 using System.Collections.Generic;
\r
12 namespace Yubeshi.Nmea
\r
15 /// GNSS Satellite Fault Detection
\r
17 public class GpGbs : Packet
\r
20 private static readonly byte[] header;
\r
21 private const int elementNum = 8;
\r
25 #region constructors
\r
29 header = Encoding.ASCII.GetBytes("$GPGBS,");
\r
36 public GpGbs(byte[] sentence)
\r
37 : this(sentence, GetElements(sentence, elementNum))
\r
41 private GpGbs(byte[] sentence, Elements elements)
\r
42 : base(sentence, elements.PacketLength)
\r
44 string[] v = elements.Values;
\r
45 Utc = ParseTime(v[0]);
\r
46 LatitudeError = ParseDouble(v[1]);
\r
47 LongitudeError = ParseDouble(v[2]);
\r
48 AltitudeError = ParseDouble(v[3]);
\r
49 FailedSatellite = ParseInt(v[4], -1);
\r
50 ProbabilityOfMissedDetection = ParseDouble(v[5]);
\r
51 Bias = ParseDouble(v[6]);
\r
52 StandardDeviationOfBias = ParseDouble(v[7]);
\r
53 CheckSum = elements.CheckSum;
\r
65 public double LatitudeError
\r
71 public double LongitudeError
\r
77 public double AltitudeError
\r
83 public int FailedSatellite
\r
89 public double ProbabilityOfMissedDetection
\r
101 public double StandardDeviationOfBias
\r
108 #region public method
\r
110 public static bool TryParse(byte[] sentence, out UnknownPacket packet)
\r
112 return TryParse(sentence, out packet, header, elementNum, Build);
\r
117 #region private method
\r
119 private static Packet Build(byte[] sentence, Elements elements)
\r
121 return new GpGbs(sentence, elements);
\r