Tango Controls
latest
Welcome to Tango Controls documentation!
How this documentation is organized
Indices and tables
Authors
Acknowledgements
Overview
Introduction
Overview of Tango Controls
What is Tango Controls
Tango Technologies
Tango Community
Simplified Tango Device Server Model
Primary Presentation
Elements
Attributes
Relations
Ecosystem
History
Installation
Overview
What is Tango Controls
Tango Host Role
Tango development Role
Tango applications Role
Tango device servers Role
Every roles
Single computer
Multiple computers
Multiple control systems
No database
Source Code
Long Term Support Versions
Linux
Debian + Ubuntu
Non-interactive installation
CentOS
Installation
Arch
Video
Testing
Windows
Tango package installation
Tango Host role
Running
Device Servers
What’s next
Typical issues
Raspberry Pi
Installation with database
Installation without database
Amazon Cloud
TangoBox 9.3 AMI
SSH access
Remote Desktop
Previous version
Virtual Machine
TangoBox 10.3
Previous versions
TangoBox 9.3
Minimum Requirements
TangoBox 9.3 on the Amazon cloud
TangoBox 9.2
Elder versions
PyTango and Taurus on Windows
Binary packages
Patches
omniORB patches
Version 9.3.5 source patches
Version 9.3.4 source patches
Version 9.2.2 source patches
Version 9.1.0 source patches
Version 8.1.2 source patches
Version 8.0.5 source patches
Getting Started
First steps with Tango Controls
End-user applications guide
Jive
ATKPanel
LogViewer
How to develop for Tango Controls
Getting started with JTango (Java implementation of Tango-Controls)
Developing your first Java TANGO client
Developing your first Java TANGO device class
Getting started with cppTango (C++ implementation of Tango-Controls)
Writing your first C++ TANGO client
TANGO C++ Quick start
Your first C++ TANGO device class
Getting started with PyTango (Python implementation of Tango-Controls)
Developing Python TANGO device class
Administration applications guide
Astor
Jive
LogViewer
Tango Database
Installation
Developer’s Guide
Overview
C++ and Python
Java
General guidelines
Tango object naming (device, attribute and property)
Device name
Full object name
Device and attribute name alias
Reserved words and characters, limitations
10 things you should know about CORBA
Tango Client
Writing a TANGO client using TANGO C++ APIs
Introduction
Getting Started
Basic Philosophy
Data types
Request model
Events
Group
Reading/Writing device pipe
Device locking
Reconnection and exception
Thread safety
Compiling and linking a Tango client
TangoATK Programmer’s Guide
Introduction
The key concepts of TangoATK
The real getting started
The key objects of TangoATK
PyTango - a Python binding to Tango
Device Servers
Introduction to device server
TANGO Device Server Guidelines
Guidelines
Tango Concepts
Tango Device Design
Tango device implementation
Appendices
The TANGO device server model
Introduction to CORBA
The model
The device
The server
The Tango Logging Service
The database
The controlled access
The Application Programmers Interfaces
Writing a TANGO device server
The device server framework
Exchanging data between client and server
The Tango Logging Service
Writing a device server process
Device server under Windows
Compiling, linking and executing a TANGO device server process
Advanced programming techniques
Attribute alarms
The level alarms
The Read Different than Set (RDS) alarm
Enumerated attribute
Usage in a Tango class
Usage in a Tango client
Memorized attribute
Forwarded attribute
Definition
Coding
Device polling
Introduction
Configuring the polling system
Reading data from the polling buffer
Retrieving command/attribute result history
Externally triggered polling
Filling polling buffer
Setting and tuning the polling in a Tango class
Generating events in a device server
Tango Device in Java
PyTango - a Python binding to Tango
Debugging and Testing
Using Tango docker containers
Tango docker containers
Advanced
Threading
Device server process
Client process
Transferring images
Device server with user defined event loop
Tango Device Server Model
Primary Presentation
Elements
Attributes
Relations
Rationale
Tango REST API
Tango REST API specification
Tango REST API implementations
Deployment
Further steps
References
The TANGO IDL file : Module Tango
Aliases
Enums
Structs
Unions
Exceptions
Interface Tango::Device
Interface Tango::Device_2
Interface Tango::Device_3
Interface Tango::Device_4
Interface Tango::Device_5
Reference part
Device parameter
Device attribute
Device pipe
Device class parameter
The device black box
Automatically added commands
DServer class device commands
DServer class device properties
Tango log consumer
Control system specific
C++ specific
Device server process option and environment variables
Known issues
Tango 9
Tango 8
Tango Core C++ Classes Reference Documentation
Contributing
How to work with Tango Controls documentation
About this documentation
Updating the documentation
Sources structure
Configuration
How to contribute to Tango Controls C++ library (cppTango)
Workflow
reStructuredText and Sphinx
Releasing a new version
Tools and Extensions
Built-in tools
Astor (TANGO Manager)
Introduction to Astor
Astor Main Window
Host Status Window
Add a new controlled host
Start a new server with Astor
New Server Wizard
Multi Servers Start/Stop
Tree Branch Management
Astor Configuration
Event Manager
Polling Management
Server Statistics
Reset statistics:
Server TANGO versions
Tango Access Control (TAC) Configuration
Features overview
ICALEPCS 2011 paper
Jive
Contents
ATKPanel
ATKPanel
Overview
Device testing
Trends
Error History
Diagnostics
Preferences
Pogo (Class Generator)
Introduction
Starting with Pogo
Generated files
Inheritance Management
Preferences
Dynamic Attributes
Multiple C++ Classes Manager
Tango Server Packaging
Pogo-6 Compatibility
Synoptic and JDraw
Test the synoptic : “Tango Synoptic view”
Jdraw editor
Include the Synoptic in an ATK application
Predefined run time behavior
Tango Application Toolkit “ATK”
Tango ATK Tutorial
ATK Java documentation
LogViewer
LogViewer
Overview
Adding devices
Actions menu
Loading logs from files
GUI building
Taurus (Python GUI library)
QTango
Web tools
Canone
Introduction
Requirements
Download
Panels
Panel Configuration
Widgets
Widget Configuration
Users
User Login
Permissions
Administration
Communications
A side-effect: SOAP
The TODO list
FAQ
Waltz
Archiving
Overview
HDB
Mambo User Manual
HDB++
Target
Primary Presentation
Elements
Source code
Documentation for building and installing
Rationale
Presentations and papers
SNAP
SNAPshot (Archiving) installation and configuration
Bensikin User Manual
Bindings
Overview
C Language
Matlab & Octave
LabVIEW
Igor Pro
Panorama
Tango REST API
Tango REST API specification
Tango REST API implementations
Deployment
Further steps
References
Other tools
PANIC Alarm System
Administration
Overview
Deployment
Starting a Tango control system
Without database
With database
With database and event
With file used as database
With file used as database and event
With the controlled access
The Starter device
Introduction
Installation
Configuration
Usage
Autostarting Starter
References
Running a device server without SQL database
Device server using file as database
Device server without database
Multiple database servers within a Tango control system
The property file syntax
Property file usage
Property file syntax
High Availability
Tactics to improve the availability
Tango Controls versions in use
Services
Event system
Using multicast protocol to transfer events
Events in Tango releases lower than 8
The Tango controlled access system
User rights definition
Running a Tango control system with the controlled access
HDB++ - an archiving/historian service
HDB++ Design and implementation
Event Subscriber interface
Configuration Manager interface
Legacy HDB tables structure
schema SQL source (TimescaleDb)
schema SQL source (MySQL)
schema CQL source (Cassandra)
Maintenance
Tango Admin utility
Using tango_admin
Tutorials and How-Tos
Tutorials
Documentation, how to contribute
Prerequisites
Sphinx installation
Get documentation sources
Updating documentation
Committing changes
Pushing (to the GitHub repository)
Pull request (asking for merge)
Continuing the contribution
Waltz (ex. TangoWebapp) installation tutorial (Windows)
Scada introduction with TANGO examples
Snapshots from TANGO labs at the ESRF
TANGO as CS course in Uni
Write a TANGO device class for an Arduino temperature sensor
General TANGO training for C++
General TANGO training for Python
HOW-TOs
How to cross compile omniORB
How to create inheritance link between Tango classes (C++)
The example case
The HighLevelClass.h file
The HighLevelClass.cpp file
The HighLevel.h file
The HighLevel.cpp file
Defining the class in the Tango control system
Running your class
Conclusion
How to deal with string Tango attribute (C++)
Scalar attribute - static allocation
Scalar attribute - dynamic allocation
Spectrum / Image attribute - static allocation
Spectrum / Image attribute - dynamic allocation
Conclusion
How to reconnect Database at device server startup time
How to distinguish clients on the server side
Problem overview
Detailed cases
Solution overview
Java:
CPP:
Python:
How to add dynamic attributes to a device class
Creating new attributes at Startup
Generating your class with Pogo
Implementing the Dynamic Attributes
Running the server
Conclusion
How to extract read and set values from a scalar attribute
How to Fandango
fun4tango, functional programming for Tango
Downloading
Features
Main Classes
Where it us used
Requirements
Recipes
How to write your first Device Class
Start
Pogo
Generator
Fill in your Class
Generate
Compile And Run
How to import multiple device classes to the Catalogue
Requirements
How-to import multiple classes
How the script works
Integrate Java Tango servers with Astor
Problem overview
Detailed cases
Solution overview
Tango with systemd integration
How to PyTango
Before anything else
Installation notes
Using the DeviceProxy object
Device Server Internal Objects
Using Database Object
Useful constants and enums
Using Tango Groups
About Exceptions
Passing Arguments to Device command_inout
Using asynchronous commands
Setting Attribute Config
Porting device servers to PyTango
PyTangoArchiving Recipes
Installing PyTangoArchiving:
Accessing MySQL:
Download
Submodules
General usage
Using the Python API
Using CSV files
How to run a device server with an active Windows firewall
How to run device servers on Windows XP with IPv6
How to start a device server
How to start a device server
Starting device servers with Jive
Starting device servers with Astor
Other options
How to try Tango Controls
Installation notes on Linux base distribution OS
Running the Tango System
Installation on CentOS
Play with Tango Controls
Using Tango servers without DB for unit testing
Problem overview
Detailed cases
Solution overview
Java:
CPP:
Python:
How to tune polling by code in a TANGO class
In C++
In Python
In Java
How to use vectors to set attributes
Reference
Map Key
Acknowledgements
Making Modifications
Glossary
Bibliography
Tango Controls
Search
Please activate JavaScript to enable the search functionality.