OSDN Git Service

NMEAパケットの部分実装(GPDTM, GPGBS, GPGLL)
[yubeshi/yubeshi.git] / Yubeshi / Nmea / GpGbs.cs
index d431f59..1d9b281 100755 (executable)
@@ -16,5 +16,111 @@ namespace Yubeshi.Nmea
     /// </summary>\r
     public class GpGbs : Packet\r
     {\r
+        #region fields\r
+        private static readonly byte[] header;\r
+        private const int elementNum = 8;\r
+\r
+        #endregion\r
+\r
+        #region constructors\r
+        \r
+        static GpGbs()\r
+        {\r
+            header = Encoding.ASCII.GetBytes("$GPGBS,");\r
+        }\r
+        \r
+        public GpGbs()\r
+        {\r
+        }\r
+\r
+        public GpGbs(byte[] sentence)\r
+            : this(sentence, GetElements(sentence, elementNum))\r
+        {\r
+        }\r
+\r
+        private GpGbs(byte[] sentence, Elements elements)\r
+            : base(sentence, elements.PacketLength)\r
+        {\r
+            string[] v = elements.Values;\r
+            Utc = ParseTime(v[0]);\r
+            LatitudeError = ParseDouble(v[1]);\r
+            LongitudeError = ParseDouble(v[2]);\r
+            AltitudeError = ParseDouble(v[3]);\r
+            FailedSatellite = ParseInt(v[4], -1);\r
+            ProbabilityOfMissedDetection = ParseDouble(v[5]);\r
+            Bias = ParseDouble(v[6]);\r
+            StandardDeviationOfBias = ParseDouble(v[7]);\r
+            CheckSum = elements.CheckSum;\r
+        }\r
+\r
+        #endregion\r
+\r
+        #region properties\r
+        public TimeSpan Utc\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double LatitudeError\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double LongitudeError\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double AltitudeError\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public int FailedSatellite\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double ProbabilityOfMissedDetection\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double Bias\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+\r
+        public double StandardDeviationOfBias\r
+        {\r
+            get;\r
+            private set;\r
+        }\r
+        #endregion\r
+\r
+        #region public method\r
+\r
+        public static bool TryParse(byte[] sentence, out UnknownPacket packet)\r
+        {\r
+            return TryParse(sentence, out packet, header, elementNum, Build);\r
+        }\r
+\r
+        #endregion\r
+\r
+        #region private method\r
+\r
+        private static Packet Build(byte[] sentence, Elements elements)\r
+        {\r
+            return new GpGbs(sentence, elements);\r
+        }\r
+\r
+        #endregion\r
     }\r
 }
\ No newline at end of file