modified the get tracking code to make it less better. amd more tolerant of lunar speeds, taken from Nasa and other sources (Info from David Richards)

This commit is contained in:
2021-12-17 13:11:32 +00:00
parent acb1533f21
commit 7ac3c95c8e
3 changed files with 16 additions and 17 deletions
@@ -2783,6 +2783,8 @@ namespace Meade.net.Telescope.UnitTests
[TestCase(DriveRates.driveSidereal, "+60.1")] [TestCase(DriveRates.driveSidereal, "+60.1")]
[TestCase(DriveRates.driveSolar, "+60.0")] [TestCase(DriveRates.driveSolar, "+60.0")]
[TestCase(DriveRates.driveLunar, "+57.9")] [TestCase(DriveRates.driveLunar, "+57.9")]
[TestCase(DriveRates.driveLunar, "57.3")]
[TestCase(DriveRates.driveLunar, "58.9")]
public void TrackingRate_Get_WhenConnected_ThenSendsCommandToTelescope(DriveRates rate, string trackingRate) public void TrackingRate_Get_WhenConnected_ThenSendsCommandToTelescope(DriveRates rate, string trackingRate)
{ {
_siderealTrackingRate = trackingRate; _siderealTrackingRate = trackingRate;
@@ -128,6 +128,7 @@
<Compile Include="Clock.cs" /> <Compile Include="Clock.cs" />
<Compile Include="ComparisonResult.cs" /> <Compile Include="ComparisonResult.cs" />
<Compile Include="DoubleExtensions.cs" /> <Compile Include="DoubleExtensions.cs" />
<Compile Include="ExtensionMethods\DoubelExtensions.cs" />
<Compile Include="IClock.cs" /> <Compile Include="IClock.cs" />
<Compile Include="StringExtensions.cs" /> <Compile Include="StringExtensions.cs" />
<Compile Include="Telescope.cs" /> <Compile Include="Telescope.cs" />
@@ -187,6 +188,7 @@
<Name>Meade.net</Name> <Name>Meade.net</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup> <PropertyGroup>
<PreBuildEvent> <PreBuildEvent>
+12 -17
View File
@@ -2643,25 +2643,20 @@ namespace ASCOM.Meade.net
rate = rate.Replace("+", string.Empty); rate = rate.Replace("+", string.Empty);
var rateDouble = double.Parse(rate);
DriveRates result; DriveRates result;
switch (rate) if (rateDouble.Equals(60.1))
{ result = DriveRates.driveSidereal;
case "60.1": else if (rateDouble.Equals(60.0))
result = DriveRates.driveSidereal; result = DriveRates.driveSolar;
break; else if (rateDouble.Between(57.3, 58.9))
case "60.0": result = DriveRates.driveLunar;
result = DriveRates.driveSolar; else
break; //If this is ever returned it is representing a fail condition.
case "57.9": //result = DriveRates.driveKing;
result = DriveRates.driveLunar; throw new ASCOM.InvalidValueException($"{rate} is not a supported tracking rate for meade mounts");
break;
default:
result = DriveRates.driveKing;
//If this is ever returned it is representing a fail condition.
break;
}
LogMessage("TrackingRate Get", $"{rate} {result}"); LogMessage("TrackingRate Get", $"{rate} {result}");