Components of the NICOS systemΒΆ

NICOS is a control system with several components. They come in the form of executables located in the bin subdirectory of the NICOS source. These components are:

Shells

These components allow the user – in some form or other – to interact with the NICOS system and execute commands.

nicos-console
This is the most basic NICOS shell. It presents to the user a slightly enhanced builtin Python shell, where commands can be executed.
nicos-ipython
This is a version of nicos-console that uses the IPython shell instead of the builtin Python shell.
nicos-web
This is a web-frontend version of the NICOS console. It implements a simple web server that presents a console-like user interface via the web browser.
nicos-gui
This is the GUI client part of the server-client execution shell. It connects to a nicos-daemon instance (see below) that controls the instrument. The GUI uses Qt for the basic functionality, and Qwt for the data plotting and analysis windows.

Other clients

These programs are clients that don’t provide shell functionality.

nicos-monitor
This program implements a graphical status monitor that displays current values of the instrument status from the NICOS cache.

Daemons

These programs provide services and are designed to run as daemons once per instrument.

nicos-cache
The NICOS cache collects all values and parameters read from NICOS devices, so that individual components do not need to access the hardware too often. It also serves as an archival system for the instrument status. For situation where excessive caching is not required, NICOS can also run without the cache component.
nicos-daemon
This is the server part of the server-client execution shell. It can be controlled via a TCP connection using a custom protocol designed for this purpose, with the nicos-gui component. Multiple GUI clients can connect to one daemon.
nicos-poller
The poller periodically queries volatile information such as current sensor readings from all devices in the instrument setup, and pushes updates to the NICOS cache.
nicos-elog
This daemon provides the “electronic logbook”. It collects information about special events such as “new sample” or “scan finished”, and writes them to disk in an HTML file, which can serve as an electronic logbook of the experiment that is easier to read than a mere plain-text logfile.

Previous topic

Installing NICOS

Next topic

Configuring NICOS: Setups