From Wikibooks, open books for an open world
< User:Arlen22‎ | Ascom(Redirected from Ascom/ITelescope)
Jump to: navigation, search

This document describes the interface used by low-level telescope "driver" components as part of the Astronomy Common Object Model (ASCOM). Components that implement this interface can provide a way for programs to control various telescopes via a standard set of properties and methods.

This specification covers a simple, low-level telescope control interface for reading and writing coordinates, slewing, synchronizing and access to common controller functions. It does not provide for accessories such as focusers, flip mirrors, etc. Those sorts of things will have their own interfaces. 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.

In addition to containing features, the 2.0 specification has been clarified in numerous areas. These changes appear with this background color when they apply to existing V1 properties and methods. New properties and methods in V2.0 are not marked with the change color. For a summary of the changes and additions since the previous standard (Telescope 1.4), please refer to the Release Notes.


Use this interface to perform basic operations on a robotic telescope. It is designed to be used by client applications that wish to provide telescope control capabilities which are device-independent. By using this interface, your application will be freed from dealing with the details of serial port control and low-level protocols in use by various telescopes.

Discovery API[edit]

Not all of the features in this interface are required to be supported by all drivers and telescopes. This permits support for a wide range of telescope types without the evils of least-common-denominator designs. Telescope includes properties that permit discovery of supported features and supported ranges of motion rates.

Many optional properties can be discovered by simply trying to read or set them. If a property is not supported, trying to read or set it will raise an exception, which you can trap.

On the other hand, some features must be discovered by reading one of the Can___ properties, all of which must be supported. These are used to discover support for features (such as slewing capabilities) which would alter the state of the telescope if called directly for discovery.

These Can___ properties are intended to declare only that the telescope supports the particular capability. They are not intended to reflect the current state of the telescope/mount. Furthermore, connecting to the telescope may be required in order to determine the capabilities to reflect in the Can___ properties (an error will be raised if a Can___ property is not available). Once connected, however, the Can___ properties must not change.

Finally, the MoveAxis() method supports rate discovery. To discover the supported rates for this feature, a collection of Rate objects is provided. Each Rate object contains a maximum and minimum rate value. They may be equal, in which case the Rate object specifies a single discrete supported rate. The collections may contain more than one Rate object. Each specifies a range of rates or a single discrete rate.


This interface does not provide for concurrency control. In the interest of keeping things simple at this level, the architecture assumes that client applications will refrain from performing conflicting operations.

Telescope Interface V2.0[edit]



  • Value (read-only, AlignmentModes)
  • Required
  • The alignment mode of the mount.
  • Added: Version 1.0
  • German equatorial mounts are distinct because they require a flip at the meridian.
  • Note that in V2, the names in the AlignmentModes enumeration have been changed from V1. They now start with 'alg' instead of 'tele'. Most V1 drivers already use the 'alg' names.

Symbolic Constants

The (symbolic) values for AlignmentModes are:

Constant Value Description
algAltAz 0 Altitude-Azimuth mount
algPolar 1 Polar mount other than German equatorial
algGermanPolar 2 German equatorial mount


  • Value (read-only, Double)
  • Required
  • The Altitude above the local horizon of the telescope's current position (degrees, positive up).
  • Added: Version 1.0

All mounts must report equatorial coordinates.


  • Value (read-only, Double)
  • Optional
  • The area of the telescope's aperture, taking into account any obstructions (square meters)
  • Added: Version 2.0

This can be used by exposure calculators, as it includes the effects of obscuration by central obstructions, etc.


  • Value (read-only, Double)
  • Optional
  • The telescope's effective aperture diameter (meters)
  • Added: Version 1.0

This can be used in conjunction with FocalLength to provide focal ratio information.


Connected Set True to connect to the device. Set False to disconnect from the device. You can also read the property to check whether it is connected.
System.Exception: Must throw exception if unsuccessful.
Description Returns a description of the driver, such as manufacturer and modelnumber. Any ASCII characters may be used.
System.Exception: Must throw exception if description unavailable
DriverInfo Descriptive and version information about this ASCOM driver.This string may contain line endings and may be hundreds to thousands of characters long. It is intended to display detailed information on the ASCOM driver, including version and copyright data. See the See: P:ASCOM.DeviceInterface.ISafetyMonitor.Description property for information on the telescope itself. To get the driver version in a parseable string, use the See: P:ASCOM.DeviceInterface.ISafetyMonitor.DriverVersion property.
DriverVersion A string containing only the major and minor version of the driver.This must be in the form "n.n". It should not to be confused with the See: P:ASCOM.DeviceInterface.ISafetyMonitor.InterfaceVersion property, which is the version of this specification supported by the driver.
InterfaceVersion The interface version number that this device supports. Should return 1 for this interface version.Clients can detect legacy V1 drivers by trying to read ths property. If the driver raises an error, it is a V1 driver. V1 did not specify this property. A driver may also return a value of 1. In other words, a raised error or a return value of 1 indicates that the driver is a V1 driver.
Name The short name of the driver, for display purposes
SupportedActions Returns the list of action names supported by this driver. This is only available for telescope InterfaceVersion 3This method must return an empty arraylist if no actions are supported. Please do not throw a See: T:ASCOM.PropertyNotImplementedException.This is an aid to client authors and testers who would otherwise have to repeatedly poll the driver to determine its capabilities. Returned action names may be in mixed case to enhance presentation but will be recognised case insensitively in the See: M:ASCOM.DeviceInterface.ISafetyMonitor.Action(System.String,System.String) method.An array list collection has been selected as the vehicle for action names in order to make it easier for clients to determine whether a particular action is supported. This is easily done through the Contains method. Since the collection is also ennumerable it is easy to use constructs such as For Each ... to operate on members without having to be concerned about hom many members are in the collection. Collections have been used in the Telescope specification for a number of years and are known to be compatible with COM. Within .NET the ArrayList is the correct implementation to use as the .NET Generic methods are not compatible with COM.
IsSafe Indicates whether the monitored state is safe for use.