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.Ubx
\r
14 public class NavTimeUtc : Packet
\r
16 #region type definitions
\r
19 public enum Validity : byte
\r
28 #region constructors
\r
30 public NavTimeUtc(byte[] sentence, int length)
\r
31 : base(sentence, length)
\r
39 public decimal TimeOfWeek
\r
43 uint tow = BitConverter.ToUInt32(Raw, 6 + 0);
\r
44 int ftow = BitConverter.ToInt32(Raw, 6 + 8);
\r
45 return tow * 1e-3m + ftow * 1e-9m;
\r
49 public decimal Accuracy
\r
53 return BitConverter.ToUInt32(Raw, 6 + 4) * 1e-9m;
\r
61 int y = BitConverter.ToUInt16(Raw, 6 + 12);
\r
62 int m = Raw[6 + 14];
\r
63 int d = Raw[6 + 15];
\r
64 int h = Raw[6 + 16];
\r
65 int min = Raw[6 + 17];
\r
66 int s = Raw[6 + 18];
\r
67 int ftow = BitConverter.ToInt32(Raw, 6 + 8);
\r
68 DateTime utc = new DateTime(y, m, d, h, min, s,
\r
70 return utc.AddTicks(ftow / 100);
\r
74 public Validity ValidityFlag
\r
78 return (Validity)Raw[19];
\r
83 #region public methods
\r
85 public static bool TryParse(byte[] sentence, out UnknownPacket packet)
\r
87 return TryParse(sentence, out packet,
\r
88 MessageID.NavTimeUtc, 20, Build);
\r
93 #region private methods
\r
95 private static Packet Build(byte[] sentence, int length)
\r
97 return new NavTimeUtc(sentence, length);
\r