API util

Contents

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 apiutil = tango.ApiUtil.instance()

New in PyTango 7.1.3

static cleanup() None#

cleanup () -> None

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

Returns:

None

New in PyTango 9.3.0

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

get_asynch_cb_sub_model (self) -> cb_sub_model

Get the asynchronous callback sub-model.

Returns:

(cb_sub_model) the active asynchronous callback sub-model

New in PyTango 7.1.3

get_asynch_replies(*args, **kwargs)#

Overloaded function.

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

    get_asynch_replies(self) -> 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.

    return:

    None

    Throws:

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

    New in PyTango 7.1.3

  2. get_asynch_replies(self: tango._tango.ApiUtil, arg0: int) -> None

    get_asynch_replies(self, timeout: int) -> 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.

    param timeout:

    (int) timeout in milliseconds

    return:

    None

    Throws:

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

    New in PyTango 7.1.3

static get_env_var(arg0: str) object#

get_env_var (name) -> str

Return the environment variable for the given name.

Parameters:

name – (str) Environment variable name

Returns:

(str) The value of the environment variable

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

get_ip_from_if (self, interface_name: str) -> str

Get the IP address for the given network interface name.

Parameters:

interface_name – (str) The name of the network interface

Returns:

(str) IP address associated to that interface

get_user_connect_timeout(self: tango._tango.ApiUtil) int#

get_user_connect_timeout (self) -> int

Get the user connect timeout (in milliseconds).

Returns:

(int) The timeout in milliseconds

in_server(self: tango._tango.ApiUtil) bool#

in_server () -> bool

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

Returns:

(bool) True if running in a server, otherwise False

Added in version 10.0.0.

static instance() tango._tango.ApiUtil#

instance () -> ApiUtil

Returns the ApiUtil singleton instance.

Returns:

(ApiUtil) a reference to the ApiUtil singleton object.

New in PyTango 7.1.3

is_notifd_event_consumer_created(self: tango._tango.ApiUtil) bool#

is_notifd_event_consumer_created (self) -> bool

Check if the notifd event consumer was created.

Returns:

(bool) True if created, False otherwise

is_zmq_event_consumer_created(self: tango._tango.ApiUtil) bool#

is_zmq_event_consumer_created (self) -> bool

Check if the ZMQ event consumer was created.

Returns:

(bool) True if created, False otherwise

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

pending_asynch_call (self, req) -> int

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

Parameters:

req – (asyn_req_type) asynchronous request type

Returns:

(int) the number of pending requests for the given type

New in PyTango 7.1.3

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

set_asynch_cb_sub_model (self, model) -> None

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

Parameters:

model – (cb_sub_model) the callback sub-model

Returns:

None

New in PyTango 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 : (StdStringVector) 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 : (StdStringVector) 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 : StdStringVector

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 : (StdStringVector) 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 : (StdStringVector) 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

New in PyTango 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

  • locker_host : (str) the host

  • locker_class : (str) the class

pid_t should be an int, UUID should be a tuple of four numbers.

New in PyTango 7.0.0

class tango.PollDevice#

A structure containing PollDevice information with the following members:

  • dev_name : (str) device name

  • ind_list : (sequence<int>) index list

New in PyTango 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) Attribute read dimensions.

  • w_dimension : (tuple) 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#

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.

Members:

Numpy : Value will be stored in [value, w_value]. If the attribute is an scalar, they will contain a value. If it’s an SPECTRUM or IMAGE it will be exported as a numpy array

ByteArray

Bytes

Tuple : Value will be stored in [value, w_value]. If the attribute is an scalar, they will contain a value. If it’s an SPECTRUM or IMAGE it will be exported as a tuple or tuple of tuples

List : Value will be stored in [value, w_value]. If the attribute is an scalar, they will contain a value. If it’s an SPECTRUM or IMAGE it will be exported as a list or list of lists

String : The data will be stored ‘as is’, the binary data as it comes from TangoC++ in ‘value’

Nothing

property name#
class except_flags#

Members:

isempty_flag

wrongtype_flag

failed_flag

numFlags

property name#
get_date(self: tango._tango.DeviceAttribute) tango._tango.TimeVal#

get_date (self) -> TimeVal

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

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

Parameters:

None

Return:

(TimeVal) The attribute read timestamp.

get_err_stack(self: tango._tango.DeviceAttribute) DevErrorList#

get_err_stack (self) -> sequence<DevError>

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

Parameters:

None

Return:

(sequence<DevError>)

set_w_dim_x(self: tango._tango.DeviceAttribute, arg0: int) None#

set_w_dim_x (self, val) -> None

Sets the write value dim x.

Parameters:
val:

(int) new write dim x

Return:

None

New in PyTango 8.0.0

set_w_dim_y(self: tango._tango.DeviceAttribute, arg0: int) None#

set_w_dim_y (self, val) -> None

Sets the write value dim y.

Parameters:
val:

(int) new write dim y

Return:

None

New in PyTango 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#

Members:

isempty_flag

wrongtype_flag

numFlags

property name#
extract(self: object, extract_as: tango._tango.ExtractAs = <ExtractAs.Numpy: 0>) object#

extract (self) -> any

Get the actual value stored in the DeviceData.

Parameters:

None

Return:

Whatever is stored there, or None.

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

get_type (self) -> CmdArgType

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

Parameters:

None

Return:

The content arg type.

insert(self: tango._tango.DeviceData, data_type: int, value: object) None#

insert (self, data_type, value) -> None

Inserts a value in the DeviceData.

Parameters:
data_type:

value:

(any) The value to insert

Return:

Whatever is stored there, or None.

is_empty(self: tango._tango.DeviceData) bool#

is_empty (self) -> bool

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

Parameters:

None

Return:

True or False depending on whether the DeviceData object contains data 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_err_stack(self: tango._tango.DeviceDataHistory) DevErrorList#
has_failed(self: tango._tango.DeviceDataHistory) bool#

See DeviceData.