
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... | |
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.
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).
Many XWCApps can be connected across many computers. Inter-process communication can be conducted with INDI or ISIO.
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.