--- /dev/null
+/*\r
+ * Yubeshi GPS Parser\r
+ *\r
+ * This software is distributed under a zlib-style license.\r
+ * See license.txt for more information.\r
+ */\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+\r
+namespace Yubeshi.Ubx\r
+{\r
+ public class RxmRaw : Packet\r
+ {\r
+ #region type definitions\r
+ public struct MeasurementData\r
+ { \r
+ public byte[] Raw\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+ public void Set(byte[] raw)\r
+ {\r
+ Raw = raw;\r
+ }\r
+ \r
+ }\r
+ #endregion\r
+\r
+ #region constructors\r
+\r
+ public RxmRaw(byte[] sentence, int length)\r
+ : base(sentence, length)\r
+ {\r
+ ID = MessageID.RxmRaw;\r
+ Data = new MeasurementData[NumberOfSatelites];\r
+ for (int i = 0; i < Data.Length; ++i)\r
+ {\r
+ Data[i].Set(OctetString.Substring(Raw, 8 + 24 * i, 24));\r
+ }\r
+ }\r
+\r
+ #endregion\r
+\r
+ #region properties\r
+\r
+ public decimal TimeOfWeek\r
+ {\r
+ get\r
+ {\r
+ return BitConverter.ToUInt32(Raw, 6 + 0) * 1e-3m;\r
+ }\r
+ }\r
+\r
+ public int Week\r
+ {\r
+ get\r
+ {\r
+ return BitConverter.ToInt16(Raw, 6 + 4);\r
+ }\r
+ }\r
+\r
+ public int NumberOfSatelites\r
+ {\r
+ get\r
+ {\r
+ return Raw[6 + 6];\r
+ }\r
+ }\r
+\r
+ public MeasurementData[] Data\r
+ {\r
+ get;\r
+ private set;\r
+ }\r
+\r
+ #endregion\r
+\r
+ #region public methods\r
+\r
+ public static bool TryParse(byte[] sentence, out UnknownPacket packet)\r
+ {\r
+ packet = null;\r
+ if (sentence.Length < 8)\r
+ {\r
+ return false;\r
+ }\r
+ int length = 8 + 24 * sentence[6 + 6];\r
+ return TryParse(sentence, out packet, \r
+ MessageID.RxmRaw, length, Build);\r
+ }\r
+\r
+ #endregion\r
+\r
+ #region private methods\r
+\r
+ private static Packet Build(byte[] sentence, int length)\r
+ {\r
+ return new RxmRaw(sentence, length);\r
+ }\r
+\r
+ #endregion\r
+ }\r
+}\r
<Compile Include="Ubx\NavTimeUtc.cs" />\r
<Compile Include="Ubx\NavSvInfo.cs" />\r
<Compile Include="Ubx\NavSbas.cs" />\r
+ <Compile Include="Ubx\RxmRaw.cs" />\r
<Compile Include="UnknownPacket.cs" />\r
<Compile Include="EnuVelocity.cs" />\r
</ItemGroup>\r
--- /dev/null
+/*\r
+ * Yubeshi GPS Parser\r
+ *\r
+ * This software is distributed under a zlib-style license.\r
+ * See license.txt for more information.\r
+ */\r
+\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Text;\r
+using NUnit.Framework;\r
+using Yubeshi;\r
+using Yubeshi.Ubx;\r
+using P = YubeshiTest.UbxTest.SamplePackets;\r
+\r
+namespace YubeshiTest.UbxTest\r
+{\r
+\r
+ class RxmPacketTest\r
+ {\r
+ private readonly decimal timeOfWeek = \r
+ new TimeSpan(1, 23, 45, 6, 789).Ticks * 1e-7m;\r
+ private readonly decimal timeOfWeekHD =\r
+ new TimeSpan(1, 23, 45, 6, 789).Ticks * 1e-7m + 012345e-9m;\r
+\r
+ [Test]\r
+ public void RxmRawTest()\r
+ {\r
+ UnknownPacket packet;\r
+ //Assert.IsTrue(RxmRaw.TryParse(P.RxmRaw, out packet));\r
+ //RxmRaw p = packet as RxmRaw;\r
+ //Assert.AreEqual(Packet.MessageID.RxmRaw, p.ID);\r
+ }\r
+\r
+ }\r
+}\r