OSDN Git Service

NAVパケットの整理・スタブ作成
[yubeshi/yubeshi.git] / Yubeshi / Ubx / NavDop.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.Ubx\r
13 {\r
14     public class NavDop : Packet\r
15     {\r
16         #region constructors\r
17 \r
18         public NavDop(byte[] sentence, int length)\r
19             : base(sentence, length)\r
20         {\r
21             ID = MessageID.NavDop;\r
22         }\r
23 \r
24         #endregion\r
25 \r
26         #region properties\r
27 \r
28         public decimal TimeOfWeek\r
29         {\r
30             get\r
31             {\r
32                 return BitConverter.ToUInt32(Raw, 6 + 0) * 1e-3m;\r
33             }\r
34         }\r
35 \r
36         public double Geometric\r
37         {\r
38             get\r
39             {\r
40                 return BitConverter.ToUInt16(Raw, 6 + 4) * 1e-2;\r
41             }\r
42         }\r
43 \r
44         public double Position\r
45         {\r
46             get\r
47             {\r
48                 return BitConverter.ToUInt16(Raw, 6 + 6) * 1e-2;\r
49             }\r
50         }\r
51 \r
52         public double Time\r
53         {\r
54             get\r
55             {\r
56                 return BitConverter.ToUInt16(Raw, 6 + 8) * 1e-2;\r
57             }\r
58         }\r
59 \r
60         public double Vertical\r
61         {\r
62             get\r
63             {\r
64                 return BitConverter.ToUInt16(Raw, 6 + 10) * 1e-2;\r
65             }\r
66         }\r
67 \r
68         public double Horizonal\r
69         {\r
70             get\r
71             {\r
72                 return BitConverter.ToUInt16(Raw, 6 + 12) * 1e-2;\r
73             }\r
74         }\r
75 \r
76         public double Noarthing\r
77         {\r
78             get\r
79             {\r
80                 return BitConverter.ToUInt16(Raw, 6 + 14) * 1e-2;\r
81             }\r
82         }\r
83 \r
84         public double Easting\r
85         {\r
86             get\r
87             {\r
88                 return BitConverter.ToUInt16(Raw, 6 + 16) * 1e-2;\r
89             }\r
90         }\r
91 \r
92         #endregion\r
93 \r
94         #region public methods\r
95 \r
96         public static bool TryParse(byte[] sentence, out UnknownPacket packet)\r
97         {\r
98             return TryParse(sentence, out packet, MessageID.NavDop, 18, Build);\r
99         }\r
100 \r
101         #endregion\r
102 \r
103         #region private methods\r
104 \r
105         private static Packet Build(byte[] sentence, int length)\r
106         {\r
107             return new NavDop(sentence, length);\r
108         }\r
109 \r
110         #endregion\r
111     }\r
112 }\r