Introduction¶
The System Supervisor (SysSup) is one of the top level supervision components in the control software architecture, aimed to provide state control and monitoring capabilities for all instrument subsystems. The System Supervisor shall facilitate a quick assessment of the overall health of the ICS. It is assumed that the SysSup will write the estimated status of the system into the OLDB so that GUIs can read and display it for the users.
Scope¶
This document is the user manual for the ELT ICS System Supervisor. The intended audience are ELT users, consortia developers or software quality assurance engineers. This release is to be used by the Consortia developers in trying out the control of instrument hardware functions using the provided libraries and applications, as well as getting acquainted with the design choices and their implementations.
Acronyms¶
DB |
Database |
CCS |
Central Control System |
ELT |
Extremely Large Telescopen |
OCF |
Observation Coordination Framework |
GUI |
Graphical User Interface |
ICS |
Instrument Control System |
RAD |
Rapid Application Development |
SCXML |
State Chart XML |
Main Components¶
The present version of the SysSup covers the following main components:
The Supervisor Server implementation that can control and monitor a configurable number of subsystems from a standard ELT WS.
The Subsystem Simulator A dummy server implementing the standard interface of a subsystem.
A Supervisor CLI that simplifies the interface with with Supervisor for engineering purposes.
Top Directory Structure¶
The first level of the sup
directory contains the following:
<root> # Supervisor component root
├── subsim # directory containing the modules for the subsystem simulator
├── syssup # directory containing the modules for the supervisor
├── doc # directory containing the sphinx user manual
├── test # directory containing the integration tests
└── wscript # WAF build script
System Supervisor (syssup)¶
The server implementation is based on the ICS application framework (rad). Following the ELT and ICS development standards, the client and server are implemented in C++.
Directory Structure¶
In the present version, the System Supervisor contains:
<root> # syssup root directory
├── client # C++ client
├── common # Common C++ library for syssup server
├── supif # Syssup interface module
├── clib # Python client library
├── server # Syssup server module
├── cli # Syssup Command Line Interface (shell)
└── wscript
Where:
client
is a C++ client application that can be used to send commands to the server from the command line.common
is a library implementing core server classes like actions and activities.supif
is the CII XML interface module with the payload definition for commands and topics.clib
is a python library that simplifies the interaction with the server from Python scripts.server
is the server application (supSupervisor). This is a reference implementation that can be configured to control instrument subsystems.cli
is a command line interface (CLI) that simplifies the interaction with the Supervisor. It uses the supclib.
Subsystem Simulators (subsim)¶
The Supervisor includes a Subsystem Simulator with the purpose of allowing the testing of the Supervisor functionality. The Subsystem Simulator is a dummy process implementing the standard interface and allowing to configure the response of the standard requests. Users can define the time taking to process a particular request and the type of the reply, e.g. success or with a given error.
Directory Structure¶
In the present version, the Subsystem Simulator contains:
<root> # subsim root directory
├── client # C++ client
├── common # Common C++ library for subsim server
├── subsimf # Subsim interface module
├── clib # Python client library
├── server # Subsim server module
├── cli # Subsim Command Line Interface (shell)
└── wscript
Where:
client
is a C++ client application that can be used to send commands to the server from the command line.common
is a library implementing core server classes like actions and activities.subsimif
is the CII XML interface module with the payload definition for commands and topics.clib
is a python library that simplifies the interaction with the server from Python scripts.server
is the server application (supSubSimulator).cli
is a command line interface (CLI) that simplifies the interaction with the Simulator. It uses the subsimclib.