Administration
Bindings
Control System Development
Archiving
Astor's first goal is to know at a quick glance, if everything is OK in a control system,
and otherwise to be able to diagnose a problem and solve it.
The second goal is to configure the control system and its components.
The third goal is to have long term analysis on components (logs, statistics, usage,....).
It is relying on the starter devices.
JDraw is an editor to draw your synoptic(s) to control Tango devices.
To achieve complete device independence, it is necessary however to supplement
device classes with a possibility for configuring device dependencies at runtime.
The utility which does this in the TDSOM is the property database. Properties
are identified by an ascii string and the device name. TANGO attributes are also
configured using properties. This database is also used to store device network
addresses (CORBA IOR's), list of classes hosted by a device server process and
list of devices for each class in a device server process. The database ensure
the uniqueness of device name and of alias. TANGO uses MySQL as its database.
A high level object which contains the link to the database. It has methods for
all database commands e.g. get_device_property(), device_list(), info(), etc.
TANGO devices and database are implemented using the TANGO device server model.
To access them the user has the CORBA interface e.g. command_inout(),
write_attributes() etc. defined by the idl file. These methods are very
low-level and assume a good working knowledge of CORBA. In order to simplify
this access, high-level api in C++, Python and Java have been implemented which
hides all CORBA aspects of TANGO.
A device is an abstract concept defined by the TDSOM. In reality, it can be a
piece of hardware (an interlock bit) a collection of hardware (a screen attached
to a stepper motor) a logical device (a taper) or a combination of all these (an
accelerator). Each device has a unique name in the control system and eventually
one alias. Within Tango, a four field name space has been adopted consisting of
[//FACILITY/]DOMAIN/CLASS/MEMBER
The TANGO Logging Service (TLS) gives the user the control over how much
information is actually generated and to where it goes. In practice, the
TLS allows to select both the logging level and targets of any device within
the control system.
A Tango Log Consumer device is nothing but a tango device supporting the
following tango command: void log (Tango::DevVarStringArray details)
One implementation of a log consumer associated to a graphical user interface is
available within Tango. It is a standalone java application called LogViewer
based on the publicly available chainsaw application from the log4j package.
JIVE is a standalone JAVA application designed to browse and edit the TANGO database.
Jive also offers advanced search/selection features.
In order to simplify device server process administration, a device of the
DServer class is automatically added to each device server process. Thus, every
device server process supports the same set of administration commands. The
implementation of this DServer class follows the device pattern and therefore,
its device behaves like any other devices. The device name is:
dserver/device server executable name/device server instance name
Pogo helps you creating/updating Tango device class in any of the three
supported languages (C++, Python or Java)
Clients access the database via TANGO commands requested on the database device.
Tango Application Toolkit also called "ATK" is a client framework for building
applications based on Java Swing in a Tango control system.
ATKPanel is a generic ATK-based application which displays panels allowing you
to execute any device commands or to read/write any device attributes.
Communication Layer (CORBA / ZMQ)
It is a generic class to view and to animate the synoptics made with JDraw.
Vacca is a synoptic-oriented Taurus gui. It is highly customizable, using python
files to setup the devices/attributes/icons/commands to be displayed in several
grid/tree/profile/synoptic widgets.
Canone will allow you to create your own WEB panels to interface Tango device(s)
(PHP)
The SNAP archiving is managed thanks to the GUI named Bensikin.
The HDB and TDB archiving is managed thanks to the GUI named Mambo.
Snapshots – SNAP: Persistent storage allowed taking a picture of a set of
attributes values.
Temporary DataBase - TDB : Volatile storage of attributes values which are
scanned at a minimal period of 100 milliseconds.
The data are kept 3 days in the database.
Historical DataBase - HDB : Persistent storage of attributes values which are
scanned at a minimal period of 10 seconds.
TaurusGui
Taurus
HDF5
ICAT
Nexus
The HDB++ is a novel TANGO device server for Historical Data Base (HDB) archiving.
It’s written in C++ and is fully event-driven
DeviceTree is a generic application that you configure to display attributes
value or to execute commands on any set of devices.
It is an online design tool that allows easy development of QTango based
graphical user interfaces, made up of Qt4 and QTango widgets.
HdbArchiver: Records the attributes values in the HDB database.
ArchivingManager: Allows to start / stop the attributes archiving without GUI
(use load-balancing). The same device is used to manage the HDB and TDB archivers.
HdbExtractor: Provides database extraction methods based on various criteria
HdbArchivingWatcher: Controls the global archiving status and issue periodically
refreshed reports
TdbArchiver: Records the attributes values in the TDB database
ArchivingManager: Allows to start / stop the attributes archiving without GUI
(use load-balancing). The same device is used to manage the HDB and TDB archivers.
TdbExtractor: Provides database extraction methods based on various criteria
TdbArchivingWatcher: Controls the global archiving status and issue periodically
refreshed reports
SnapArchiver: Records the attributes values picture in the SNAP database.
SnapManager: Manages the snapshots configuration and send the request to the archiver
SnapExtractor: Provides database extraction methods based on various criteria
The GUI named SGAD generates scripts to create MySql databases.
Fandango (previously called PyTango_utils) is a Python module created to simplify the configuration of big control systems;
implementing the behavior of Jive (configuration) and/or Astor (deployment) tools in methods that could be called from scripts using regexp and wildcards.
It has been later extended with methods commonly used in some of our python API's (archiving, CCDB, alarms, vacca) or generic devices (composers, simulators, facades).
QTango is a framework. It consists of classes and widgets that interact with the
Tango control system, while providing an easy API to the programmer and full
integration with the Qt4 designer.

E-Giga displays the data stored by the Tango archiving system within your
favorite WEB browser.
(PHP, Javascript)
LabView Device
LabView API
LabView Connector
LabView GUI
Python API for the Tango Archiving system
This package allows to:
Integrate Hdb and Snap archiving with other python/PyTango tools.
Start/Stop Archiving devices in the appropiated order.
Increase the capabilities of configuration and diagnostic.
Import/Export .csv and .xml files between the archiving and the database.
NOTE: It access directly the MySql database. http://www.tango-controls.org/Events/meetings/May-2010/ArchivingWorkshopConclusion.pdf
configuration management tool for an ELI-ALPS equipment (equipment, beamdelivery, etc.).
The CSV files hold device names, hierarchy and attribute property values; which are
used for automatically registering devices in the Tango Database.
The Cabling and Controls DataBase (CCDB) is part of the ALBA control system. It has the following:
•Equipments, connectors and cable types
•Instances of equipments and cables (naming conventions)
•Documentation files
•Installation logs
•Source for automatic code generation and creation of
Tango devices
SnapArchiver: Records the attributes values picture in the SNAP database.
SnapManager: Manages the snapshots configuration and send the request to the archiver
SnapExtractor: Provides database extraction methods based on various criteria
README
Multiple languages / general component
C++ component
Java Component
Python Component
N/A (not processed / missing information / not available)
Other (PHP, Ruby, etc.) component
Workflow engines / schema
LIMA
This device server is able to control Tango components (database, device
servers, clients...). It is able to start or stop and to report the status
of these components.