Miscellaneous

API util

class tango.ApiUtil

This class allows you to access the tango synchronization model API. It is designed as a singleton. To get a reference to the singleton object you must do:

import tango
api_util = tango.ApiUtil.instance()

Added in version 7.1.3.

static cleanup() None

Destroy the ApiUtil singleton instance. After calling cleanup(), any existing DeviceProxy, AttributeProxy, or Database objects become invalid and must be reconstructed.

Added in version 9.3.0.

enable_event_system_perf_mon(self: tango._tango.ApiUtil, flag: bool) None

Enables/disables event system performance counter for server supplier (if running) and proxy consumer in current process

See also query_event_system()

Parameters:

flag (bool) – new state of system performance counter

Added in version 10.3.0.

Warning

Enabled monitoring has a small performance penalty for the event system.

get_asynch_cb_sub_model(self: tango._tango.ApiUtil) tango._tango.cb_sub_model

Get the asynchronous callback sub-model.

Added in version 7.1.3.

get_asynch_replies(*args, **kwargs)

Overloaded function.

  1. get_asynch_replies(self: tango._tango.ApiUtil) -> None

Fire callback methods for all asynchronous requests (command and attribute) which already have arrived replies. Returns immediately if no replies arrived or there are no asynchronous requests.

Throws:

None, all errors are reported via the callback’s err/errors fields.

Added in version 7.1.3.

  1. get_asynch_replies(self: tango._tango.ApiUtil, timeout: typing.SupportsInt | typing.SupportsIndex) -> None

Fire callback methods for all asynchronous requests (command and attributes) with already arrived replies. Wait up to timeout milliseconds if some replies haven’t arrived yet. If timeout=0, waits until all requests receive a reply.

Parameters:

timeout (int) – timeout in milliseconds

Throws:

AsynReplyNotArrived if some replies did not arrive in time. Other errors are reported via the callback’s err/errors fields.

Added in version 7.1.3.

static get_env_var(name: str) object

Return the environment variable value for the given name.

Parameters:

name (str) – Environment variable name

get_ip_from_if(self: tango._tango.ApiUtil, interface_name: tango._tango.StdStringVector) None

Get the IP address for the given network interface name.

Parameters:

interface_name (str) – The name of the network interface

get_user_connect_timeout(self: tango._tango.ApiUtil) int

Get the user connect timeout (in milliseconds).

in_server(self: tango._tango.ApiUtil) bool

Returns True if the current process is running a Tango device server.

Added in version 10.0.0.

static instance() tango._tango.ApiUtil

Returns the ApiUtil singleton instance.

Added in version 7.1.3.

is_notifd_event_consumer_created(self: tango._tango.ApiUtil) bool

Check if the notifd event consumer was created.

is_zmq_event_consumer_created(self: tango._tango.ApiUtil) bool

Check if the ZMQ event consumer was created.

pending_asynch_call(self: tango._tango.ApiUtil, req: tango._tango.asyn_req_type) int

Return the number of asynchronous pending requests (any device) for the given type. The input parameter is an enumeration with three values: - POLLING - CALL_BACK - ALL_ASYNCH

Parameters:

req (asyn_req_type) – asynchronous request type

Added in version 7.1.3.

query_event_system(self: tango._tango.ApiUtil) str

Returns info about both sides of event system in current process: server supplier (if running) and proxy consumer

This feature is described in the cppTango docs: https://tango-controls.gitlab.io/cppTango/10.1.0/query_event_system.html

See also enable_event_system_perf_mon()

Returns:

Json dump of event system info

Added in version 10.3.0.

set_asynch_cb_sub_model(self: tango._tango.ApiUtil, model: tango._tango.cb_sub_model) None

Set the asynchronous callback sub-model between PULL_CALLBACK or PUSH_CALLBACK.

Parameters:

model (cb_sub_model) – the callback sub-model

Added in version 7.1.3.

Information classes

See also [Event configuration information]

Attribute

class tango.AttributeAlarmInfo

A structure containing available alarm information for an attribute with the following members:

  • min_alarm : (str) low alarm level

  • max_alarm : (str) high alarm level

  • min_warning : (str) low warning level

  • max_warning : (str) high warning level

  • delta_t : (str) time delta

  • delta_val : (str) value delta

  • extensions : (list[str]) extensions (currently not used)

class tango.AttributeDimension

A structure containing x and y attribute data dimensions with the following members:

  • dim_x : (int) x dimension

  • dim_y : (int) y dimension

class tango.AttributeInfo

A structure (inheriting from DeviceAttributeConfig) containing available information for an attribute with the following members:

  • disp_level : (DispLevel) display level (OPERATOR, EXPERT)

Inherited members are:

  • name : (str) attribute name

  • writable : (AttrWriteType) write type (R, W, RW, R with W)

  • data_format : (AttrDataFormat) data format (SCALAR, SPECTRUM, IMAGE)

  • data_type : (int) attribute type (float, string,..)

  • max_dim_x : (int) first dimension of attribute (spectrum or image attributes)

  • max_dim_y : (int) second dimension of attribute(image attribute)

  • description : (int) attribute description

  • label : (str) attribute label (Voltage, time, …)

  • unit : (str) attribute unit (V, ms, …)

  • standard_unit : (str) standard unit

  • display_unit : (str) display unit

  • format : (str) how to display the attribute value (ex: for floats could be ‘%6.2f’)

  • min_value : (str) minimum allowed value

  • max_value : (str) maximum allowed value

  • min_alarm : (str) low alarm level

  • max_alarm : (str) high alarm level

  • writable_attr_name : (str) name of the writable attribute

  • extensions : (list[str]) extensions (currently not used)

class tango.AttributeInfoEx

A structure (inheriting from AttributeInfo) containing available information for an attribute with the following members:

  • alarms : object containing alarm information (see AttributeAlarmInfo).

  • events : object containing event information (see AttributeEventInfo).

  • sys_extensions : list[str]

Inherited members are:

  • name : (str) attribute name

  • writable : (AttrWriteType) write type (R, W, RW, R with W)

  • data_format : (AttrDataFormat) data format (SCALAR, SPECTRUM, IMAGE)

  • data_type : (int) attribute type (float, string,..)

  • max_dim_x : (int) first dimension of attribute (spectrum or image attributes)

  • max_dim_y : (int) second dimension of attribute(image attribute)

  • description : (int) attribute description

  • label : (str) attribute label (Voltage, time, …)

  • unit : (str) attribute unit (V, ms, …)

  • standard_unit : (str) standard unit

  • display_unit : (str) display unit

  • format : (str) how to display the attribute value (ex: for floats could be ‘%6.2f’)

  • min_value : (str) minimum allowed value

  • max_value : (str) maximum allowed value

  • min_alarm : (str) low alarm level

  • max_alarm : (str) high alarm level

  • writable_attr_name : (str) name of the writable attribute

  • extensions : (list[str]) extensions (currently not used)

  • disp_level : (DispLevel) display level (OPERATOR, EXPERT)

see also AttributeInfo

class tango.DeviceAttributeConfig

A base structure containing available information for an attribute with the following members:

  • name : (str) attribute name

  • writable : (AttrWriteType) write type (R, W, RW, R with W)

  • data_format : (AttrDataFormat) data format (SCALAR, SPECTRUM, IMAGE)

  • data_type : (int) attribute type (float, string,..)

  • max_dim_x : (int) first dimension of attribute (spectrum or image attributes)

  • max_dim_y : (int) second dimension of attribute(image attribute)

  • description : (int) attribute description

  • label : (str) attribute label (Voltage, time, …)

  • unit : (str) attribute unit (V, ms, …)

  • standard_unit : (str) standard unit

  • display_unit : (str) display unit

  • format : (str) how to display the attribute value (ex: for floats could be ‘%6.2f’)

  • min_value : (str) minimum allowed value

  • max_value : (str) maximum allowed value

  • min_alarm : (str) low alarm level

  • max_alarm : (str) high alarm level

  • writable_attr_name : (str) name of the writable attribute

  • extensions : (list[str]) extensions (currently not used)

Command

class tango.DevCommandInfo

A device command info with the following members:

  • cmd_name : (str) command name

  • cmd_tag : command as binary value (for TACO)

  • in_type : (CmdArgType) input type

  • out_type : (CmdArgType) output type

  • in_type_desc : (str) description of input type

  • out_type_desc : (str) description of output type

Added in version 7.0.0.

class tango.CommandInfo

A device command info (inheriting from DevCommandInfo) with the following members:

  • disp_level : (DispLevel) command display level

Inherited members are (from DevCommandInfo):

  • cmd_name : (str) command name

  • cmd_tag : (str) command as binary value (for TACO)

  • in_type : (CmdArgType) input type

  • out_type : (CmdArgType) output type

  • in_type_desc : (str) description of input type

  • out_type_desc : (str) description of output type

Other

class tango.DeviceInfo

A structure containing available information for a device with the following members:

  • dev_class : (str) device class

  • server_id : (str) server ID

  • server_host : (str) host name

  • server_version : (str) server version

  • doc_url : (str) document url

  • version_info : (dict[str, str]) version info dict

Changed in version 10.0.0: Added version_info field

class tango.LockerInfo

A structure with information about the locker with the following members:

  • ll : (tango.LockerLanguage) the locker language

  • li : (pid_t / UUID) the locker id: pid_t should be an int, UUID should be a tuple of four numbers.

  • locker_host : (str) the host

  • locker_class : (str) the class

Added in version 7.0.0.

class tango.PollDevice

A structure containing PollDevice information with the following members:

  • dev_name : (str) device name

  • ind_list : (list[int]) index list

Added in version 7.0.0.

Storage classes

Attribute: DeviceAttribute

class tango.DeviceAttribute(da=None)

This is the fundamental type for RECEIVING data from device attributes.

It contains several fields. The most important ones depend on the ExtractAs method used to get the value. Normally they are:

  • value : Normal scalar value or numpy array of values.

  • w_value : The write part of the attribute.

See other ExtractAs for different possibilities. There are some more fields, these really fixed:

  • name : (str)

  • data_format : (AttrDataFormat) Attribute format

  • quality : (AttrQuality)

  • time : (TimeVal)

  • dim_x : (int) attribute dimension x

  • dim_y : (int) attribute dimension y

  • w_dim_x : (int) attribute written dimension x

  • w_dim_y : (int) attribute written dimension y

  • r_dimension : (tuple[int,int]) Attribute read dimensions.

  • w_dimension : (tuple[int,int]) Attribute written dimensions.

  • nb_read : (int) attribute read total length

  • nb_written : (int) attribute written total length

And two methods:

  • get_date

  • get_err_stack

class ExtractAs(*values)

Defines what will go into value field of DeviceAttribute, or what will Attribute.get_write_value() return. Not all the possible values are valid in all the cases

List = 4
Numpy = 0
String = 5
Tuple = 3
class except_flags(*values)
get_date(self: tango._tango.DeviceAttribute) tango._tango.TimeVal

Get the time at which the attribute was read by the server.

Note: It’s the same as reading the “time” attribute.

get_err_stack(self: tango._tango.DeviceAttribute) list[DevError]

Returns the error stack reported by the server when the attribute was read.

set_w_dim_x(self: tango._tango.DeviceAttribute, val: SupportsInt | SupportsIndex) None

Sets the write value dim x.

Parameters:

val (int) – new write dim x

Added in version 8.0.0.

set_w_dim_y(self: tango._tango.DeviceAttribute, val: SupportsInt | SupportsIndex) None

Sets the write value dim y.

Parameters:

val (int) – new write dim y

Added in version 8.0.0.

Command: DeviceData

Device data is the type used internally by Tango to deal with command parameters and return values. You don’t usually need to deal with it, as command_inout will automatically convert the parameters from any other type and the result value to another type.

You can still use them, using command_inout_raw to get the result in a DeviceData.

You also may deal with it when reading command history.

class tango.DeviceData

This is the fundamental type for sending and receiving data from device commands. The values can be inserted and extracted using the insert() and extract() methods.

class except_flags(*values)
extract(self: object, extract_as: tango._tango.ExtractAs = ExtractAs.Numpy) object

Get the actual value stored in the DeviceData.

Return type:

typing.Any

get_type(self: tango._tango.DeviceData) tango._tango.CmdArgType

This method returns the Tango data type of the data inside the DeviceData object

insert(self: tango._tango.DeviceData, data_type: SupportsInt | SupportsIndex, value: object) None

Inserts a value in the DeviceData.

Parameters:
  • data_type (int)

  • value (typing.Any) – The value to insert

is_empty(self: tango._tango.DeviceData) bool

It can be used to test whether the DeviceData object has been initialized or not.

History classes

class tango.DeviceAttributeHistory

Bases: DeviceAttribute

has_failed(self: tango._tango.DeviceAttributeHistory) bool

See DeviceAttribute.

class tango.DeviceDataHistory

Bases: DeviceData

get_date(self: tango._tango.DeviceDataHistory) tango._tango.TimeVal

Get date when the device server polling thread has executed the command

get_err_stack(self: tango._tango.DeviceDataHistory) list[DevError]

Get record error stack recorded by the device server polling thread in case of the command failed when it was invoked

has_failed(self: tango._tango.DeviceDataHistory) bool

Check if the record in the polling buffer was a failure

See DeviceData.