OSDN Git Service

Ubxパケットの部分的実装
[yubeshi/yubeshi.git] / Yubeshi / Nmea / GpGrs.cs
1 /*\r
2  *      Yubeshi GPS Parser\r
3  *\r
4  *      This software is distributed under a zlib-style license.\r
5  *      See license.txt for more information.\r
6  */\r
7 \r
8 using System;\r
9 using System.Collections.Generic;\r
10 using System.Text;\r
11 \r
12 namespace Yubeshi.Nmea\r
13 {\r
14     /// <summary>\r
15     ///     GNSS Range Residuals\r
16     /// </summary>\r
17     public class GpGrs : Packet\r
18     {\r
19         #region fields\r
20 \r
21         private static readonly byte[] header;\r
22         private const int elementNum = 14;\r
23 \r
24         #endregion\r
25 \r
26         #region constructors\r
27         \r
28         static GpGrs()\r
29         {\r
30             header = Encoding.ASCII.GetBytes("$GPGRS,");\r
31         }\r
32         \r
33         public GpGrs()\r
34         {\r
35         }\r
36 \r
37         public GpGrs(byte[] sentence)\r
38             : this(sentence, GetElements(sentence, elementNum))\r
39         {\r
40         }\r
41 \r
42         private GpGrs(byte[] sentence, Elements elements)\r
43         {\r
44             Raw = new byte[elements.PacketLength];\r
45             Array.Copy(sentence, Raw, elements.PacketLength);\r
46             string[] v = elements.Values;\r
47             TimeOfFix = ParseTime(v[0]);\r
48         }\r
49 \r
50         #endregion\r
51 \r
52         #region properties\r
53 \r
54         public TimeSpan TimeOfFix\r
55         {\r
56             get;\r
57             private set;\r
58         }\r
59 \r
60         #endregion\r
61 \r
62         #region public method\r
63 \r
64         public static bool TryParse(byte[] sentence, out Packet packet)\r
65         {\r
66             return TryParse(sentence, out packet, header, elementNum, Build);\r
67         }\r
68 \r
69         #endregion\r
70 \r
71         #region private method\r
72 \r
73         private static Packet Build(byte[] sentence, Elements elements)\r
74         {\r
75             return new GpGrs(sentence, elements);\r
76         }\r
77 \r
78         #endregion\r
79     }\r
80 }