コード例 #1
0
        public IAxisRates AxisRates(TelescopeAxes Axis)
        {
            tl.LogMessage("AxisRates", "Get - " + Axis.ToString());
            AxisRates axisrates = new AxisRates(Axis);

            return(axisrates);
        }
コード例 #2
0
        public void MoveAxis(TelescopeAxes Axis, double Rate)
        {
            tl.LogMessage("MoveAxis", " - " + Axis.ToString() + ", rate = " + Rate.ToString());
            STEPDIR dir;

            if (Rate >= 0)
            {
                dir = STEPDIR.STEP_BACKWARD;
            }
            else
            {
                dir = STEPDIR.STEP_FORWARD;
            }

            switch (Axis)
            {
            case TelescopeAxes.axisPrimary:
            {
                if (Math.Abs(Rate) < 0.01)
                {
                    fMounter.Stop(MOTOR.RA);
                }
                else
                {
                    AxisRates axe = new AxisRates(TelescopeAxes.axisPrimary);
                    if ((Math.Abs(Rate) < axe[1].Minimum) || Math.Abs(Rate) > axe[1].Maximum)
                    {
                        throw new ASCOM.InvalidValueException("Invalid value");
                    }
                    fMounter.NavSpeed = Math.Abs(Rate);
                    fMounter.Roll(MOTOR.RA, dir);
                }
                break;
            }

            case TelescopeAxes.axisSecondary:
            {
                if (Math.Abs(Rate) < 0.01)
                {
                    fMounter.Stop(MOTOR.DE);
                }
                else
                {
                    AxisRates axe = new AxisRates(TelescopeAxes.axisSecondary);
                    if ((Math.Abs(Rate) < axe[1].Minimum) || Math.Abs(Rate) > axe[1].Maximum)
                    {
                        throw new ASCOM.InvalidValueException("Invalid value");
                    }
                    fMounter.NavSpeed = Math.Abs(Rate);
                    fMounter.Roll(MOTOR.DE, dir);
                }
            }
            break;

            case TelescopeAxes.axisTertiary:
            {
                throw new ASCOM.InvalidValueException("Invalid value");
            }
            break;
            }

            fIsAtHome = false;
        }