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.