Added support for AtPark and Park

This commit is contained in:
2019-05-02 15:14:36 +01:00
parent 7225c2d70f
commit 76c88420ca
4 changed files with 68 additions and 4 deletions
@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration;
using System.IO.Ports; using System.IO.Ports;
using ASCOM; using ASCOM;
using ASCOM.DeviceInterface; using ASCOM.DeviceInterface;
@@ -33,6 +34,8 @@ namespace MeadeAutostar497.UnitTests
serialMock.Setup(x => x.CommandTerminated(It.IsAny<string>(), It.IsAny<string>())).Returns(() => _stringToRecieve); serialMock.Setup(x => x.CommandTerminated(It.IsAny<string>(), It.IsAny<string>())).Returns(() => _stringToRecieve);
serialMock.Setup(x => x.IsOpen).Returns(() => _isConnected); serialMock.Setup(x => x.IsOpen).Returns(() => _isConnected);
//Todo inject the serialMock instead of using a singleton to increase code stability.
_telescopeController = TelescopeController.Instance; _telescopeController = TelescopeController.Instance;
_telescopeController.Connected = false; _telescopeController.Connected = false;
_telescopeController.SerialPort = serialMock.Object; _telescopeController.SerialPort = serialMock.Object;
@@ -474,5 +477,50 @@ namespace MeadeAutostar497.UnitTests
serialMock.Verify( x => x.Command(command), Times.Once); serialMock.Verify( x => x.Command(command), Times.Once);
} }
[Test]
public void AtParkIsFalseByDefault()
{
_isConnected = true;
_telescopeController.Connected = true;
Assert.That( _telescopeController.AtPark, Is.False );
}
[Test]
public void AtParkIsTrueAfterParkingScope()
{
_isConnected = true;
_telescopeController.Connected = true;
_telescopeController.Park();
Assert.That(_telescopeController.AtPark, Is.True);
}
[Test]
public void Park_CallingParkSendsTheParkCommand()
{
_isConnected = true;
_telescopeController.Connected = true;
_telescopeController.Park();
serialMock.Verify( x => x.Command(":hP#"), Times.Once);
}
[Test]
public void Park_ParkingSecondTimeDoesNothing()
{
_isConnected = true;
_telescopeController.Connected = true;
_telescopeController.Park();
_telescopeController.Park();
serialMock.Verify(x => x.Command(":hP#"), Times.Once);
}
} }
} }
+5 -4
View File
@@ -342,8 +342,9 @@ namespace ASCOM.MeadeAutostar497
{ {
get get
{ {
tl.LogMessage("AtPark", "Get - " + false.ToString()); var atPatk = _telescopeController.AtPark;
return false; tl.LogMessage("AtPark", "Get - " + atPatk.ToString());
return atPatk;
} }
} }
@@ -634,8 +635,8 @@ namespace ASCOM.MeadeAutostar497
public void Park() public void Park()
{ {
tl.LogMessage("Park", "Not implemented"); tl.LogMessage("Park", "Parking telescope");
throw new ASCOM.MethodNotImplementedException("Park"); _telescopeController.Park();
} }
public void PulseGuide(GuideDirections Direction, int Duration) public void PulseGuide(GuideDirections Direction, int Duration)
@@ -13,7 +13,9 @@ namespace ASCOM.MeadeAutostar497.Controller
double SiteLatitude { get; set; } double SiteLatitude { get; set; }
double SiteLongitude { get; set; } double SiteLongitude { get; set; }
AlignmentModes AlignmentMode { get; set; } AlignmentModes AlignmentMode { get; set; }
bool AtPark { get; }
void AbortSlew(); void AbortSlew();
void PulseGuide(GuideDirections direction, int duration); void PulseGuide(GuideDirections direction, int duration);
void Park();
} }
} }
@@ -293,6 +293,10 @@ namespace ASCOM.MeadeAutostar497.Controller
} }
} }
private bool _parked = false;
public bool AtPark => _parked;
public void AbortSlew() public void AbortSlew()
{ {
SerialPort.Command("#:Q#"); SerialPort.Command("#:Q#");
@@ -335,6 +339,15 @@ namespace ASCOM.MeadeAutostar497.Controller
} }
} }
public void Park()
{
if (_parked)
return;
_parked = true;
_serialPort.Command(":hP#");
}
public bool UserNewerPulseGuiding { get; set; } = true; //todo make this a device setting public bool UserNewerPulseGuiding { get; set; } = true; //todo make this a device setting
} }
} }