ITelescope |
Exception | Condition |
---|---|
MethodNotImplementedException | If the method is not implemented. |
InvalidValueException | If an invalid axis or rate is given. |
NotConnectedException | If the device is not connected |
DriverException | An error occurred that is not described by one of the more specific ASCOM exceptions. Include sufficient detail in the message text to enable the issue to be accurately diagnosed by someone other than yourself. |
This method supports control of the mount about its mechanical axes. The telescope will start moving at the specified rate about the specified axis and continue indefinitely. This method can be called for each axis separately, and have them all operate concurrently at separate rates of motion. Set the rate for an axis to zero to restore the motion about that axis to the rate set by the Tracking property. Tracking motion (if enabled, see note below) is suspended during this mode of operation.
Raises an error if AtPark is true.
MoveAxis(TelescopeAxes, Double) must be implemented if CanMoveAxis(TelescopeAxes) returns True for the given axis.
We see MoveAxis() as being in a different class to the higher level operations because it just says move this axis in this direction at this rate. Like the CommandXXX methods, the driver has no idea what objective the client is trying to achieve and must blindly follow the instructions it is given. In effect the client is now providing the high level functions of the driver / mount control system and is just commandeering the driver to communicate the desired axis movement rate to the mount.
For this reason it is our view that, when MoveAxis() is in effect on any axis, clients should not rely on the Tracking value reported by drivers.Since the client is providing high level control and directing use of MoveAxis(), only the client knows whether the mount is moving to its target coordinates at a fast rate or whether it is tracking a target at some arbitrary multi-axis rate.
A MoveAxis(TelescopeAxes, Double) call with Rate = 0 is required to stop motion and return to the previous tracking state of that axis.
NOTES:ITelescopeV4 clarification - This method must act asynchronously using Slewing as the completion variable. This means that Slewing must remain until the movement rate is cancelled by setting a MoveAxis rate of 0.0 or an error condition occurs.
Date | Version | Description |
---|---|---|
ITelescopeV2 | Platform 4.0 | Member added. |
ITelescopeV4 | Platform 7.0 | Formally defined as operating asynchronously, see note above. |