Written by Dan Azari, RC Optical Systems
Adopted 25-April-2006
This document describes the interface used by low-level rotator "driver" components as part of the Astronomy Common Object Model (ASCOM). Components that implement this interface can provide way for programs to control various rotaor via a standard set of properties and methods.
This specification covers a simple, low-level rotator control interface for reading and writing positions, slewing, synchronizing and access to common controller functions. The characteristics of this interface comply with the ASCOM Quality Guidelines, assuring consistent behavior and compatibility with the widest possible variety of Windows Automation clients.
All of the methods and properties specified must be present in any conforming driver's interface. However, some methods and properties may not actually be implemented; they will raise a "not implemented" error when called or accessed.
Positions are defined as positive CCW at the image plane. Depending on the number of optical reflections, the mechanical direction sense may reverse. The absolute position coordinate by be relative to startup position if homing is not supported, relative to a mechanical known position if homing is supported, or represent equatorial position angle if synchronized.
To control a particular rotator type, a program would create an instance of the driver for that rotator type, then use the standard properties and methods described in this document to effect control of that scope. Thus any program or script that uses the standard driver interface automatically gains access to any rotator type for which a driver exists. For more information on ASCOM, see the ASCOM Home Page.
This will display best if you have Internet Explorer 5 or later, text size set to "smaller", and the following fonts installed:
Rotator.IsMoving (read-only, Boolean)
True if the Rotator is currently moving to a new position. False if the Rotator
is stationary.
Rotator.IsMoving
The property syntax has these parts:
|
Part |
Description |
|
Value (Boolean) |
True if the Rotator is currently moving to a new position. False if the Rotator is stationary. |
Copyright © 2005, The ASCOM Initiative
Rotator.Connected (read-write, Boolean)
State of the connection to the Rotator.
Rotator.Connected [= Boolean]
The property syntax has these parts:
|
Part |
Description |
|
Value (Boolean) |
State of the connection to the Rotator. |
Set True to start the Connected to the Rotator; set False to terminate the Connected. The current Connected status can also be read back as this property. An exception will be raised if the Connected fails to change state for any reason.
Copyright © 2005, The ASCOM Initiative
Rotator.Position (read-only, Float)
Current instantaneous Rotator position, in degrees.
Rotator.Position
The property syntax has these parts:
|
Part |
Description |
|
Value (Float) |
Current Rotator position, in degrees. |
The meaning of the Rotator.Position property is dependent on the Home state and/or the Synch status. When a rotator is initially powered up the Position value may be persisted from its last known position, it may seek Home and reflect a relative mechanical position, or it may be in an un-initialized state and have no relivance to either the mechanical or equatorial coordinates. To set the position value relative to a repeatable mechanical reference, issue the Rotator.Home method. To synchronize the position value to a know equatorial position, issue the Rotator.Synch method. Should throw an exception if unable to report instantaneous position.
Also see: Rotator.TargetPosition
Copyright © 2005, The ASCOM Initiative
Rotator.TargetPosition (read-only, Float)
Current Rotator target position, in degrees.
Rotator.TargetPosition
The property syntax has these parts:
|
Part |
Description |
|
Value (Float) |
Current Rotator target position, in degrees. |
The meaning of the Rotator.TargetPosition property is dependent on the Home state and/or the Synch status. When a rotator is initially powered up the Position value may be persisted from its last known position, it may seek Home and reflect a relative mechanical position, or it may be in an un-initialized state and have no relivance to either the mechanical or equatorial coordinates. To set the position value relative to a repeatable mechanical reference, issue the Rotator.Home method. To synchronize the position value to a know equatorial position, issue the Rotator.Synch method. Should throw an exception if unable to report TargetPosition.
Also see: Rotator.Position
Copyright © 2005, The ASCOM Initiative
Rotator.StepSize (read-only, Float)
The minimum StepSize, in degrees.
Rotator.StepSize
The property syntax has these parts:
|
Part |
Description |
|
Value (Float) |
The minimum StepSize, in degrees. |
Raises an exception if the rotator does not intrinsically
know what the step size is.
Copyright © 2005, The ASCOM Initiative
Rotator.Reverse (read-write, Boolean)
Sets or Returns the rotator’s Reverse state.
Rotator.Reverese [= Boolean]
The property syntax has these parts:
|
Part |
Description |
|
Value (Boolean) |
Sets or Returns the rotator’s Reverse state |
The value of Rotator.Reverse should be set to cause positive Rotator.Move() in a CCW direction at the image plane. The Reverse value should be persisted by the Rotator firmware and/or driver, and should be accessible through the Setup Dialog and/or driver application. An exception should be thrown if Reverse property is not supported.
Copyright © 2005, The ASCOM Initiative
Rotator.CanReverse (read-only, Boolean)
Returns True if the Rotator supports the Rotator.Reverse() method.
Rotator.CanReverse
The property syntax has these parts:
|
Part |
Description |
|
Value (Boolean) |
Returns True if the Rotator supports the Rotator.Reverse() method. |
Copyright © 2005, The ASCOM Initiative
Immediately stop any Rotator motion due to a previous Move() or MoveAbsolute() method call.
Rotator.Halt()
The method syntax has these parts:
|
Part |
Description |
|
Return (Nothing) |
Does not return a value. |
Some Rotators may not support this function, in which case an exception will be raised.
Recommendation: Host software should call this method upon initialization and, if it fails, disable the Halt button in the user interface.
Copyright © 2005, The ASCOM Initiative
Rotator.Move(Position)
Causes the rotator to move Position degrees relative to the current Position value.
The method syntax has these parts:
|
Part |
Description |
|
Position (Float) |
Relative position to move in degrees from current Position. |
|
Return (Nothing) |
Does not return a value. |
Issuing a Rotator.Move(value) method will cause the Rotator.TargetPosition value to change to Rotator.Position plus {Value}, not the Rotator.TargetPosition plus {Value} (i.e. will cause a move relative to its current position, not relative to its last targeted position, if different). The mechanical direction of rotation is determined by the Rotator.Reverse property. By convention, position direction is defined as CCW equatorial at the image plane. If a Move would cause rotation outside a software or mechanical limt, the firmware and/or driver should reverse direction through 360 degrees to minimize cable wrap. Should throw an exception if can not perform Move for any reason.
Copyright © 2005, The ASCOM Initiative
Rotator.MoveAbsolute(Position)
Causes the rotator to move the absolute position of Position degrees.
The method syntax has these parts:
|
Part |
Description |
|
Position (Float) |
Causes the rotator to move the absolute position of Position degrees. |
|
Return (Nothing) |
Does not return a value. |
Issuing a Rotator.MoveAbsolute(value)
method will cause the Rotator.TargetPosition to equal {value}. The mechanical direction of rotation should be
determined by the Rotator firmware and/or driver to minimize cable wrap. Should through an exception
if unable to perform MoveAbsolute.
Copyright © 2005, The ASCOM Initiative
Display a dialog box for the user to enter in custom setup parameters, such as a COM port selection.
Rotator.SetupDialog()
The method syntax has these parts:
|
Part |
Description |
|
Return (Nothing) |
Does not return a value. |
If no dialog is required or supported, the method shall display a “No setup required.” message..
Copyright © 2005, The ASCOM Initiative