Util
- class tango.Util(*args, **kwargs)
This class is a used to store TANGO device server process data and to provide the user with a set of utilities method.
This class is implemented using the singleton design pattern. Therefore a device server process can have only one instance of this class and its constructor is not public. Example:
util = tango.Util.instance() print(util.get_host_name())
- add_Cpp_TgClass(device_class_name, tango_device_class_name)
Register a new C++ tango class.
If there is a shared library file called MotorClass.so which contains a MotorClass class and a _create_MotorClass_class method. Example:
util.add_Cpp_TgClass('MotorClass', 'Motor')
Note
the parameter ‘device_class_name’ must match the shared library name.
Deprecated since version 7.1.2: Use
tango.Util.add_class()
instead.
- add_TgClass(klass_device_class, klass_device, device_class_name=None)
Register a new python tango class. Example:
util.add_TgClass(MotorClass, Motor) util.add_TgClass(MotorClass, Motor, 'Motor') # equivalent to previous line
Deprecated since version 7.1.2: Use
tango.Util.add_class()
instead.
- add_class(self, class<DeviceClass>, class<DeviceImpl>, language="python") None
Register a new tango class (‘python’ or ‘c++’).
If language is ‘python’ then args must be the same as
tango.Util.add_TgClass()
. Otherwise, args should be the ones intango.Util.add_Cpp_TgClass()
. Example:util.add_class(MotorClass, Motor) util.add_class('CounterClass', 'Counter', language='c++')
New in PyTango 7.1.2
- connect_db(self) None
Connect the process to the TANGO database. If the connection to the database failed, a message is displayed on the screen and the process is aborted
- Parameters:
None
- Return:
None
- create_device(self, klass_name, device_name, alias=None, cb=None) None
Creates a new device of the given class in the database, creates a new DeviceImpl for it and calls init_device (just like it is done for existing devices when the DS starts up)
An optional parameter callback is called AFTER the device is registered in the database and BEFORE the init_device for the newly created device is called
- Throws tango.DevFailed:
the device name exists already or
the given class is not registered for this DS.
the cb is not a callable
New in PyTango 7.1.2
- Parameters:
- klass_name:
(
str
) the device class name- device_name:
(
str
) the device name- alias:
(
str
) optional alias. Default value is None meaning do not create device alias- cb:
(
callable
) a callback that is called AFTER the device is registered in the database and BEFORE the init_device for the newly created device is called. Typically you may want to put device and/or attribute properties in the database here. The callback must receive a parameter: device name (str). Default value is None meaning no callback
- Return:
None
- delete_device(self, klass_name, device_name) None
Deletes an existing device from the database and from this running server
- Throws tango.DevFailed:
the device name doesn’t exist in the database
the device name doesn’t exist in this DS.
New in PyTango 7.1.2
- get_class_list(self) seq<DeviceClass>
Returns a list of objects of inheriting from DeviceClass
- Parameters:
None
- Return:
(
seq
) a list of objects of inheriting from DeviceClass
- get_database(self) Database
Get a reference to the TANGO database object
- Parameters:
None
- Return:
(
Database
) the database
New in PyTango 7.0.0
- get_device_by_name(self, dev_name) DeviceImpl
Get a device reference from its name
- Parameters:
- dev_name:
(
str
) The TANGO device name
- Return:
(
DeviceImpl
) The device reference
New in PyTango 7.0.0
- get_device_ior(self, device) str
Get the CORBA Interoperable Object Reference (IOR) associated with the device
- Parameters:
device (
tango.LatestDeviceImpl
) –tango.LatestDeviceImpl
device object- Returns:
the associated CORBA object reference
- Return type:
- get_device_list(self) sequence<DeviceImpl>
Get device list from name. It is possible to use a wild card (‘*’) in the name parameter (e.g. “*”, “/tango/tangotest/n*”, …)
- Parameters:
None
- Return:
(sequence<
DeviceImpl
>) the list of device objects
New in PyTango 7.0.0
- get_device_list_by_class(self, class_name) sequence<DeviceImpl>
Get the list of device references for a given TANGO class. Return the list of references for all devices served by one implementation of the TANGO device pattern implemented in the process.
- Parameters:
- class_name:
(
str
) The TANGO device class name
- Return:
(sequence<
DeviceImpl
>) The device reference list
New in PyTango 7.0.0
- get_ds_exec_name(self) str
Get a COPY of the device server executable name.
- Parameters:
None
- Return:
(
str
) a COPY of the device server executable name.
New in PyTango 3.0.4
- get_ds_inst_name(self) str
Get a COPY of the device server instance name.
- Parameters:
None
- Return:
(
str
) a COPY of the device server instance name.
New in PyTango 3.0.4
- get_ds_name(self) str
Get the device server name. The device server name is the <device server executable name>/<the device server instance name>
- Parameters:
None
- Return:
(
str
) device server name
New in PyTango 3.0.4
- get_dserver_device(self) DServer
Get a reference to the dserver device attached to the device server process
- Parameters:
None
- Return:
(
DServer
) A reference to the dserver device
New in PyTango 7.0.0
- get_dserver_ior(self, device_server) str
Get the CORBA Interoperable Object Reference (IOR) associated with the device server
- Parameters:
device_server (
DServer
) –DServer
device object- Returns:
the associated CORBA object reference
- Return type:
- get_host_name(self) str
Get the host name where the device server process is running.
- Parameters:
None
- Return:
(
str
) the host name where the device server process is running
New in PyTango 3.0.4
- get_pid(self) TangoSys_Pid
Get the device server process identifier.
- Parameters:
None
- Return:
(
int
) the device server process identifier
- get_pid_str(self) str
Get the device server process identifier as a string.
- Parameters:
None
- Return:
(
str
) the device server process identifier as a string
New in PyTango 3.0.4
- get_polling_threads_pool_size(self) int
Get the polling threads pool size.
- Parameters:
None
- Return:
(
int
) the maximun number of threads in the polling threads pool
- get_serial_model(self) SerialModel
Get the serialization model.
- Parameters:
None
- Return:
(
SerialModel
) the serialization model
- get_server_version(self) str
Get the device server version.
- Parameters:
None
- Return:
(
str
) the device server version.
- get_sub_dev_diag(self) SubDevDiag
Get the internal sub device manager
- Parameters:
None
- Return:
(
SubDevDiag
) the sub device manager
New in PyTango 7.0.0
- get_tango_lib_release(self) int
Get the TANGO library version number.
- Parameters:
None
- Return:
(
int
) The Tango library release number coded in 3 digits (for instance 550,551,552,600,….)
- get_trace_level(self) int
Get the process trace level.
- Parameters:
None
- Return:
(
int
) the process trace level.
- get_version_str(self) str
Get the IDL TANGO version.
- Parameters:
None
- Return:
(
str
) the IDL TANGO version.
New in PyTango 3.0.4
- init(*args) Util
Static method that creates and gets the singleton object reference. This method returns a reference to the object of the Util class. If the class singleton object has not been created, it will be instantiated
- instance(exit=True) Util
Static method that gets the singleton object reference. If the class has not been initialised with it’s init method, this method prints a message and aborts the device server process.
- is_auto_alarm_on_change_event(self) bool
Returns True if alarm events are automatically pushed to subscribers when a device pushes a change event, and the attribute quality has changed to or from alarm.
Can be configured in two ways:
via the
CtrlSystem
free Tango database propertyAutoAlarmOnChangeEvent
(set to true or false),by calling the
tango.Util.set_auto_alarm_on_change_event()
.
- Parameters:
None
- Return:
bool
New in version 10.0.0.
- is_device_restarting(self, (str)dev_name) bool
Check if the device is actually restarted by the device server process admin device with its DevRestart command
- Parameters:
dev_name : (str) device name
- Return:
(
bool
) True if the device is restarting.
New in PyTango 8.0.0
- is_svr_shutting_down(self) bool
Check if the device server process is in its shutting down sequence
- Parameters:
None
- Return:
(
bool
) True if the server is in its shutting down phase.
New in PyTango 8.0.0
- is_svr_starting(self) bool
Check if the device server process is in its starting phase
- Parameters:
None
- Return:
(
bool
) True if the server is in its starting phase
New in PyTango 8.0.0
- orb_run(self) None
Run the CORBA event loop directly (EXPERT FEATURE!)
This method runs the CORBA event loop. It may be useful if the Util.server_run method needs to be bypassed. Normally, that method runs the CORBA event loop.
- Parameters:
None
- Return:
None
- reset_filedatabase(self) None
Reread the file database
- Parameters:
None
- Return:
None
New in PyTango 7.0.0
- server_cleanup(self) None
Release device server resources (EXPERT FEATURE!)
This method cleans up the Tango device server and relinquishes all computer resources before the process exits. It is unnecessary to call this, unless Util.server_run has been bypassed.
- server_init(self, with_window=False) None
Initialize all the device server pattern(s) embedded in a device server process.
- server_run(self) None
Run the CORBA event loop. This method runs the CORBA event loop. For UNIX or Linux operating system, this method does not return. For Windows in a non-console mode, this method start a thread which enter the CORBA event loop.
- Parameters:
None
- Return:
None
- server_set_event_loop(self, event_loop) None
This method registers an event loop function in a Tango server. This function will be called by the process main thread in an infinite loop The process will not use the classical ORB blocking event loop. It is the user responsability to code this function in a way that it implements some kind of blocking in order not to load the computer CPU. The following piece of code is an example of how you can use this feature:
_LOOP_NB = 1 def looping(): global _LOOP_NB print "looping", _LOOP_NB time.sleep(0.1) _LOOP_NB += 1 return _LOOP_NB > 100 def main(): util = tango.Util(sys.argv) # ... U = tango.Util.instance() U.server_set_event_loop(looping) U.server_init() U.server_run()
- Parameters:
None
- Return:
None
New in PyTango 8.1.0
- set_auto_alarm_on_change_event(self, bool) None
Toggles if alarm events are automatically pushed - see
tango.Util.is_auto_alarm_on_change_event()
.This method takes priority over the value of the free property in the Tango database.
- Parameters:
bool
- Return:
None
New in version 10.0.0.
- set_polling_threads_pool_size(self, thread_nb) None
Set the polling threads pool size.
- Parameters:
- thread_nb:
(
int
) the maximun number of threads in the polling threads pool
- Return:
None
New in PyTango 7.0.0
- set_serial_model(self, ser) None
Set the serialization model.
- Parameters:
- ser:
(
SerialModel
) the new serialization model. The serialization model must be one of BY_DEVICE, BY_CLASS, BY_PROCESS or NO_SYNC
- Return:
None
- set_server_version(self, vers) None
Set the device server version.
- Parameters:
- vers:
(
str
) the device server version
- Return:
None
- set_trace_level(self, level) None
Set the process trace level.
- Parameters:
- level:
(
int
) the new process level
- Return:
None
- set_use_db(self) None
Set the database use Tango::Util::_UseDb flag. Implemented for device server started without database usage.
Use with extreme care!
- trigger_attr_polling(self, dev, name) None
Trigger polling for polled attribute. This method send the order to the polling thread to poll one object registered with an update period defined as “externally triggerred”
- Parameters:
- dev:
(
DeviceImpl
) the TANGO device- name:
(
str
) the attribute name which must be polled
- Return:
None