GlossaryΒΆ

cache
The NICOS cache is a service that should run once for every instrument. It provides caching of values and parameters from NICOS devices, access locking and history archival. Every NICOS session can connect to this cache, and is automatically synchronized with other sessions via this cache connection.
cache lock
For devices that need to synchronize access to hardware between multiple processes, the cache provides a locking mechanism. It is used like a Python lock using the methods Device._cachelock_acquire() and Device._cachelock_release().
execution mode

A NICOS session can be in one of four execution modes:

  • master – all commands are allowed. Only one master session can be active at the same time.
  • slave – only commands that don’t change the instrument state are allowed, e.g. reading positions and parameters. There can be several slave sessions active at the same time.
  • maintenance – all commands are allowed, and this mode can be activated even if there is another session in master mode. This is strictly meant for maintenance purposes.
  • simulation – all commands are allowed, but the session does not talk to the actual hardware. All commands are simulated as far as possible.

The cache tracks the current master session and only allows one such session at each time.

The current execution mode is available as the _mode attribute on every device instance.

fix
Using the fix() user command, a device is locked for further “move” commands. release() releases the fix.
session
Each instance of a program that creates NICOS objects (and possibly allows the user to execute commands on them) is called a session.
session object
A singleton instance of a subclass of nicos.sessions.Session that collects all important information from a session.
setup

A NICOS setup is a collection of configuration data (mostly configuration of devices) that represents a part of an instrument configuration. Every NICOS session has one or more setups loaded. Setups can depend on other setups, so that different instrument configurations can share common devices easily.

Setups are described in detail here: Configuring NICOS: Setups.

user command
A Python function that is meant to be executed by the user. It is created using the usercommand() decorator, and must be placed in a module that is mentioned by the modules entry in a setup.

Previous topic

Changelog for NICOS 2