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,11 +2713,16 @@ namespace Meade.net.Telescope.UnitTests
_sharedResourcesWrapperMock.Verify(x => x.SendChar(command, false), Times.Once); _sharedResourcesWrapperMock.Verify(x => x.SendChar(command, false), Times.Once);
} }
[Test] [TestCase("A", true)]
public void Tracking_Get_WhenDefault_ThenIsTrue() [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)] //[TestCase(true)]
//[TestCase(false)] //[TestCase(false)]
@@ -2729,7 +2734,7 @@ namespace Meade.net.Telescope.UnitTests
// Assert.Throws<ASCOM.NotImplementedException>( () => { _telescope.Tracking = tracking; } ); // Assert.Throws<ASCOM.NotImplementedException>( () => { _telescope.Tracking = tracking; } );
//} //}
// [TestCase(true, "AP")] // [TestCase(true, "AP")]
[TestCase(false, "AL")] [TestCase(false, "AL")]
public void Tracking_Set_WhenCanSetTrackingIsTrue_ThenValueIsUpdated(bool tracking, string alignmentCommand) 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, () => return Retry(6, () =>
{ {
LogMessage("AlignmentMode Get", $"Sending Ack code."); LogMessage("AlignmentMode Get", $"Sending Ack code.");
const char ack = (char)6; var alignmentString = GetAlignmentString();
//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());
AlignmentModes alignmentMode; AlignmentModes alignmentMode;
switch (alignmentString) 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() private AlignmentStatus GetScopeAlignmentStatus()
{ {
LogMessage("GetScopeAlignmentStatus", "Started"); LogMessage("GetScopeAlignmentStatus", "Started");
@@ -2251,14 +2257,16 @@ namespace ASCOM.Meade.net
} }
else 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; Tracking = false;
LogMessage("Park", $"Calculating Park Altitude"); LogMessage("Park", $"Slewing to park position az:{parkAz} alt:{parkAlt}");
var parkAlt = AlignmentMode == AlignmentModes.algAltAz ? 0 : 90 - SiteLatitude; SlewToAltAz(parkAz, parkAlt, false);
LogMessage("Park", $"Slewing to park position az:0 alt:{parkAlt}");
SlewToAltAz(0, parkAlt, false);
LogMessage("Park", $"Arrived at park position"); LogMessage("Park", $"Arrived at park position");
} }
@@ -3542,6 +3550,11 @@ namespace ASCOM.Meade.net
var alignmentStatus = GetScopeAlignmentStatus(); var alignmentStatus = GetScopeAlignmentStatus();
isTracking = alignmentStatus.Tracking; isTracking = alignmentStatus.Tracking;
} }
else
{
var alignmentString = GetAlignmentString();
isTracking = alignmentString != "L";
}
LogMessage("Tracking", $"Get = {isTracking}"); LogMessage("Tracking", $"Get = {isTracking}");
return isTracking; return isTracking;