private Vector DoFixedSlewAltAz(Vector startPosition, SlewDirection direction, SlewAmount amount) { _vm.IsVariableJog = false; _mgr.MockIsConnected = true; _mgr.Capabilities = InitializeFullCapabilities(); _mgr.Parameters = InitializeTestDefaultParameters(AlignmentModes.algAltAz); _vm.SelectedSlewAmount = amount; DevHubTelescopeStatus sts = DevHubTelescopeStatus.GetEmptyStatus(); sts.ParkingState = ParkingStateEnum.Unparked; sts.Tracking = true; sts.Slewing = false; sts.Azimuth = startPosition.X; sts.Altitude = startPosition.Y; _mgr.Status = sts; _prVm.Invoke("RegisterStatusUpdateMessage", true); _prVm.Invoke("DoFixedSlew", direction); Thread.Sleep(4000); _prVm.Invoke("RegisterStatusUpdateMessage", false); return(new Vector(_vm.Status.Azimuth, _vm.Status.Altitude)); }
private Vector DoFixedSlewRaDec(Vector startPosition, SlewDirection direction, SlewAmount amount) { _vm.IsVariableJog = false; _mgr.MockIsConnected = true; _mgr.Capabilities = InitializeFullCapabilities(); _mgr.Parameters = InitializeTestDefaultParameters(); _vm.SelectedSlewAmount = amount; DevHubTelescopeStatus sts = DevHubTelescopeStatus.GetEmptyStatus(); sts.ParkingState = ParkingStateEnum.Unparked; sts.Tracking = true; sts.Slewing = false; sts.RightAscension = startPosition.X; sts.Declination = startPosition.Y; _mgr.Status = sts; _prVm.Invoke("RegisterStatusUpdateMessage", true); _prVm.Invoke("DoFixedSlew", direction); Thread.Sleep(3500); _prVm.Invoke("RegisterStatusUpdateMessage", false); return(new Vector(_vm.Status.RightAscension, _vm.Status.Declination)); }
public void DoFixedSlewRightAltAz() { Vector startPosition = GetSaneAltAz(); SlewDirection direction = SlewDirection.SlewRight; SlewAmount amount = new SlewAmount("4°", 4.0); Vector finalPosition = DoFixedSlewAltAz(startPosition, direction, amount); Assert.AreEqual(startPosition.X + amount.Amount, finalPosition.X, 0.00001); Assert.AreEqual(startPosition.Y, finalPosition.Y, 0.00001); }
public void DoFixedSlewSouthRaDec() { Vector startPosition = GetSaneRaDec(); SlewDirection direction = SlewDirection.SlewSouth; SlewAmount amount = new SlewAmount("4°", 4.0); Vector finalPosition = DoFixedSlewRaDec(startPosition, direction, amount); Assert.AreEqual(startPosition.X, finalPosition.X, 0.00001); Assert.AreNotEqual(startPosition.Y, finalPosition.Y, 0.00001); }
private void StartSlew(SlewDirection direction) { if (this.radioButtonPulseGuide.Checked) { // Nothing to do for pulse guiding here. return; } if (TelescopeHardware.AlignmentMode == DeviceInterface.AlignmentModes.algAltAz) { TelescopeHardware.SlewDirection = direction; } else { switch (direction) { case SlewDirection.SlewEast: case SlewDirection.SlewRight: TelescopeHardware.SlewDirection = SlewDirection.SlewEast; break; case SlewDirection.SlewWest: case SlewDirection.SlewLeft: TelescopeHardware.SlewDirection = SlewDirection.SlewWest; break; case SlewDirection.SlewNorth: case SlewDirection.SlewUp: TelescopeHardware.SlewDirection = TelescopeHardware.SouthernHemisphere ? SlewDirection.SlewSouth : SlewDirection.SlewNorth; break; case SlewDirection.SlewSouth: case SlewDirection.SlewDown: TelescopeHardware.SlewDirection = TelescopeHardware.SouthernHemisphere ? SlewDirection.SlewNorth : SlewDirection.SlewSouth; break; case SlewDirection.SlewNone: default: TelescopeHardware.SlewDirection = SlewDirection.SlewNone; break; } } SetSlewSpeed(); }
private void StopSlew(SlewDirection direction) { try { if (this.radioButtonPulseGuide.Checked) { // Nothing to do for pulse guiding here. return; } TelescopeAxes axes = TelescopeAxes.axisPrimary; switch (direction) { case SlewDirection.SlewEast: case SlewDirection.SlewRight: case SlewDirection.SlewWest: case SlewDirection.SlewLeft: axes = TelescopeAxes.axisPrimary; break; case SlewDirection.SlewNorth: case SlewDirection.SlewUp: case SlewDirection.SlewSouth: case SlewDirection.SlewDown: axes = TelescopeAxes.axisSecondary; break; case SlewDirection.SlewNone: default: break; } TelescopeHardware.MoveAxis(axes, 0); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.ToString(), MessageBoxButtons.OK); } }
private void StartSlewGuide(SlewDirection direction) { try { if (this.radioButtonPulseGuide.Checked) { // Do Pulse Guiding instead GuideDirections dir = GuideDirections.guideEast; switch (direction) { case SlewDirection.SlewNorth: case SlewDirection.SlewUp: dir = GuideDirections.guideNorth; break; case SlewDirection.SlewSouth: case SlewDirection.SlewDown: dir = GuideDirections.guideSouth; break; case SlewDirection.SlewEast: case SlewDirection.SlewRight: dir = GuideDirections.guideEast; break; case SlewDirection.SlewWest: case SlewDirection.SlewLeft: dir = GuideDirections.guideWest; break; case SlewDirection.SlewNone: default: return; } TelescopeHardware.Guide(dir, GuideDuration()); return; } double rate = GetSlewSpeed(); TelescopeAxes axes = TelescopeAxes.axisPrimary; //if (TelescopeHardware.AlignmentMode == DeviceInterface.AlignmentModes.algAltAz) //{ // slewDirection = direction; //} //else //{ switch (direction) { case SlewDirection.SlewEast: case SlewDirection.SlewRight: axes = TelescopeAxes.axisPrimary; break; case SlewDirection.SlewWest: case SlewDirection.SlewLeft: axes = TelescopeAxes.axisPrimary; rate = -rate; break; case SlewDirection.SlewNorth: case SlewDirection.SlewUp: axes = TelescopeAxes.axisSecondary; break; case SlewDirection.SlewSouth: case SlewDirection.SlewDown: axes = TelescopeAxes.axisSecondary; rate = -rate; break; case SlewDirection.SlewNone: default: return; } //} TelescopeHardware.MoveAxis(axes, rate); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.ToString(), MessageBoxButtons.OK); } }