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 abstract class Packet : UnknownPacket
\r
16 #region type definitions
\r
18 protected delegate Packet PacketBuilder(byte[] sentence, int length);
\r
20 public enum MessageClass
\r
27 /// Reciever Manager
\r
38 public enum MessageID
\r
40 NavPosEcef = 0x0101,
\r
45 NavVelEcef = 0x0111,
\r
47 NavTimeGps = 0x0120,
\r
48 NavTimeUtc = 0x0121,
\r
57 #region constructors
\r
63 public MessageClass Class
\r
83 #region protected methods
\r
85 protected static bool TryParse(byte[] sentence, out Packet packet,
\r
86 MessageID id, int fixedLength, PacketBuilder builder)
\r
89 if (sentence.Length < 8)
\r
93 if (sentence[0] != 0xB5 || sentence[1] != 0x62)
\r
97 int messageId = sentence[2] << 8 | sentence[3];
\r
98 if ((int)id != messageId)
\r
102 int length = sentence[5] << 8 | sentence[4];
\r
103 if (length > 0 && fixedLength != length)
\r
107 if (sentence.Length < length + 8)
\r
113 packet = builder(sentence, length);
\r