Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
            }
        }