Miscellaneous

Contents

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:
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.