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 Sequecer GUI allows to modify the otto server params with a dedicated dialog box. See gui 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 an server sporting the OTTO interface from where 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.