From 80899b8056bca8a37137a226c70d8c2aca4bcd4e Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Wed, 6 Nov 2024 16:47:28 +0000 Subject: [PATCH] Fixed problem where the tracking rate was using the local culture to convert a string to a double. --- .../TelescopeUnitTests.cs | 32 +++++++++++++++++++ Meade.net.Telescope/Telescope.cs | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs index f8f66fb..60f403b 100644 --- a/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs +++ b/Meade.net.Telescope.UnitTests/TelescopeUnitTests.cs @@ -2701,6 +2701,38 @@ namespace Meade.net.Telescope.UnitTests [TestCase(DriveRates.driveLunar, "58.9", "Autostar", "A4S4")] public void TrackingRate_Get_WhenConnected_ThenSendsCommandToTelescope(DriveRates rate, string trackingRate, string productName, string firmware) { + CultureInfo.CurrentCulture = new CultureInfo("en-GB"); + _siderealTrackingRate = trackingRate; + + ConnectTelescope(productName, firmware); + + _telescope.TrackingRate = rate; + + var result = _telescope.TrackingRate; + + Assert.That(result, Is.EqualTo(rate)); + } + + [TestCase(DriveRates.driveSidereal, "60.1", "Autostar", "43Eg")] + [TestCase(DriveRates.driveSidereal, "60.0", "Autostar", "43Eg")] + [TestCase(DriveRates.driveLunar, "57.9", "Autostar", "43Eg")] + [TestCase(DriveRates.driveSidereal, "+60.1", "Autostar", "43Eg")] + [TestCase(DriveRates.driveSidereal, "+60.0", "Autostar", "43Eg")] + [TestCase(DriveRates.driveLunar, "+57.9", "Autostar", "43Eg")] + [TestCase(DriveRates.driveLunar, "57.3", "Autostar", "43Eg")] + [TestCase(DriveRates.driveLunar, "58.9", "Autostar", "43Eg")] + [TestCase(DriveRates.driveSidereal, "60.1", "Autostar", "A4S4")] + [TestCase(DriveRates.driveSidereal, "60.0", "Autostar", "A4S4")] + [TestCase(DriveRates.driveLunar, "57.9", "Autostar", "A4S4")] + [TestCase(DriveRates.driveSidereal, "+60.1", "Autostar", "A4S4")] + [TestCase(DriveRates.driveSidereal, "+60.0", "Autostar", "A4S4")] + [TestCase(DriveRates.driveLunar, "+57.9", "Autostar", "A4S4")] + [TestCase(DriveRates.driveLunar, "57.3", "Autostar", "A4S4")] + [TestCase(DriveRates.driveLunar, "58.9", "Autostar", "A4S4")] + public void TrackingRate_Get_WhenConnectedAndCurrentCultureIsSpanish_ThenSendsCommandToTelescope(DriveRates rate, string trackingRate, string productName, string firmware) + { + CultureInfo.CurrentCulture = new CultureInfo("es-ES"); + _siderealTrackingRate = trackingRate; ConnectTelescope(productName, firmware); diff --git a/Meade.net.Telescope/Telescope.cs b/Meade.net.Telescope/Telescope.cs index a364626..0249084 100644 --- a/Meade.net.Telescope/Telescope.cs +++ b/Meade.net.Telescope/Telescope.cs @@ -3668,7 +3668,7 @@ namespace ASCOM.Meade.net rate = rate.Replace("+", string.Empty); - var rateDouble = double.Parse(rate); + var rateDouble = double.Parse(rate, CultureInfo.InvariantCulture); DriveRates result;