This document describes the core concept of Tango Controls which is Device.



A Device is an object within the Tango Controls System. The Device SHALL be accessible locally and remotely through its interface.

Before accessign the Device it SHALL be created by/within a Device Server

The Device has device_name. device_name is a character string which SHALL uniquely identify the device within the system Tango Controls System.


Extend the above (device cration, life, deletion), formal specification of device name as domain/subdomain/device, …

Device SHALL provide way to read its:

  • device_name
  • description
  • device_info

Device SHALL implement an interface to interact with its:

  • Attributes as device_attributes_interface
  • Pipes as device_pipes_interface
  • Commands as device_commands_interface
  • Properties as device_properties_interface
  • Polling system as device_polling_interface
  • Events system as device_events_interface
; device object description
device = device_name [device_description] device_class device_state device_status admin_device

         device_ping_interface device_blackbox_interface device_info_interface

         device_attributes_interface device_commands_interface device_pipes_interface device_properties_interface

         device_polling_interface device_events_interface

device_attributes_interface SHALL allow for the following operations:

  • query_device_attributes_list

    query_device_attributes_list = C:get_device_attributes_list (S:device_attributes_list | S: tango_exception)

An attribute is a concept related to process variables. It provides real-time data value of specified datatype

attribute = attribute_config attribute_value attribute_dim