_images/Bug72.jpg

Synchronous Slewing in the Telescope Interface

Over the life of ASCOM, devices have provided both synchronous and asynchronous slewing. With the introduction of Alpaca, synchronous operations are badly mismatched to the communication medium, TCP/IP. Therefore in ITelescope V4 use of synchronous slewing by clients has been strongly discouraged, and thus deprecated as noted in the specifications.

It is a client author design decision as to whether, in the absence of driver asynchronous support, they will use synchronous methods or report that the driver is not compatible with their application.

In order to maximize compatibility with older ASCOM COM clients, the ITelescopeV4 and later interface specifications require COM Telescope drivers to support synchronous slewing via SlewToCoordinates(), SlewToTarget(), SlewToAltAz(), and the capability flags CanSlew and CanSlewAltAz.

Important

All ITelescopeV4 and later devices (COM and Alpaca) that can be programmatically slewed must support asynchronous slewing and must therefore report True for CanSlewAsync and CanSlewAltAzAsync.

Important

ASCOM COM drivers for mounts that can be programmatically slewed must support synchronous slewing to ensure backward compatibility with older clients. This is in addition to supporting asynchronous slewing as described above.

Important

Alpaca devices cannot provide reliable synchronous slewing operations over the network, where a method call could take several minutes to complete before returning to the client. Therefore, for mounts that can slew, Alpaca devices must always return False for CanSlew and CanSlewAltAz, and raise MethodNotImplementedException for the synchronous slewing methods.