API
 
Loading...
Searching...
No Matches
The Base MagAOX Application
Collaboration diagram for The Base MagAOX Application:

Modules

 INDI Support in MagAOX Apps
 
 Device Modules for MagAOX Applications
 
 MagAOX Application Files
 

Classes

class  MagAOX::app::MagAOXApp< _useINDI >
 The base-class for XWCTk applications. More...
 
struct  MagAOX::app::stateCodes
 Scoping struct for application state codes. More...
 

Detailed Description

A typical XWCApp is the interface to a single piece of hardware, such as a camera or a filter wheel. Through various optional CRTP base classes, many different standard functionalities can be included. The following figure illustrates the facilities provided by a typical app.

Block diagram of a typical XWCApp.

Note that ImageStreamIO (ISIO) is not included by default, but there are several ways to interface with 'image streams' provided in XWCTk. Many different hardware device interfaces are similarly provided.

The following figure illustrates the logic of the XWCApp finite state machine (FSM).

The XWCApp FSM. The blue sequence highlights the normal 'appLogic' loop.

Many XWCApps can be connected across many computers. Inter-process communication can be conducted with INDI or ISIO.

XWCApp network connections.

XWCApps are designed to be part of control loops. In the following diagram a camera at the focal plane of a coronagraph is used as the wavefront sensor. An XWCApp reads out the images and publishes them to shared memory with ISIO. Loop process, which may themselves be XWCApps or, e.g., CACAO processes, perform loop calculations. Finally, the deformable mirror controller sends the resultant command to the hardware device.

XWCApps controlling hardware in a control loop.