I think this will allow the LX200Classic to unpark
This commit is contained in:
@@ -58,6 +58,7 @@ namespace Meade.net.Telescope.UnitTests
|
||||
private bool _isParked;
|
||||
private ParkedPosition _parkedPosition;
|
||||
private string _siderealTrackingRate;
|
||||
private bool _restartTracking;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
@@ -151,9 +152,10 @@ namespace Meade.net.Telescope.UnitTests
|
||||
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => productName);
|
||||
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => firmwareVersion);
|
||||
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SetParked(It.IsAny<bool>(), It.IsAny<ParkedPosition>())).Callback<bool,ParkedPosition>((isParked, parkedPostion) => {
|
||||
_sharedResourcesWrapperMock.Setup(x => x.SetParked(It.IsAny<bool>(), It.IsAny<ParkedPosition>(), It.IsAny<bool>())).Callback<bool,ParkedPosition,bool>((isParked, parkedPostion, restartTracking) => {
|
||||
_isParked = isParked;
|
||||
_parkedPosition = parkedPostion;
|
||||
_restartTracking = restartTracking;
|
||||
});
|
||||
|
||||
const char ack = (char)6;
|
||||
@@ -2725,7 +2727,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)
|
||||
{
|
||||
|
||||
@@ -434,7 +434,7 @@ namespace ASCOM.Meade.net
|
||||
|
||||
if (connectionInfo.SameDevice == 1)
|
||||
{
|
||||
SharedResourcesWrapper.SetParked(false, null);
|
||||
SharedResourcesWrapper.SetParked(false, null, false);
|
||||
LogMessage("Connected Set", "Making first connection telescope adjustments");
|
||||
|
||||
LogMessage("Connected Set", $"Site Longitude: {SiteLongitude}");
|
||||
@@ -1435,6 +1435,14 @@ namespace ASCOM.Meade.net
|
||||
|
||||
LogMessage("CanUnpark", "Get - " + true);
|
||||
|
||||
return IsUnparkable;
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsUnparkable
|
||||
{
|
||||
get
|
||||
{
|
||||
var unParkableScopes = new List<string>
|
||||
{
|
||||
TelescopeList.LX200GPS,
|
||||
@@ -1780,6 +1788,7 @@ namespace ASCOM.Meade.net
|
||||
parkedPosition = null;
|
||||
break;
|
||||
}
|
||||
var isTracking = Tracking;
|
||||
|
||||
if (SharedResourcesWrapper.ProductName != TelescopeList.LX200CLASSIC)
|
||||
{
|
||||
@@ -1802,7 +1811,7 @@ namespace ASCOM.Meade.net
|
||||
|
||||
//Setting park to true before sending the park command as the Autostar and Audiostar stop serial communications once the park command has been issued.
|
||||
LogMessage("Park", $"Setting driver to parked");
|
||||
SharedResourcesWrapper.SetParked(true, parkedPosition);
|
||||
SharedResourcesWrapper.SetParked(true, parkedPosition, isTracking);
|
||||
}
|
||||
|
||||
private bool _userNewerPulseGuiding = true;
|
||||
@@ -3033,7 +3042,7 @@ namespace ASCOM.Meade.net
|
||||
LogMessage("Unpark", "Unparking telescope");
|
||||
CheckConnected("Unpark");
|
||||
|
||||
if (!IsUnParkable())
|
||||
if (!IsUnparkable)
|
||||
throw new InvalidOperationException("Unable to unpark this telescope type");
|
||||
|
||||
if (!AtPark)
|
||||
@@ -3050,10 +3059,11 @@ namespace ASCOM.Meade.net
|
||||
}
|
||||
else if (SharedResourcesWrapper.ProductName == TelescopeList.LX200CLASSIC)
|
||||
{
|
||||
|
||||
if (SharedResourcesWrapper.RestartTracking)
|
||||
Tracking = true;
|
||||
}
|
||||
|
||||
SharedResourcesWrapper.SetParked(false, null);
|
||||
SharedResourcesWrapper.SetParked(false, null, false);
|
||||
|
||||
// reset side of pier
|
||||
SideOfPier = PierSide.pierUnknown;
|
||||
|
||||
@@ -598,17 +598,18 @@ namespace ASCOM.Meade.net
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetParked(bool atPark, ParkedPosition parkedPosition)
|
||||
public static void SetParked(bool atPark, ParkedPosition parkedPosition, bool restartTracking)
|
||||
{
|
||||
IsParked = atPark;
|
||||
ParkedPosition = parkedPosition;
|
||||
RestartTracking = restartTracking;
|
||||
}
|
||||
|
||||
private static readonly ThreadSafeValue<bool> _isParked = false;
|
||||
public static bool IsParked
|
||||
private static readonly ThreadSafeValue<bool> _restartTracking = false;
|
||||
public static bool RestartTracking
|
||||
{
|
||||
get => _isParked;
|
||||
private set => _isParked.Set(value);
|
||||
get => _restartTracking;
|
||||
private set => _restartTracking.Set(value);
|
||||
}
|
||||
|
||||
private static ParkedPosition _parkedPosition;
|
||||
@@ -618,6 +619,13 @@ namespace ASCOM.Meade.net
|
||||
private set => Interlocked.Exchange(ref _parkedPosition, value);
|
||||
}
|
||||
|
||||
private static readonly ThreadSafeValue<bool> _isParked = false;
|
||||
public static bool IsParked
|
||||
{
|
||||
get => _isParked;
|
||||
private set => _isParked.Set(value);
|
||||
}
|
||||
|
||||
private static readonly ThreadSafeValue<PierSide> _sideOfPier = PierSide.pierUnknown;
|
||||
/// <summary>
|
||||
/// Start with <see cref="PierSide.pierUnknown"/>.
|
||||
|
||||
@@ -27,9 +27,10 @@ namespace ASCOM.Meade.net.Wrapper
|
||||
void WriteProfile(ProfileProperties profileProperties);
|
||||
void ReadCharacters(int throwAwayCharacters);
|
||||
|
||||
void SetParked(bool atPark, ParkedPosition parkedPosition);
|
||||
void SetParked(bool atPark, ParkedPosition parkedPosition, bool restartTracking);
|
||||
bool IsParked { get; }
|
||||
ParkedPosition ParkedPosition { get; }
|
||||
bool RestartTracking { get; }
|
||||
|
||||
PierSide SideOfPier { get; set; }
|
||||
double? TargetRightAscension { get; set; }
|
||||
@@ -116,13 +117,15 @@ namespace ASCOM.Meade.net.Wrapper
|
||||
SharedResources.WriteProfile(profileProperties);
|
||||
}
|
||||
|
||||
public void SetParked(bool atPark, ParkedPosition parkedPosition)
|
||||
public void SetParked(bool atPark, ParkedPosition parkedPosition, bool restartTracking)
|
||||
{
|
||||
SharedResources.SetParked(atPark, parkedPosition);
|
||||
SharedResources.SetParked(atPark, parkedPosition, restartTracking);
|
||||
}
|
||||
|
||||
public bool IsParked => SharedResources.IsParked;
|
||||
|
||||
public bool RestartTracking => SharedResources.RestartTracking;
|
||||
|
||||
public ParkedPosition ParkedPosition => SharedResources.ParkedPosition;
|
||||
|
||||
public PierSide SideOfPier
|
||||
|
||||
Reference in New Issue
Block a user