Click or drag to resize

Introduction - Developer

Introduction - ASCOM-Platform 6 - ASCOM Driver and Application Developers

Please see Version 6.5 for information on the latest changes.

Platform 6 builds on the architectural changes introduced in Plaform 5.5 and introduces a set of common methods that will be availabnle in all drivers. These have been based on the methods already implemented in the Telescope interface together with methods agreed in the IDeviceControl interface discussion. The full list of members is given in the ASCOM.DeviceInterface namespace section of this help file.

Client-Driver interactions and relationships to the ASCOM Device interface specification

A diagram is provided in Start Menu ASCOM Platform 6 / Developer Documentation titled Platform 6 Client Driver Interactions. This shows the fundamental relationships between the written ASCOM specification (now in the ASCOM.DeviceInterfaces entry in the ASCOM Namespace section of this help file) and drivers and clients. It also supports the following section describing Platform evolution to the present day.

Architectural Changes

The following notes refer to the slides in the pdf file entitiled "Platform Evolution" installed in the StartMenu ASCOM Platform 6/Developer Documentation folder and describe how the ASCOM Platform has evolved from Platform 4 through to Platform 6.



Platform 4

All drivers and clients used COM to access other clients and the VB6 helper components.

Platform 5

COM clients continue as before and .NET clients are able to use the Client Access Toolkit to talk to drivers through either COM or .NET interfaces. .NET clients and drivers continue to use the VB6 Helper components through COM interfaces.

Platform 6 - Original COM clients

Original COM clients continue to use original drivers that use the VB6 Helpers but these have been "hollowed out" so that serial, profile and chooser functions are transparently carried out in the Platform 6 .NET based components. The original COM applications are unaware of the change because they continue to see the original VB6 helper interface.

Original COM clients are also able to use new .NET drivers, through their COM interfaces as presented through the Chooser and these use the new .NET Platform components directly.

Platform 6 - New COM clients

Newly developed or refactored COM applications can go directly to the COM interfaces exposed by the new .NET Platform components rather than to the original VB6 helper components thus gaining access to all the new features of Platform 6.

Platform 6 - New COM Drivers

New COM drivers should make direct use of the new Platform 6 COM Components such as ASCOM.Utilities.Serial, ASCOM.Utilities.Profile etc. to gain access to the full functionality of Platform 6.

Platform 6 - .NET Clients (Direct)

These clients go direct to the drivers as COM objects through the CreateObject or equivalent Activator funcitonality. They will need to deal directly with variations between device interface version such as missing member exceptions when accessing later interface version methods not present in earlier interface speicification drivers.

The clients can access the Platform utility components directly as .NET references, once the Developer Components have been installed. The Utilities components are all in the namespace ASCOM.Utilities and the astrometry components are in the ASCOM.Astrometry namespace. Visual Studio developers also benefit from IntelliSense and a set of project templates that provide a quick start to driver development. Please see the namespace documentation for further information on available features and components.

Platform 6 - .NET Clients (DriverAccess)

These clients use DriverAccess to load drivers. DriverAccess provides a strongly typed interface to the latest device interface version so you get the full features of Intellisense and error checking. DriverAccess also hides missing member exceptions when older drivers have no implementation for a newer method, providing a consistent interface to the application developer

  • See the section titled Version History for a summary of updates and new functionality.
See Also