Changed how the part position is calculated.

This commit is contained in:
2022-05-10 11:39:40 +01:00
parent abb985559e
commit 5c362a5a9a
2 changed files with 36 additions and 18 deletions
@@ -2713,10 +2713,15 @@ namespace Meade.net.Telescope.UnitTests
_sharedResourcesWrapperMock.Verify(x => x.SendChar(command, false), Times.Once);
}
[Test]
public void Tracking_Get_WhenDefault_ThenIsTrue()
[TestCase("A", true)]
[TestCase("P", true)]
[TestCase("L", false)]
public void Tracking_Get_WhenGetsValue_ThenIsExpectedResult(string alignmentMode, bool expectedResult)
{
Assert.That(_telescope.Tracking, Is.True);
ConnectTelescope();
_testProperties.AlignmentMode = alignmentMode;
Assert.That(_telescope.Tracking, Is.EqualTo(expectedResult));
}
//[TestCase(true)]
@@ -2729,7 +2734,7 @@ namespace Meade.net.Telescope.UnitTests
// Assert.Throws<ASCOM.NotImplementedException>( () => { _telescope.Tracking = tracking; } );
//}
// [TestCase(true, "AP")]
// [TestCase(true, "AP")]
[TestCase(false, "AL")]
public void Tracking_Set_WhenCanSetTrackingIsTrue_ThenValueIsUpdated(bool tracking, string alignmentCommand)
{
+26 -13
View File
@@ -1107,14 +1107,7 @@ namespace ASCOM.Meade.net
return Retry(6, () =>
{
LogMessage("AlignmentMode Get", $"Sending Ack code.");
const char ack = (char)6;
//ACK <0x06> Query of alignment mounting mode.
//Returns:
//A If scope in AltAz Mode
//D If scope is currently in the Downloader[Autostar II & Autostar]
//L If scope in Land Mode
//P If scope in Polar Mode
var alignmentString = SharedResourcesWrapper.SendChar(ack.ToString());
var alignmentString = GetAlignmentString();
AlignmentModes alignmentMode;
switch (alignmentString)
{
@@ -1189,6 +1182,19 @@ namespace ASCOM.Meade.net
}
}
private string GetAlignmentString()
{
const char ack = (char)6;
//ACK <0x06> Query of alignment mounting mode.
//Returns:
//A If scope in AltAz Mode
//D If scope is currently in the Downloader[Autostar II & Autostar]
//L If scope in Land Mode
//P If scope in Polar Mode
var alignmentString = SharedResourcesWrapper.SendChar(ack.ToString());
return alignmentString;
}
private AlignmentStatus GetScopeAlignmentStatus()
{
LogMessage("GetScopeAlignmentStatus", "Started");
@@ -2251,14 +2257,16 @@ namespace ASCOM.Meade.net
}
else
{
LogMessage("Park", $"Parking LX200 Classic");
LogMessage("Park", $"Calculating Park Alt Az");
var siteLatitude = SiteLatitude;
var parkAlt = AlignmentMode == AlignmentModes.algAltAz ? 0 : 90 - siteLatitude;
var parkAz = siteLatitude >= 0 ? 180 : 0;
LogMessage("Park", $"Parking LX200 Classic");
Tracking = false;
LogMessage("Park", $"Calculating Park Altitude");
var parkAlt = AlignmentMode == AlignmentModes.algAltAz ? 0 : 90 - SiteLatitude;
LogMessage("Park", $"Slewing to park position az:0 alt:{parkAlt}");
SlewToAltAz(0, parkAlt, false);
LogMessage("Park", $"Slewing to park position az:{parkAz} alt:{parkAlt}");
SlewToAltAz(parkAz, parkAlt, false);
LogMessage("Park", $"Arrived at park position");
}
@@ -3542,6 +3550,11 @@ namespace ASCOM.Meade.net
var alignmentStatus = GetScopeAlignmentStatus();
isTracking = alignmentStatus.Tracking;
}
else
{
var alignmentString = GetAlignmentString();
isTracking = alignmentString != "L";
}
LogMessage("Tracking", $"Get = {isTracking}");
return isTracking;