Interface to Observation Handling SW
OTTO is an specification of the API used to fetch and execute OBs. It implements a REST interface to the Observation Handling SW.
OTTO services allows the Sequencer to:
loading a visitor execution sequence (VES) into the UI.
fetching an OB, aka “the next unit of execution”.
reporting OB events Initiated, Started, Executed.
Configuration
In order to connect to OTTO server one needs its URL, username and password. This info is specified in the Sequencer GUI configuration file as:
otto:
url: http://127.0.0.1:5000/
insid: FORS2
mode: VM
user: pippo
password: 123
The Sequencer GUI allows to modify the otto server params with a dedicated dialog box. See Otto popup menu. for details on OTTO and its GUI options and actions.
Simulation
TINO is the OTTO simulator. The recommended use is to start it on a terminal session. One can invoke it from seqtool. It starts a server with the OTTO interface from which OBs can be fetched. The OBs are served from a directory that contains them and it is a required argument of the tino subcommand. Tino’s server port can also be specified from the command line.
TINO supports the following options:
$ seqtool tino --help
Usage: seqtool tino [OPTIONS] PATH
Friend of OTTO
Options:
--port INTEGER Tino server port
--help Show this message and exit.
Usage
Upon starting TINO reports the addres it is serving as:
$ seqtool tino ./OBs
Loading OB files:
* Serving Flask app "seq.otto.ottoSim" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Once TINO is running point the Sequencer GUI to the address TINO reported (normally http://127.0.0.1:5000/) see gui and OBs can be fetched from the server using the OTTO menu and ‘Fetch OB’ action.
Note
Regardless of the contents of the OB directory, TINO will only serve OBs that match the instrument configured.
Instrument package
An instrument package (IP) bundles instrument specific information. It will contain a set of template signatures, a set of observing constraints, a check list & questionnaire, external verification modules, execution time reporting modules and any other instrument-specific information. It is possible to fetch information from the template signatures IP and to integrate it in the ob for validation.
The CFGPATH shall point to a folder containing a directory named IP. IP will contain a directory named according to the instrument defined in the configuration. In the instrument directory, there will be a directory named ip that will contain two folders, app and templates. The app folder shall contain a file name library.cfg where a map is defined that associates a python module to each template. The signature of each of this template will be available in the templates folder.