public IAxisRates AxisRates(TelescopeAxes Axis) { tl.LogMessage("AxisRates", "Get - " + Axis.ToString()); AxisRates axisrates = new AxisRates(Axis); return(axisrates); }
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; }