From 710ae0420ab385d2b2c8d82462de4df957b91cfa Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Thu, 9 Sep 2021 12:14:15 +0100 Subject: [PATCH 1/3] Added left, right as sysonyms of back and forward for the handbox commands. Added scrollup and scrolldown handbox commands as well. --- Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs | 4 ++++ Meade.net.Telescope/Telescope.cs | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index 175c060..2180770 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -246,6 +246,10 @@ namespace Meade.net.Telescope.UnitTests [TestCase("down", "EK118")] [TestCase("back", "EK87")] [TestCase("forward", "EK69")] + [TestCase("left", "EK87")] + [TestCase("right", "EK69")] + [TestCase("scrollup", "EK85")] + [TestCase("scrolldown", "EK68")] [TestCase("?", "EK63")] public void Action_Handbox_WhenCalling_ThenSendsAppropriateBlindCommands(string action, string expectedString) { diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index b39c1e0..f35dfcc 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -249,11 +249,19 @@ namespace ASCOM.Meade.net SharedResourcesWrapper.SendBlind("EK118"); break; case "back": + case "left": SharedResourcesWrapper.SendBlind("EK87"); break; case "forward": + case "right": SharedResourcesWrapper.SendBlind("EK69"); break; + case "scrollup": + SharedResourcesWrapper.SendBlind("EK85"); + break; + case "scrolldown": + SharedResourcesWrapper.SendBlind("EK68"); + break; case "?": SharedResourcesWrapper.SendBlind("EK63"); break; From 3b056ef7f8dc596814d688757868ecdaa153ccc2 Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Fri, 17 Sep 2021 09:38:35 +0100 Subject: [PATCH 2/3] Fixed bug in tracking rate get where it always returns lunar when it should be sidereal --- Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs | 2 +- Meade.net.Telescope/Telescope.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index 2180770..b33b9d7 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -142,7 +142,7 @@ 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"; + const string siderealTrackingRate = "+60.1"; _testProperties.TrackingRate = siderealTrackingRate; _sharedResourcesWrapperMock.Setup(x => x.SendString("GT", false)).Returns(() => _testProperties.TrackingRate); _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TL", false)).Callback(() => _testProperties.TrackingRate = "lunar"); diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index f35dfcc..0fe0260 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -2645,7 +2645,7 @@ namespace ASCOM.Meade.net //Current Track Frequency expressed in hertz assuming a synchonous motor design where a 60.0 Hz motor clock // would produce 1 revolution of the telescope in 24 hours. - DriveRates result = rate == "60.1" ? DriveRates.driveSidereal : DriveRates.driveLunar; + DriveRates result = rate == "+60.1" ? DriveRates.driveSidereal : DriveRates.driveLunar; LogMessage("TrackingRate Get", $"{rate} {result}"); From ad9169a48dd66853c696af917ce9a4a2d77d3523 Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Sun, 26 Sep 2021 16:50:46 +0100 Subject: [PATCH 3/3] Modified so that the driver supports either +60.1 or 60.1 for tracking rate --- .../TelescopeUnitTests.cs | 30 ++++++++++++------- Meade.net.Telescope/Telescope.cs | 6 ++-- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index b33b9d7..0e65afb 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -56,12 +56,14 @@ namespace Meade.net.Telescope.UnitTests private bool _isParked; private ParkedPosition _parkedPosition; + private string _siderealTrackingRate; [SetUp] public void Setup() { _isParked = false; _parkedPosition = null; + _siderealTrackingRate = "+60.1"; _testProperties = new TestProperties(); @@ -142,11 +144,10 @@ 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"; - _testProperties.TrackingRate = siderealTrackingRate; + _testProperties.TrackingRate = _siderealTrackingRate; _sharedResourcesWrapperMock.Setup(x => x.SendString("GT", false)).Returns(() => _testProperties.TrackingRate); _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TL", false)).Callback(() => _testProperties.TrackingRate = "lunar"); - _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TQ", false)).Callback(() => _testProperties.TrackingRate = siderealTrackingRate); + _sharedResourcesWrapperMock.Setup(x => x.SendBlind("TQ", false)).Callback(() => _testProperties.TrackingRate = _siderealTrackingRate); _sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => productName); _sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => firmwareVersion); @@ -2732,8 +2733,9 @@ namespace Meade.net.Telescope.UnitTests Assert.That(exception.Message, Is.EqualTo("Exception of type 'System.ArgumentOutOfRangeException' was thrown.\r\nParameter name: value\r\nActual value was driveKing.")); } - [Test] - public void TrackingRage_Get_WhenReadongDefaultValue_ThenAssumesSidereal() + [TestCase("60.1")] + [TestCase("+60.1")] + public void TrackingRage_Get_WhenReadingDefaultValue_ThenAssumesSidereal(string trackingRate) { ConnectTelescope(); @@ -2742,10 +2744,14 @@ namespace Meade.net.Telescope.UnitTests Assert.That(result, Is.EqualTo(DriveRates.driveSidereal)); } - [TestCase(DriveRates.driveSidereal)] - [TestCase(DriveRates.driveLunar)] - public void TrackingRate_Get_WhenConnected_ThenSendsCommandToTelescope(DriveRates rate) + [TestCase(DriveRates.driveSidereal, "60.1")] + [TestCase(DriveRates.driveLunar, "60.1")] + [TestCase(DriveRates.driveSidereal, "+60.1")] + [TestCase(DriveRates.driveLunar, "+60.1")] + public void TrackingRate_Get_WhenConnected_ThenSendsCommandToTelescope(DriveRates rate, string trackingRate) { + _siderealTrackingRate = trackingRate; + string productName = TelescopeList.Autostar497; string firmwareVersion = TelescopeList.Autostar497_43Eg; @@ -2758,9 +2764,11 @@ namespace Meade.net.Telescope.UnitTests Assert.That(result, Is.EqualTo(rate)); } - [TestCase(DriveRates.driveSidereal)] - [TestCase(DriveRates.driveLunar)] - public void TrackingRate_Set_WhenConnectedToLX200_ThenThrowsException(DriveRates rate) + [TestCase(DriveRates.driveSidereal, "60.1")] + [TestCase(DriveRates.driveLunar, "60.1")] + [TestCase(DriveRates.driveSidereal, "+60.1")] + [TestCase(DriveRates.driveLunar, "+60.1")] + public void TrackingRate_Set_WhenConnectedToLX200_ThenThrowsException(DriveRates rate, string trackingRate) { string productName = TelescopeList.LX200CLASSIC; string firmwareVersion = string.Empty; diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index 0fe0260..410503e 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -2639,13 +2639,15 @@ namespace ASCOM.Meade.net { get { - var rate = CommandString("GT", false); + var rate = CommandString("GT", false); //:GT# Get tracking rate //Returns: TT.T# //Current Track Frequency expressed in hertz assuming a synchonous motor design where a 60.0 Hz motor clock // would produce 1 revolution of the telescope in 24 hours. - DriveRates result = rate == "+60.1" ? DriveRates.driveSidereal : DriveRates.driveLunar; + rate = rate.Replace("+", string.Empty); + + DriveRates result = rate == "60.1" ? DriveRates.driveSidereal : DriveRates.driveLunar; LogMessage("TrackingRate Get", $"{rate} {result}");