OSDN Git Service

WeekとTimeOfWeekプロパティを持つパケットにGpsTimeプロパティ追加
authorkimikage <kimikage_ceo@hotmail.com>
Wed, 23 Feb 2011 14:07:47 +0000 (23:07 +0900)
committerkimikage <kimikage_ceo@hotmail.com>
Wed, 23 Feb 2011 14:07:47 +0000 (23:07 +0900)
Yubeshi/Ubx/NavSol.cs
Yubeshi/Ubx/NavTimeGps.cs
Yubeshi/Ubx/NavTimeUtc.cs
Yubeshi/Ubx/RxmRaw.cs

index 1857954..adb4cfa 100755 (executable)
@@ -24,6 +24,14 @@ namespace Yubeshi.Ubx
 \r
         #region properties\r
 \r
+        public GpsTime GpsTime\r
+        {\r
+            get\r
+            {\r
+                return new GpsTime(Week, TimeOfWeek);\r
+            }\r
+        }\r
+\r
         public decimal TimeOfWeek\r
         {\r
             get\r
index 31ab446..7b52bb0 100755 (executable)
@@ -24,6 +24,14 @@ namespace Yubeshi.Ubx
 \r
         #region properties\r
 \r
+        public GpsTime GpsTime\r
+        {\r
+            get\r
+            {\r
+                return new GpsTime(Week, TimeOfWeek);\r
+            }\r
+        }\r
+\r
         public decimal TimeOfWeek\r
         {\r
             get\r
index 37a1a3c..552601b 100755 (executable)
@@ -29,36 +29,35 @@ namespace Yubeshi.Ubx
             get\r
             {\r
                 uint tow = BitConverter.ToUInt32(Raw, 6 + 0);\r
-                int ftow = BitConverter.ToInt32(Raw, 6 + 4);\r
+                int ftow = BitConverter.ToInt32(Raw, 6 + 8);\r
                 return tow * 1e-3m + ftow * 1e-9m;\r
             }\r
-\r
         }\r
 \r
-        public int Week\r
+        public decimal Accuracy\r
         {\r
-            get\r
+            get \r
             {\r
-                return BitConverter.ToInt16(Raw, 6 + 8);\r
+                return BitConverter.ToUInt32(Raw, 6 + 4) * 1e-9m;\r
             }\r
         }\r
 \r
-        public int LeapSecond\r
+        public DateTime Utc\r
         {\r
             get\r
-            {\r
-                return (sbyte)(Raw[6 + 10]);\r
+            { \r
+                int y = BitConverter.ToUInt16(Raw, 6 + 12);\r
+                int m = Raw[6 + 14];\r
+                int d = Raw[6 + 14];\r
+                int h = Raw[6 + 14];\r
+                int min = Raw[6 + 14];\r
+                int s = Raw[6 + 14];\r
+                int ftow = BitConverter.ToInt32(Raw, 6 + 8);\r
+                DateTime utc = new DateTime(y, m, d, h, min, s, \r
+                                                            DateTimeKind.Utc);\r
+                return utc.AddTicks(ftow / 100);\r
             }\r
         }\r
-\r
-        public decimal Accuracy\r
-        {\r
-            get \r
-            {\r
-                return BitConverter.ToUInt32(Raw, 6 + 12) * 1e-9m;\r
-            }\r
-        }\r
-\r
         #endregion\r
 \r
         #region public methods\r
@@ -66,7 +65,7 @@ namespace Yubeshi.Ubx
         public static bool TryParse(byte[] sentence, out UnknownPacket packet)\r
         {\r
             return TryParse(sentence, out packet, \r
-                                            MessageID.NavTimeGps, 16, Build);\r
+                                            MessageID.NavTimeUtc, 20, Build);\r
         }\r
 \r
         #endregion\r
index 8e25905..fecfda1 100755 (executable)
@@ -21,10 +21,7 @@ namespace Yubeshi.Ubx
                 get;\r
                 private set;\r
             }\r
-            public void Set(byte[] raw)\r
-            {\r
-                Raw = raw;\r
-            }\r
+\r
             public double CarrierPhase\r
             {\r
                 get\r
@@ -61,7 +58,7 @@ namespace Yubeshi.Ubx
             {\r
                 get\r
                 {\r
-                    return (Raw[21] << 24) >> 24; // SByte\r
+                    return ((int)(Raw[21] << 24)) >> 24; // SByte\r
                 }\r
             }\r
 \r
@@ -69,7 +66,7 @@ namespace Yubeshi.Ubx
             {\r
                 get\r
                 {\r
-                    return (Raw[22] << 24) >> 24; // SByte\r
+                    return ((int)(Raw[22] << 24)) >> 24; // SByte\r
                 }\r
             }\r
 \r
@@ -80,7 +77,12 @@ namespace Yubeshi.Ubx
                     return Raw[23];\r
                 }\r
             }\r
-            \r
+\r
+\r
+            public void Set(byte[] raw)\r
+            {\r
+                Raw = raw;\r
+            }\r
         }\r
         #endregion\r
 \r
@@ -100,6 +102,14 @@ namespace Yubeshi.Ubx
 \r
         #region properties\r
 \r
+        public GpsTime GpsTime\r
+        {\r
+            get\r
+            {\r
+                return new GpsTime(Week, TimeOfWeek);\r
+            }\r
+        }\r
+\r
         public decimal TimeOfWeek\r
         {\r
             get\r