Changing how side of pier is calculated.

This commit is contained in:
2022-05-16 18:59:55 +01:00
parent 5c2bd21f1e
commit 650fc04bca
3 changed files with 150 additions and 170 deletions
+13 -28
View File
@@ -512,7 +512,6 @@ namespace ASCOM.Meade.net
SetTelescopePrecision("Connect");
// target RA, DEC and SideOfPier are set to default values
SharedResourcesWrapper.SideOfPier = PierSide.pierUnknown;
SharedResourcesWrapper.TargetDeclination = InvalidParameter;
SharedResourcesWrapper.TargetRightAscension = InvalidParameter;
@@ -1857,13 +1856,7 @@ namespace ASCOM.Meade.net
{
CheckConnected("DestinationSideOfPier");
double hourAngle = _astroUtilities.ConditionHA(SiderealTime - rightAscension);
var destinationSOP = hourAngle > 0
? PierSide.pierEast
: (hourAngle < 0
? PierSide.pierWest
: SharedResourcesWrapper.SideOfPier); // avoid pierUnknown while Slewing
var destinationSOP = CalculateSideOfPier(rightAscension);
LogMessage("DestinationSideOfPier",
$"Destination SOP of RA {rightAscension.ToString(CultureInfo.InvariantCulture)} is {destinationSOP}");
@@ -1877,6 +1870,16 @@ namespace ASCOM.Meade.net
}
}
private PierSide CalculateSideOfPier(double rightAscension)
{
double hourAngle = _astroUtilities.ConditionHA(SiderealTime - rightAscension);
var destinationSOP = hourAngle > 0
? PierSide.pierEast
: PierSide.pierWest;
return destinationSOP;
}
public bool DoesRefraction
{
get
@@ -2502,16 +2505,7 @@ namespace ASCOM.Meade.net
throw new PropertyNotImplementedException("SideOfPier", false);
}
PierSide pierSide;
if (Slewing)
{
// because we update SideOfPier after initiating the slew command we return unknown while still slewing
pierSide = PierSide.pierUnknown;
}
else
{
pierSide = SharedResourcesWrapper.SideOfPier;
}
var pierSide = CalculateSideOfPier(RightAscension);
LogMessage("SideOfPier", "Get - " + pierSide);
return pierSide;
@@ -2990,21 +2984,12 @@ namespace ASCOM.Meade.net
//0 Slew is Possible
//1<string># Object Below Horizon w/string message
//2<string># Object Below Higher w/string message
switch (response)
{
case "0":
//We're slewing everything should be working just fine.
LogMessage("DoSlewAsync", "Slewing to target");
if (IsMeridianFlipOnSlewSupported())
{
// Update side of pier to destination side of pier
// Assumption: Mount will do meridian flip if required
SharedResourcesWrapper.SideOfPier =
DestinationSideOfPier(TargetRightAscension, TargetDeclination);
}
SetSlewingMinEndTime();
break;
case "1":