From 8478af26bf4aaf4476459e50948a23b309263d7f Mon Sep 17 00:00:00 2001 From: Sebastian Godelet Date: Mon, 28 Jun 2021 14:16:00 +1000 Subject: [PATCH] Implemented TrackingRate via GT --- .../TelescopeUnitTests.cs | 10 +++++++++ Meade.net.Telescope/Telescope.cs | 21 +++++-------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index 0276cfe..7536c95 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -53,6 +53,7 @@ namespace Meade.net.Telescope.UnitTests private bool _isParked; private ParkedPosition _parkedPosition; + private string _trackingRate; [SetUp] public void Setup() @@ -134,6 +135,12 @@ namespace Meade.net.Telescope.UnitTests _sharedResourcesWrapperMock.Setup(x => x.SendString("GL", false)).Returns(() => _testProperties.telescopeTime); _sharedResourcesWrapperMock.Setup(x => x.SendString("GG", false)).Returns(() => _testProperties.telescopeUtcCorrection); + const string siderealTrackingRate = "+60.1"; + _trackingRate = siderealTrackingRate; + _sharedResourcesWrapperMock.Setup(x => x.SendString("GT", false)).Returns(() => _trackingRate); + _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TL", false)).Callback(() => _trackingRate = "lunar"); + _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TQ", false)).Callback(() => _trackingRate = siderealTrackingRate); + _sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => productName); _sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => firmwareVersion); @@ -2672,7 +2679,10 @@ namespace Meade.net.Telescope.UnitTests _telescope.TrackingRate = rate; + Assert.That(_telescope.TrackingRate, Is.EqualTo(rate)); + _sharedResourcesWrapperMock.Verify(x => x.SendBlind(commandString, false), Times.Once); + _sharedResourcesWrapperMock.Verify(x => x.SendString("GT", false), Times.Once); } [Test] diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index 7f4afcd..a3c5e1e 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -2606,26 +2606,17 @@ namespace ASCOM.Meade.net } } - private DriveRates _trackingRate = DriveRates.driveSidereal; - public DriveRates TrackingRate { get { - //todo implement this with the GW command - //var result = SerialPort.CommandTerminated(":GT#", "#"); + var rate = CommandString("GT", false); - //double rate = double.Parse(result); + if (rate == "+60.1") + return DriveRates.driveSidereal; - - //if (rate == 60.1) - // return DriveRates.driveLunar; - //else if (rate == 60.1) - // return DriveRates.driveSidereal; - - //return DriveRates.driveKing; - LogMessage("TrackingRate Get", $"{_trackingRate}"); - return _trackingRate; + // we only support two rates ATM so return lunar tracking rate + return DriveRates.driveLunar; } set { @@ -2657,8 +2648,6 @@ namespace ASCOM.Meade.net default: throw new ArgumentOutOfRangeException(nameof(value), value, null); } - - _trackingRate = value; } }