September 2021 Update

With the introduction of ASCOM Alpaca (see below) lots of new things have been happening within ASCOM. From now on this page will list only current projects and their status.

Developer Tools for Alpaca

We are working on a set of tools for developers of Alpaca drivers and clients. The current schedule calls for four deliverables:

1. Native Alpaca Device Simulators

This will be a single cross-platform executable which will implement native Alpaca simulators for all device types. The simulator suite will run on Linux, Mac, and Windows. Each simulator will be a "reference implementation" of its device type. This means that the behavior of the simulator may be considered "correct" for each operation (though the documentation is always the primary reference for "correct"). Of course the Alpaca simulators may be reached from any ASCOM/COM compatible program on Windows which uses the Chooser and its new automatic COM to Alpaca gateway.

2. Cross-Platform Alpaca Device Driver Templates for C# (.NET Core / .NET Standard)

We will supply a set of cross-platform (skeleton) templates for developing Alpaca drivers in C# using .NET Core and .NET Standard as appropriate. These language technologies are fully cross-platform except for the GUI that is needed for device configuration. However the templates will provide the hooks for providing HTML/HTTP-based (and thus universal) device setup user interfaces in the drivers. The templates will allow developers to make drivers for any Alpaca defined device while being certain that their driver supports the interface and error specifications. Of course the implementation of each interface member is up to the individual device and its developer.

3. Cross-Platform .NET Core and .NET Standard Libraries for Developers

One of the deliverables from the previous two projects will be a set of cross-platform libraries that client and driver developers may use to build programs and special purpose applications that use the Alpaca protocol and interface standards. At present the details of this project are not frozen. We expect the above two projects to provide both ideas and deliverables as collateral outputs.

Enhancements to Alpaca Documentation

At present, Alpaca documentation is limited to the specifications of the protocols, JSON data structures, and error definitions. This project will enhance the documentation with clarifications of the specifications based on real world experiences, road maps for developers, and other information that has been found to be lacking by developers not part of the core ASCOM group. We are looking for volunteers who have first-hand experience and who are willing to help wtih this.

Updates to Deprecate Synchronous Operations

Early in ASCOM's history, the interfaces were designed with "synchronous" functions as a convenience. This means that calling a function, for example SlewToTarget(), would not return until the operation, the slew in this case, is complete. Thus a synchronous function call could take minutes before it returns. 20 years later, and with the Alpaca protocols rapidly gaining acceptance and usage, synchronous function calls present a real problem. Furthermore, there are some functions in the interfaces for which it is "up in the air" whether it must be asynchronous or not.

For example, the Telescope.Park() function has a companion property Telescope.AtPark. Even so, some Telescope systems implement Park() as a synchronous operation where it could take minutes to return. We are currently studying various approaches to this problem, all of which will involve deprecating synchronous operations. It will take time, and it will have impact on applications which use synchronous calls, or depend on implicit synchronous behaviors (the latter is a bad idea today). This project is in the study phase.

Soliciting Developer Satisfaction Feedback

During May, June, and July (2019), we conducted surveys of application developers, and separately, device developers. The purpose of the surveys was to determine the level of satisfaction with the ASCOM standard interfaces and the ASCOM-provided support libraries and tools. The response was excellent compared to a typical survey response, showing that the developers want to be heard. We asked if the interfaces were sufficient to cover the routine (night-to-night) usages of the devices, and if there were things they would like to see added. One outcome was the Rotator Interface Update described above. But the vast majority of responses indicated that the interfaces meet the design objective of providing the functions needed by applications for day to day use. We will conduct another survey like this in the Summer of 2021.