Support Set Tracking when GW is supported

This commit is contained in:
Sebastian Godelet
2021-06-28 16:33:46 +10:00
parent 8478af26bf
commit 64df8282a0
3 changed files with 64 additions and 26 deletions
@@ -18,20 +18,23 @@ namespace Meade.net.Telescope.UnitTests
{
public class TestProperties
{
internal string telescopeRaResult = "HH:MM:SS";
internal double rightAscension = 1.2; //todo rename to declination;
internal double declination = 45;
internal string telescopeRaResult { get; set; } = "HH:MM:SS";
internal double rightAscension { get; set; } = 1.2; //todo rename to declination;
internal double declination { get; set; } = 45;
internal string SiteLatitudeString = "testLatString";
internal double SiteLatitudeValue = 123.45;
internal string SiteLatitudeString { get; set; } = "testLatString";
internal double SiteLatitudeValue { get; set; } = 123.45;
internal string telescopeDate = "10/15/20";
internal string telescopeTime = "20:15:10";
internal string telescopeUtcCorrection = "-1.0";
internal string telescopeDate { get; set; } = "10/15/20";
internal string telescopeTime { get; set; } = "20:15:10";
internal string telescopeUtcCorrection { get; set; } = "-1.0";
internal double hourAngle;
internal int telescopeAltitude = 45;
internal int telescopeAzimuth = 200;
internal double hourAngle { get; set; }
internal int telescopeAltitude { get; set; } = 45;
internal int telescopeAzimuth { get; set; } = 200;
internal char[] AlignmentStatus { get; set; }
internal string TrackingRate { get; set; }
}
[TestFixture]
@@ -53,7 +56,6 @@ namespace Meade.net.Telescope.UnitTests
private bool _isParked;
private ParkedPosition _parkedPosition;
private string _trackingRate;
[SetUp]
public void Setup()
@@ -124,7 +126,12 @@ namespace Meade.net.Telescope.UnitTests
private void ConnectTelescope(string productName = TelescopeList.Autostar497, string firmwareVersion = TelescopeList.Autostar497_31Ee, string alignmentStatus = "GT0")
{
_sharedResourcesWrapperMock.Setup(x => x.SendChars("GW", false, 3)).Returns(alignmentStatus);
_testProperties.AlignmentStatus = alignmentStatus.ToCharArray();
_sharedResourcesWrapperMock.Setup(x => x.SendChars("GW", false, 3)).Returns(() => new string(_testProperties.AlignmentStatus));
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("AP", false)).Callback(() => _testProperties.AlignmentStatus[1] = 'T');
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("AL", false)).Callback(() => _testProperties.AlignmentStatus[1] = 'N');
_sharedResourcesWrapperMock.Setup(x => x.SendString("Gt", false)).Returns( () => _testProperties.SiteLatitudeString);
_utilMock.Setup(x => x.DMSToDegrees(_testProperties.SiteLatitudeString)).Returns( () => _testProperties.SiteLatitudeValue);
@@ -136,10 +143,10 @@ namespace Meade.net.Telescope.UnitTests
_sharedResourcesWrapperMock.Setup(x => x.SendString("GG", false)).Returns(() => _testProperties.telescopeUtcCorrection);
const string siderealTrackingRate = "+60.1";
_trackingRate = siderealTrackingRate;
_sharedResourcesWrapperMock.Setup(x => x.SendString("GT", false)).Returns(() => _trackingRate);
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("TL", false)).Callback(() => _trackingRate = "lunar");
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("TQ", false)).Callback(() => _trackingRate = siderealTrackingRate);
_testProperties.TrackingRate = siderealTrackingRate;
_sharedResourcesWrapperMock.Setup(x => x.SendString("GT", false)).Returns(() => _testProperties.TrackingRate);
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("TL", false)).Callback(() => _testProperties.TrackingRate = "lunar");
_sharedResourcesWrapperMock.Setup(x => x.SendBlind("TQ", false)).Callback(() => _testProperties.TrackingRate = siderealTrackingRate);
_sharedResourcesWrapperMock.Setup(x => x.ProductName).Returns(() => productName);
_sharedResourcesWrapperMock.Setup(x => x.FirmwareVersion).Returns(() => firmwareVersion);
@@ -1121,12 +1128,15 @@ namespace Meade.net.Telescope.UnitTests
Assert.That(result, Is.False);
}
[Test]
public void CanSetTracking_Get_ReturnsFalse()
[TestCase(TelescopeList.Autostar497_30Ee, false)]
[TestCase(TelescopeList.Autostar497_43Eg, true)]
public void CanSetTracking_Get_ReturnsTrueIffGWCommandIsSupported(string firmware, bool supported)
{
ConnectTelescope(firmwareVersion: firmware);
var result = _telescope.CanSetTracking;
Assert.That(result, Is.False);
Assert.That(result, Is.EqualTo(supported));
}
[Test]
@@ -2659,11 +2669,28 @@ namespace Meade.net.Telescope.UnitTests
[TestCase(true)]
[TestCase(false)]
public void Tracking_Set_ThenThrowsNotImplementedException(bool tracking)
public void Tracking_Set_WhenCanSetTrackingIsFalse_ThenThrowsNotImplementedException(bool tracking)
{
// GW is not supported, so CanSetTracking is false
ConnectTelescope(firmwareVersion: TelescopeList.Autostar497_30Ee);
Assert.Throws<ASCOM.NotImplementedException>( () => { _telescope.Tracking = tracking; } );
}
[TestCase(true, "AP")]
[TestCase(false, "AL")]
public void Tracking_Set_WhenCanSetTrackingIsTrue_ThenValueIsUpdated(bool tracking, string alignmentCommand)
{
// GW is supported, so CanSetTracking is true
ConnectTelescope(firmwareVersion: TelescopeList.Autostar497_43Eg);
_telescope.Tracking = tracking;
Assert.That(_telescope.Tracking, Is.EqualTo(tracking));
_sharedResourcesWrapperMock.Verify(x => x.SendBlind(alignmentCommand, false), Times.Once);
}
[Test]
public void TrackingRate_Set_WhenNotConnected_ThenThrowsException()
{
+10 -5
View File
@@ -1309,8 +1309,9 @@ namespace ASCOM.Meade.net
{
get
{
LogMessage("CanSetTracking", "Get - " + false);
return false;
var canSetTracking = IsGWCommandSupported();
LogMessage("CanSetTracking", "Get - " + canSetTracking);
return canSetTracking;
}
}
@@ -2600,9 +2601,13 @@ namespace ASCOM.Meade.net
}
set
{
throw new ASCOM.NotImplementedException("Tracking Set");
//LogMessage("Tracking Set", $"{value}");
//_tracking = value;
if (!CanSetTracking)
{
throw new ASCOM.NotImplementedException("Tracking Set");
}
LogMessage("Tracking Set", $"{value}");
SharedResourcesWrapper.SendBlind(value ? "AP" : "AL");
}
}
@@ -649,5 +649,11 @@ namespace Meade.net.UnitTests
[Test]
public void CheckTargetRightAscensionIsNullByDefault() => Assert.That(SharedResources.TargetRightAscension.HasValue, Is.False);
[Test]
public void CheckIsTargetCoordinateInitRequired() => Assert.That(SharedResources.IsTargetCoordinateInitRequired, Is.True);
[Test]
public void CheckIsGuiding() => Assert.That(SharedResources.IsGuiding, Is.False);
}
}