From: kimikage Date: Thu, 7 Jun 2012 11:21:40 +0000 (+0900) Subject: Heightへの対応,緯度・経度が反転していた不具合の修正 X-Git-Url: http://git.osdn.net/view?p=yubeshi%2Fyubeshi.git;a=commitdiff_plain;h=ae4a500efc77e538a409f112c19fe3d83dc58bb8 Heightへの対応,緯度・経度が反転していた不具合の修正 --- diff --git a/Yubeshi/Ubx/NavPosLlh.cs b/Yubeshi/Ubx/NavPosLlh.cs index e6f5a7a..96af3fa 100755 --- a/Yubeshi/Ubx/NavPosLlh.cs +++ b/Yubeshi/Ubx/NavPosLlh.cs @@ -38,16 +38,21 @@ namespace Yubeshi.Ubx { Degree lon = BitConverter.ToInt32(Raw, 6 + 4) * 1e-7; Degree lat = BitConverter.ToInt32(Raw, 6 + 8) * 1e-7; - double h = BitConverter.ToUInt32(Raw, 6 + 12); - return new GeodeticCoordinate(lon, lat, h); + Height h = new Height( + BitConverter.ToUInt32(Raw, 6 + 12) * 1e-3, + Height.Base.Ellipsoid); + return new GeodeticCoordinate(lat, lon, h); } } - public double MslHeight + public Height MslHeight { get { - return BitConverter.ToUInt32(Raw, 6 + 16); + Height h = new Height( + BitConverter.ToUInt32(Raw, 6 + 16) * 1e-3, + Height.Base.MeanSeaLevel); + return h; } } diff --git a/YubeshiTest/UbxTest/NavPacketTest.cs b/YubeshiTest/UbxTest/NavPacketTest.cs index 333ab8e..65264a0 100755 --- a/YubeshiTest/UbxTest/NavPacketTest.cs +++ b/YubeshiTest/UbxTest/NavPacketTest.cs @@ -51,6 +51,23 @@ namespace YubeshiTest.UbxTest } [Test] + public void NavPosLlhTest() + { + UnknownPacket packet; + Assert.IsTrue(NavPosLlh.TryParse(P.NavPosLlh, out packet)); + NavPosLlh p = packet as NavPosLlh; + Assert.AreEqual(Packet.MessageID.NavPosLlh, p.ID); + Assert.AreEqual(timeOfWeek, p.TimeOfWeek); + Assert.AreEqual(35.710058, (double)p.Position.Latitude); + Assert.AreEqual(139.8107190, (double)p.Position.Longitude); + Assert.AreEqual(676.391, (double)p.Position.Altitude); + Assert.AreEqual(Height.Base.Ellipsoid, + p.Position.Altitude.BaseLevel); + Assert.AreEqual(640.0, (double)p.MslHeight); + Assert.AreEqual(Height.Base.MeanSeaLevel, p.MslHeight.BaseLevel); + } + + [Test] public void NavSolTest() { UnknownPacket packet; diff --git a/YubeshiTest/UbxTest/SamplePackets.cs b/YubeshiTest/UbxTest/SamplePackets.cs index ce482da..928c70e 100755 --- a/YubeshiTest/UbxTest/SamplePackets.cs +++ b/YubeshiTest/UbxTest/SamplePackets.cs @@ -25,6 +25,7 @@ namespace YubeshiTest.UbxTest public static readonly byte[] NavClock; public static readonly byte[] NavDop; public static readonly byte[] NavPosEcef; + public static readonly byte[] NavPosLlh; public static readonly byte[] NavSol; @@ -122,6 +123,18 @@ namespace YubeshiTest.UbxTest 0xFF, 0xFF }; + NavPosLlh = new byte[]{ + 0xB5, 0x62, 0x01, 0x02, 0x1C, 0x00, + 0xE5, 0x16, 0x3F, 0x0A, // tow + 0x36, 0x6C, 0x55, 0x53, // lon + 0x24, 0xEC, 0x48, 0x15, // lat + 0x27, 0x52, 0x0A, 0x00, // height + 0x00, 0xC4, 0x09, 0x00, // hMSL + 0x6D, 0x14, 0x00, 0x00, // hAcc + 0x6D, 0x14, 0x00, 0x00, // vAcc + 0xFF, 0xFF + }; + NavSol = new byte[]{ 0xB5, 0x62, 0x01, 0x06, 0x34, 0x00, 0xE5, 0x16, 0x3F, 0x0A, // tow