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.
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.
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:
AsynReplyNotArrivedif 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:
- class tango.AttributeDimension#
A structure containing x and y attribute data dimensions with the following members:
- 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 namewritable : (
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 descriptionlabel : (
str) attribute label (Voltage, time, …)unit : (
str) attribute unit (V, ms, …)standard_unit : (
str) standard unitdisplay_unit : (
str) display unitformat : (
str) how to display the attribute value (ex: for floats could be ‘%6.2f’)min_value : (
str) minimum allowed valuemax_value : (
str) maximum allowed valuemin_alarm : (
str) low alarm levelmax_alarm : (
str) high alarm levelwritable_attr_name : (
str) name of the writable attributeextensions : (
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 namewritable : (
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 descriptionlabel : (
str) attribute label (Voltage, time, …)unit : (
str) attribute unit (V, ms, …)standard_unit : (
str) standard unitdisplay_unit : (
str) display unitformat : (
str) how to display the attribute value (ex: for floats could be ‘%6.2f’)min_value : (
str) minimum allowed valuemax_value : (
str) maximum allowed valuemin_alarm : (
str) low alarm levelmax_alarm : (
str) high alarm levelwritable_attr_name : (
str) name of the writable attributeextensions : (
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 namewritable : (
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 descriptionlabel : (
str) attribute label (Voltage, time, …)unit : (
str) attribute unit (V, ms, …)standard_unit : (
str) standard unitdisplay_unit : (
str) display unitformat : (
str) how to display the attribute value (ex: for floats could be ‘%6.2f’)min_value : (
str) minimum allowed valuemax_value : (
str) maximum allowed valuemin_alarm : (
str) low alarm levelmax_alarm : (
str) high alarm levelwritable_attr_name : (
str) name of the writable attributeextensions : (
list[str]) extensions (currently not used)
Command#
- class tango.DevCommandInfo#
A device command info with the following members:
cmd_name : (
str) command namecmd_tag : command as binary value (for TACO)
in_type : (
CmdArgType) input typeout_type : (
CmdArgType) output typein_type_desc : (
str) description of input typeout_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 namecmd_tag : (
str) command as binary value (for TACO)in_type : (
CmdArgType) input typeout_type : (
CmdArgType) output typein_type_desc : (
str) description of input typeout_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 classserver_id : (
str) server IDserver_host : (
str) host nameserver_version : (
str) server versiondoc_url : (
str) document urlversion_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 languageli : (pid_t / UUID) the locker id: pid_t should be an
int, UUID should be atupleof four numbers.locker_host : (
str) the hostlocker_class : (
str) the class
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
ExtractAsfor different possibilities. There are some more fields, these really fixed:name : (
str)data_format : (
AttrDataFormat) Attribute formatquality : (
AttrQuality)time : (
TimeVal)dim_x : (
int) attribute dimension xdim_y : (
int) attribute dimension yw_dim_x : (
int) attribute written dimension xw_dim_y : (
int) attribute written dimension yr_dimension : (
tuple[int,int]) Attribute read dimensions.w_dimension : (
tuple[int,int]) Attribute written dimensions.nb_read : (
int) attribute read total lengthnb_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:
- 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.