private TelescopeParameters InitializeTestDefaultParameters(AlignmentModes alignmentMode) { TelescopeParameters parms = new TelescopeParameters(); parms.InterfaceVersion = 3; parms.AlignmentMode = alignmentMode; parms.ApertureDiameter = 0.130; parms.ApertureArea = parms.ApertureDiameter * Math.PI / 4; parms.DoesRefraction = false; parms.DriverVersion = "1.0"; parms.EquatorialSystem = EquatorialCoordinateType.equTopocentric; parms.FocalLength = 0.910; parms.SiteElevation = _siteElevation; parms.SiteLatitude = _siteLatitude; parms.SiteLongitude = _siteLongitude; parms.SlewSettleTime = 0; return(parms); }
public void CanDoMeridianFlip() { TelescopeParameters parms = new TelescopeParameters(); DevHubTelescopeStatus status = DevHubTelescopeStatus.GetEmptyStatus(); TelescopeCapabilities caps = TelescopeCapabilities.GetFullCapabilities(); _vm.Status = null; _vm.Parameters = parms; _vm.Capabilities = caps; bool result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // No device status _vm.Status = status; _vm.Parameters = null; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // No device parameters _vm.Parameters = parms; _vm.Capabilities = null; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // No capabilities _vm.Capabilities = caps; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Not connected _vm.Status.Connected = true; _vm.Capabilities.CanSetPierSide = false; _vm.Capabilities.CanSlewAsync = false; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Not capable _vm.Capabilities.CanSetPierSide = true; _vm.Capabilities.CanSlewAsync = true; _vm.Status.Tracking = false; _vm.Status.AtPark = true; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Scope is parked _vm.Status.Tracking = true; _vm.Status.AtPark = false; _vm.Status.Slewing = true; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Already slewing _vm.Status.Slewing = false; _vm.Parameters.AlignmentMode = AlignmentModes.algAltAz; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Not a German Equatorial mount _vm.Parameters.AlignmentMode = AlignmentModes.algGermanPolar; _vm.Status.IsCounterWeightUp = false; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Not CW Up _vm.Status.IsCounterWeightUp = true; _vm.Status.SideOfPier = PierSide.pierEast; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsFalse(result); // Not on the west side of the pier _vm.Status.SideOfPier = PierSide.pierWest; result = (bool)_prVm.Invoke("CanDoMeridianFlip"); Assert.IsTrue(result); // Ready to flip }
public void CanJogScope() { TelescopeParameters parms = new TelescopeParameters { AlignmentMode = AlignmentModes.algGermanPolar }; DevHubTelescopeStatus status = DevHubTelescopeStatus.GetEmptyStatus(); TelescopeCapabilities caps = TelescopeCapabilities.GetFullCapabilities(); _vm.Status = null; _vm.Parameters = parms; _vm.Capabilities = caps; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // No device status _vm.Status = status; _vm.Parameters = null; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // No device parameters _vm.Parameters = parms; _vm.Capabilities = null; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // No capabilities _vm.Capabilities = caps; // Test variable jogs with MoveAxis and PulseGuide _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // Not connected _vm.Status.Connected = true; // Test variable jogs with MoveAxis and PulseGuide _vm.IsVariableJog = true; _vm.Capabilities.CanMovePrimaryAxis = false; _vm.Capabilities.CanPulseGuide = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // Can't MoveAxis or PulseGuide _vm.Capabilities.CanMovePrimaryAxis = true; _vm.Capabilities.CanMoveSecondaryAxis = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // Can't MoveAxis or PulseGuide _vm.Capabilities.CanMoveSecondaryAxis = true; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // No Axis Rates Defined object[] rates = new IRate[] { new AxisRate(0.0, 5.0) }; _vm.Capabilities.PrimaryAxisRates = (IRate[])rates; Assert.IsFalse(_vm.CanStartMoveTelescope); // No Secondary axis rates defined _vm.Capabilities.SecondaryAxisRates = (IRate[])rates; _prVm.Invoke("UpdateCanStartMove"); Assert.IsTrue(_vm.CanStartMoveTelescope); // Not Tracking, but MoveAxis is OK ??? _vm.Status.Tracking = true; _prVm.Invoke("UpdateCanStartMove"); // Ready to do variable slews (Move Axis or PulseGuide) Assert.IsTrue(_vm.CanStartMoveTelescope); // Now test fixed RA/Dec jogs _vm.IsVariableJog = false; _vm.Capabilities = TelescopeCapabilities.GetFullCapabilities(); _prVm.Invoke("UpdateCanStartMove"); Assert.IsTrue(_vm.CanStartMoveTelescope); // Ready to do fixed RA/Dec slews (sync or async) _vm.Capabilities.CanSlewAsync = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsTrue(_vm.CanStartMoveTelescope); // Ready to do fixed sync RA/Dec slews _vm.Capabilities.CanSlew = false; _vm.Capabilities.CanSlewAltAz = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // Can't do fixed sync or async RA/Dec or Alt/Az slews // Finally test jogging via alt-az slews. _vm.Parameters.EquatorialSystem = EquatorialCoordinateType.equTopocentric; _vm.Status.Tracking = false; _vm.Capabilities.CanSlewAltAz = true; _prVm.Invoke("UpdateCanStartMove"); Assert.IsTrue(_vm.CanStartMoveTelescope); // Can slew either sync or async Alt-Az. _vm.Capabilities.CanSlewAltAzAsync = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsTrue(_vm.CanStartMoveTelescope); // Can slew sync Alt-Az. _vm.Capabilities.CanSlewAltAz = false; _prVm.Invoke("UpdateCanStartMove"); Assert.IsFalse(_vm.CanStartMoveTelescope); // Can't slew either sync or async Alt-Az. }
public TelescopeParametersUpdatedMessage(TelescopeParameters parameters) { Parameters = parameters; }