From 42f2f458662673986b93ed6237ce9b08ed37b0c4 Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Tue, 28 Jun 2022 18:47:33 +0100 Subject: [PATCH] Added test for StarParch firmware. PulseGuiding is always enabled. --- .../TelescopeUnitTests.cs | 21 ++++++++----- Meade.net.Telescope/Telescope.cs | 30 ++++++++++++++----- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index 2f01bbb..6bf096d 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -916,24 +916,31 @@ namespace Meade.net.Telescope.UnitTests Assert.That(result, Is.True); } - [Test] - public void CanPulseGuide_GetInPolarMode_ReturnsTrue() + [TestCase("Autostar", "43Eg")] + public void CanPulseGuide_GetInPolarMode_ReturnsTrue(string productName, string firmware) { _testProperties.AlignmentMode = "P"; - ConnectTelescope(); + + ConnectTelescope(productName, firmware, $"{_testProperties.AlignmentMode}N0"); var result = _telescope.CanPulseGuide; Assert.That(result, Is.True); } - [Test] - public void CanPulseGuide_GetInAltAzMode_ReturnsFalse() + [TestCase("Autostar", "30Ab", true)] + [TestCase("Autostar", "43Eg", false)] + [TestCase("Autostar", "A4S4", false)] + [TestCase("Autostar", "43EG", true)] + [TestCase("Autostar", "A4s4", true)] + public void CanPulseGuide_GetInAltAzMode_ReturnsExpectedResult(string productName, string firmware, bool canPulseGuide) { _testProperties.AlignmentMode = "A"; - ConnectTelescope(); + + ConnectTelescope(productName, firmware, $"{_testProperties.AlignmentMode}N0"); + var result = _telescope.CanPulseGuide; - Assert.That(result, Is.False); + Assert.That(result, Is.EqualTo(canPulseGuide)); } [Test] diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index 33981c2..7921107 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -602,13 +602,29 @@ namespace ASCOM.Meade.net private bool IsStarPatch() { - //Todo add tests to see if the firmware is star patch. - //Check if last character is a letter - // lower case = Meade, upper case = StarPatch - //If last character is a number - // Get case of second to last character - // lower case = StarPatch, upper case = Meade - return false; + var isStarPatch = false; + + var firmwareVersionArray = SharedResourcesWrapper.FirmwareVersion.ToCharArray(); + if (firmwareVersionArray.Length > 1) + { + //If last character is a number + var lastChr = firmwareVersionArray[firmwareVersionArray.Length - 1]; + if (char.IsNumber(lastChr)) + { + // Get case of second to last character + var secondLastChar = firmwareVersionArray[firmwareVersionArray.Length - 2]; + // lower case = StarPatch, upper case = Meade + isStarPatch = char.IsLower(secondLastChar); + } + else + { + // lower case = Meade, upper case = StarPatch + isStarPatch = char.IsUpper(lastChr); + } + } + + LogMessage("Is StarPatch Firmware", $": {isStarPatch}"); + return isStarPatch; } private void SendCurrentDateTime(string connect)