Added support for AtPark and Park
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user