ASCOM (standard)

Last updated
Astronomy Common Object Model
Ascomlogo.jpg
AbbreviationASCOM
StatusPublished
Year started1997;26 years ago (1997)
Latest versionASCOM Platform 6.6 - Service Pack 1
August 17, 2022;4 months ago (2022-08-17)
OrganizationThe ASCOM Initiative
Domain Application programming interfaces
License Creative Commons, ASCOM Open Source License
Website ascom-standards.org

ASCOM (an abbreviation for AStronomy Common Object Model) is an open initiative to provide a standard interface to a range of astronomy equipment including mounts, focusers and imaging devices in a Microsoft Windows environment.

Contents

History

ASCOM was invented in late 1997 and early 1998 by Bob Denny, when he released two commercial programs and several freeware utilities that showcased the technology. He also induced Doug George to include ASCOM capabilities in commercial CCD camera control software.

The first observatory to adopt ASCOM was Junk Bond Observatory, in early 1998. It was used at this facility to implement a robotic telescope dedicated to observing asteroids. The successful use of ASCOM there was covered in an article in Sky & Telescope magazine. This helped ASCOM to become more widely adopted.

The ASCOM standards were placed under the control of the ASCOM Initiative, a group of astronomy software developers who volunteered to develop the standards further. Under the influence of Denny, George, Tim Long, and others, ASCOM developed into a set of device driver standards. In 2004, over 150 astronomy-related devices were supported by ASCOM device drivers, which were released as freeware. Most of the drivers are also open source.

As ASCOM developed, the term became less associated with the Component Object Model, and has been used more broadly to describe not only the standards and software based on them, but also to describe an observing system architecture and a robotic telescope design philosophy. In 2004, ASCOM remained formally a reference to the Component Object Model, but the term is expected to stand on its own as new technologies such as Microsoft .NET take over functions provided by the Component Object Model, and additional ASCOM projects are adopted that dilute its concentration on device drivers.

Jonathan Fay contributed to the ASCOM standard. During his work on the WorldWide Telescope ASCOM client he created the reference .NET Framework prototype classes that led to the ASCOM Version 5 redesign. [1]

The release of version 6 of the ASCOM Platform in June 2011 marked a transition to an open source development paradigm, with several developers contributing to the effort and all of the platform source code being made available under a Creative Commons license. Initially, the Platform developer team used servers hosted by TiGra Networks (Long's IT consulting company) for source code control, issue tracking and project management, with server licenses contributed by Atlassian and JetBrains. In 2012, due in part to differences in development style, TiGra Networks' involvement with the software development effort ceased and the source code was relocated to SourceForge.

What is it?

The Ascom Platform is a collection of computer drivers for different astronomy-related devices. It uses agreed standards that allow different computer programs ('apps') and devices to communicate with each other simultaneously. This means that you can have things like mounts, focusers, cameras and filter wheels all controlled by a single computer, even with several computers sharing access to those resources. For example, you can use one program to find targets and another to guide your telescope, with both of them sharing control of your mount at the same time.

An ASCOM driver acts as an abstraction layer between the client and hardware thus removing any hardware dependency in the client, and making the client automatically compatible with all devices that supports the minimum required properties and methods. For example, this abstraction allows an ASCOM client to use an imaging device without needing to know whether the device is attached via a serial or network connection.

ASCOM defines a collection of required Properties and Methods that ASCOM compliant software can use to communicate with an ASCOM compliant device. ASCOM also defines a range of optional Properties and Methods to take advantage of common features that may not be available for every manufacturer's device. By testing various properties an ASCOM client application can determine what features are available for use.

Properties and Methods are accessible via scripting interfaces, allowing control of devices by standard scripting applications such as VBScript and JavaScript. In fact any language that supports access to Microsoft COM objects can interface with ASCOM.

An ASCOM Platform software package is available for download which installs some common libraries and documentation as well as a collection of ASCOM drivers for a broad range of equipment. Additional ASCOM drivers for devices not included in the ASCOM Platform package can be downloaded and installed separately.

Although ASCOM is predominantly used by the amateur community, because the standard is freely available it is also used in some professional installations.

Licensing

There are no particular licensing requirements other than that the ASCOM logo may only be used if the client application is ASCOM compatible, and an ASCOM driver must implement all the required properties and methods (but need not implement any of the optional properties and methods).

End user

From an astronomer's point of view, it is a simple matter of installing the ASCOM platform and suitable client software; no programming is required.

ASCOM drivers allow computer-based control of devices such as planetarium software to direct a telescope to point at a selected object. Using a combination of mount, focuser and imaging device ASCOM drivers, it is possible to build a fully automated environment for deep sky imaging.

Developer

Developers can enhance the power of ASCOM by writing their own clients using the scripting or object interface.

ASCOM Alpaca

Recent initiative called ASCOM Alpaca is currently under development. [2] The Alpaca API uses RESTful techniques and TCP/IP to enable ASCOM applications and devices to communicate across modern network environments. This will enable ASCOM compatible devices to work across all the different operating systems including Linux and Mac OSX in near future.

See also

Related Research Articles

<span class="mw-page-title-main">Java applet</span> Small application written in Java

Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from a web page, and the applet was then executed within a Java virtual machine (JVM) in a process separate from the web browser itself. A Java applet could appear in a frame of the web page, a new application window, Sun's AppletViewer, or a stand-alone tool for testing applets.

The Telephony Application Programming Interface (TAPI) is a Microsoft Windows API, which provides computer telephony integration and enables PCs running Microsoft Windows to use telephone services. Different versions of TAPI are available on different versions of Windows. TAPI allows applications to control telephony functions between a computer and telephone network for data, fax, and voice calls. It includes basic functions, such as dialing, answering, and hanging up a call. It also supports supplementary functions, such as hold, transfer, conference, and call park found in PBX, ISDN, and other telephone systems.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Graphics Device Interface</span> Microsoft Windows API

The Graphics Device Interface (GDI) is a legacy component of Microsoft Windows responsible for representing graphical objects and transmitting them to output devices such as monitors and printers. Windows apps use Windows API to interact with GDI, for such tasks as drawing lines and curves, rendering fonts, and handling palettes. The Windows USER subsystem uses GDI to render such UI elements as window frames and menus. Other systems have components that are similar to GDI; for example: macOS has Quartz, and Linux has X Window System and Wayland.

FileMaker is a cross-platform relational database application from Claris International, a subsidiary of Apple Inc. It integrates a database engine with a graphical user interface (GUI) and security features, allowing users to modify a database by dragging new elements into layouts, screens, or forms. It is available in desktop, server, iOS and web-delivery configurations.

A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross compiler.

Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

Open Platform Communications (OPC) is a series of standards and specifications for industrial telecommunication. They are based on Object Linking and Embedding (OLE) for process control. An industrial automation task force developed the original standard in 1996 under the name OLE for Process Control. OPC specifies the communication of real-time plant data between control devices from different manufacturers.

<span class="mw-page-title-main">Robotic telescope</span>

A robotic telescope is an astronomical telescope and detector system that makes observations without the intervention of a human. In astronomical disciplines, a telescope qualifies as robotic if it makes those observations without being operated by a human, even if a human has to initiate the observations at the beginning of the night or end them in the morning. It may have software agents using artificial intelligence that assist in various ways such as automatic scheduling. A robotic telescope is distinct from a remote telescope, though an instrument can be both robotic and remote.

Bob Denny is an American software developer who writes software for robotic telescope and remote telescope systems. He is the inventor of the Astronomy Common Object Model (ASCOM) standard, which has resulted in the easy availability of freeware device drivers for telescopes, telescope focusers, and astronomical observatory domes and enclosures.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

Microsoft Active Accessibility (MSAA) is an application programming interface (API) for user interface accessibility. MSAA was introduced as a platform add-on to Microsoft Windows 95 in 1997. MSAA is designed to help Assistive Technology (AT) products interact with standard and custom user interface (UI) elements of an application, as well as to access, identify, and manipulate an application's UI elements. AT products work with MSAA enabled applications in order to provide better access for individuals who have physical or cognitive difficulties, impairments, or disabilities. Some examples of AT products are screen readers for users with limited sight, on screen keyboards for users with limited physical access, or narrators for users with limited hearing. MSAA can also be used for automated testing tools, and computer-based training applications.

Mobile app development is the act or process by which a mobile app is developed for mobile devices, such as personal digital assistants, enterprise digital assistants or mobile phones. These software applications are designed to run on mobile devices, such as a smartphone or tablet computer. These applications can be pre-installed on phones during manufacturing platforms, or delivered as web applications using server-side or client-side processing to provide an "application-like" experience within a web browser. Application software developers also must consider a long array of screen sizes, hardware specifications, and configurations because of intense competition in mobile software and changes within each of the platforms. Mobile app development has been steadily growing, in revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct app economy jobs within the EU then 28 members, 60 percent of which are mobile app developers.

In Microsoft Windows applications programming, OLE Automation is an inter-process communication mechanism created by Microsoft. It is based on a subset of Component Object Model (COM) that was intended for use by scripting languages – originally Visual Basic – but now is used by several languages on Windows. All automation objects are required to implement the IDispatch interface. It provides an infrastructure whereby applications called automation controllers can access and manipulate shared automation objects that are exported by other applications. It supersedes Dynamic Data Exchange (DDE), an older mechanism for applications to control one another. As with DDE, in OLE Automation the automation controller is the "client" and the application exporting the automation objects is the "server".

Omnis Studio is a rapid application development (RAD) tool that allows programmers and application developers to create enterprise, web, and mobile applications for Windows, Linux, and macOS personal computers and servers across all business sectors.

In computing, object model has two related but distinct meanings:

  1. The properties of objects in general in a specific computer programming language, technology, notation or methodology that uses them. Examples are the object models of Java, the Component Object Model (COM), or Object-Modeling Technique (OMT). Such object models are usually defined using concepts such as class, generic function, message, inheritance, polymorphism, and encapsulation. There is an extensive literature on formalized object models as a subset of the formal semantics of programming languages.
  2. A collection of objects or classes through which a program can examine and manipulate some specific parts of its world. In other words, the object-oriented interface to some service or system. Such an interface is said to be the object model of the represented service or system. For example, the Document Object Model (DOM) is a collection of objects that represent a page in a web browser, used by script programs to examine and dynamically change the page. There is a Microsoft Excel object model for controlling Microsoft Excel from another program, and the ASCOM Telescope Driver is an object model for controlling an astronomical telescope.

Instrument Neutral Distributed Interface (INDI) is a distributed control system (DCS) protocol to enable control, data acquisition and exchange among hardware devices and software front ends, emphasizing astronomical instrumentation.

In computer science, marshalling or marshaling is the process of transforming the memory representation of an object into a data format suitable for storage or transmission. It is typically used when data must be moved between different parts of a computer program or from one program to another.

<span class="mw-page-title-main">API</span> Software interface between computers and/or programs

An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build or use such a connection or interface is called an API specification. A computer system that meets this standard is said to implement or expose an API. The term API may refer either to the specification or to the implementation.

References

  1. "ASCOM Hall of Fame". ascom-standards.org.
  2. "ASCOM Alpaca API". ascom-standards.org. Retrieved 2020-02-04.