# Device

## DeviceImpl

class tango.LatestDeviceImpl(*args)

  Latest implementation of the TANGO device base class (alias for Device_6Impl).

  It inherits from CORBA classes where all the network layer is implemented.

  add_attribute(self, attr, r_meth=None, w_meth=None, is_allo_meth=None) → Attr

    Add a new attribute to the device attribute list.

    Please, note that if you add an attribute to a device at device creation time, this attribute will be added to the device class attribute list. Therefore, all devices belonging to the same class created after this attribute addition will also have this attribute.

    If you pass a reference to unbound method for read, write or is_allowed method (e.g. DeviceClass.read_function or self.__class__.read_function), during execution the corresponding bound method (self.read_function) will be used.

    Note: Calling the synchronous add_attribute method from a coroutine function in an asyncio server may cause a deadlock. Use `await` `async_add_attribute()` instead. However, if overriding the synchronous method `initialize_dynamic_attributes`, then the synchronous add_attribute method must be used, even in asyncio servers.

    Parameters:

      - attr (server.attribute or Attr or AttrData) – the new attribute to be added to the list.

      - r_meth (callable) – the read method to be called on a read request (if attr is of type server.attribute, then use the fget field in the attr object instead)

      - w_meth (callable) – the write method to be called on a write request (if attr is writable) (if attr is of type server.attribute, then use the fset field in the attr object instead)

      - is_allo_meth (callable) – the method that is called to check if it is possible to access the attribute or not (if attr is of type server.attribute, then use the fisallowed field in the attr object instead)

    Returns:

      the newly created attribute.

    Return type:

      Attr

    Raises:

      DevFailed –

  add_command(self, cmd, device_level=True) → cmd

    Add a new command to the device command list.

    Parameters:

      - cmd – the new command to be added to the list

      - device_level – Set this flag to true if the command must be added for only this device

    Returns:

      The command to add

    Return type:

      Command

    Raises:

      DevFailed –

  add_version_info(self: tango._tango.DeviceImpl, key: str, value: str) → None

    add_version_info (self, key, value) -> `dict`

    Method to add information about the module version a device is using

    Parameters:

      - key (str) – Module name

      - value (str) – Module version, or other relevant information.

    Added in version 10.0.0.

  always_executed_hook(self: tango._tango.Device_6Impl) → None
  append_status(self: tango._tango.DeviceImpl, status: str, new_line: bool = False) → None

    append_status(self, status, new_line=False)

    Appends a string to the device status.

    Parameters:

      - status (str) – the string to be appended to the device status

      - new_line (bool) – If true, appends a new line character before the string. Default is False

  async async_add_attribute(self, attr, r_meth=None, w_meth=None, is_allo_meth=None) → Attr

    Add a new attribute to the device attribute list.

    Please, note that if you add an attribute to a device at device creation time, this attribute will be added to the device class attribute list. Therefore, all devices belonging to the same class created after this attribute addition will also have this attribute.

    If you pass a reference to unbound method for read, write or is_allowed method (e.g. DeviceClass.read_function or self.__class__.read_function), during execution the corresponding bound method (self.read_function) will be used.

    Parameters:

      - attr (server.attribute or Attr or AttrData) – the new attribute to be added to the list.

      - r_meth (callable) – the read method to be called on a read request (if attr is of type server.attribute, then use the fget field in the attr object instead)

      - w_meth (callable) – the write method to be called on a write request (if attr is writable) (if attr is of type server.attribute, then use the fset field in the attr object instead)

      - is_allo_meth (callable) – the method that is called to check if it is possible to access the attribute or not (if attr is of type server.attribute, then use the fisallowed field in the attr object instead)

    Returns:

      the newly created attribute.

    Return type:

      Attr

    Raises:

      DevFailed –

    Added in version 10.0.0.

  async async_remove_attribute(self, attr_name, free_it=False, clean_db=True)

    Remove one attribute from the device attribute list.

    Parameters:

      - attr_name (str) – attribute name

      - free_it (bool) – free Attr object flag. Default False

      - clean_db (bool) – clean attribute related info in db. Default True

    Raises:

      DevFailed –

    Added in version 10.0.0.

  check_command_exists(self: tango._tango.DeviceImpl, cmd_name: str) → None

    check_command_exists(self, cmd_name)

    Check that a command is supported by the device and does not need input value.

    The method throws an exception if the command is not defined or needs an input value.

    Parameters:

      cmd_name (str) – the command name

    Raises:

      - DevFailed –

      - API_IncompatibleCmdArgumentType –

      - API_CommandNotFound –

  debug_stream(self, msg, *args, source=None)

    Sends the given message to the tango debug stream.

    Since PyTango 7.1.3, the same can be achieved with:

        print(msg, file=self.log_debug)

    Parameters:

      - msg (str) – the message to be sent to the debug stream

      - *args – Arguments to format a message string.

      - source (Callable) – Function that will be inspected for filename and lineno in the log message.

    Added in version 9.4.2: added source parameter

  delete_device(self: tango._tango.Device_6Impl) → None
  dev_state(self: tango._tango.Device_6Impl) → tango._tango.DevState
  dev_status(self: tango._tango.Device_6Impl) → str
  error_stream(self, msg, *args, source=None)

    Sends the given message to the tango error stream.

    Since PyTango 7.1.3, the same can be achieved with:

        print(msg, file=self.log_error)

    Parameters:

      - msg (str) – the message to be sent to the error stream

      - *args – Arguments to format a message string.

      - source (Callable) – Function that will be inspected for filename and lineno in the log message.

    Added in version 9.4.2: added source parameter

  fatal_stream(self, msg, *args, source=None)

    Sends the given message to the tango fatal stream.

    Since PyTango 7.1.3, the same can be achieved with:

        print(msg, file=self.log_fatal)

    Parameters:

      - msg (str) – the message to be sent to the fatal stream

      - *args – Arguments to format a message string.

      - source (Callable) – Function that will be inspected for filename and lineno in the log message.

    Added in version 9.4.2: added source parameter

  fill_attr_polling_buffer(self, attribute_name, attr_history_stack) → None

    Fill attribute polling buffer with your own data. E.g.:

        def fill_history(self):
            # note is such case quality will ATTR_VALID, and time_stamp will be time.time()
            self.fill_attr_polling_buffer(attribute_name, TimedAttrData(my_new_value))

    or:

        def fill_history(self):
            data = TimedAttrData(value=my_new_value,
                                 quality=AttrQuality.ATTR_WARNING,
                                 w_value=my_new_w_value,
                                 time_stamp=my_time)

            self.fill_attr_polling_buffer(attribute_name, data)

    or:

        def fill_history(self):
            data = [TimedAttrData(my_new_value),
                    TimedAttrData(error=RuntimeError("Cannot read value")]

            self.fill_attr_polling_buffer(attribute_name, data)

    Parameters:

      - attribute_name (`str`) – name of the attribute to fill polling buffer

      - attr_history_stack (`tango.TimedAttrData` or list[`tango.TimedAttrData`]) – data to be inserted.

    Returns:

      None

    Raises:

      `tango.DevFailed`

    Added in version 10.1.0.

  fill_cmd_polling_buffer(self, device, command_name, cmd_history_stack) → None

    Fill command polling buffer with your own data. E.g.:

        def fill_history(self):
            # note is such case time_stamp will be set to time.time()
            self.fill_cmd_polling_buffer(command_name, TimedCmdData(my_new_value))

    or:

        def fill_history(self):
            data = TimedCmdData(value=my_new_value,
                                 time_stamp=my_time)

            self.fill_cmd_polling_buffer(command_name, data)

    or:

        def fill_history(self):
            data = [TimedCmdData(my_new_value),
                    TimedCmdData(error=RuntimeError("Cannot read value")]

            self.fill_cmd_polling_buffer(command_name, data)

    Parameters:

      - command_name (`str`) – name of the command to fill polling buffer

      - cmd_history_stack (`tango.TimedCmdData` or list[`tango.TimedCmdData`]) – data to be inserted

    Returns:

      None

    Raises:

      `tango.DevFailed`

    Added in version 10.1.0.

  get_attr_min_poll_period(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_attr_min_poll_period (self) -> `Sequence[str]`

    Returns the min attribute poll period in milliseconds

    Returns:

      the min attribute poll period in ms

    Return type:

      Sequence[str]

    New in PyTango 7.2.0

  get_attr_poll_ring_depth(self: tango._tango.DeviceImpl, attr_name: str) → int

    get_attr_poll_ring_depth (self, attr_name) -> `int`

    Returns the attribute poll ring depth.

    Parameters:

      attr_name (str) – the attribute name

    Returns:

      the attribute poll ring depth

    Return type:

      int

    New in PyTango 7.1.2

  get_attribute_config(attr_names) → list[AttributeConfig]

    Returns the list of `tango.AttributeConfig` for the requested names

    Parameters:

      attr_names (list[str] | str) – sequence of str with attribute names, or single attribute name

    Returns:

      `tango.AttributeConfig` for each requested attribute name

    Return type:

      list[`tango.AttributeConfig`]

  get_attribute_config_2(attr_names) → list[AttributeConfig_2]

    Returns the list of `tango.AttributeConfig_2` for the requested names

    Parameters:

      attr_names (list[str] | str) – sequence of str with attribute names, or single attribute name

    Returns:

      `tango.AttributeConfig_2` for each requested attribute name

    Return type:

      list[`tango.AttributeConfig_2`]

  get_attribute_config_3(attr_names) → list[AttributeConfig_3]

    Returns the list of `tango.AttributeConfig_3` for the requested names

    Parameters:

      attr_names (list[str] | str) – sequence of str with attribute names, or single attribute name

    Returns:

      `tango.AttributeConfig_3` for each requested attribute name

    Return type:

      list[`tango.AttributeConfig_3`]

  get_attribute_poll_period(self: tango._tango.DeviceImpl, attr_name: str) → int

    get_attribute_poll_period (self, attr_name) -> `int`

    Returns the attribute polling period (milliseconds) or 0 if the attribute is not polled.

    Parameters:

      attr_name (str) – attribute name

    Returns:

      attribute polling period (ms) or 0 if it is not polled

    Return type:

      int

    New in PyTango 8.0.0

  get_client_ident(self: tango._tango.DeviceImpl) → tango._tango.ClientAddr

    get_client_ident (self) -> `ClientAddr | None`

    Get client identification.

    This method is only useful while handling a command or attribute read/write. I.e., when a method has been invoked by a client. It will return None if the method was not invoked in the context of a client call. E.g., called on startup, or called internally (e.g., from the polling loop).

    It can only be used with `tango.GreenMode.Synchronous` device servers. Other device servers will not have the correct context active at the time the attribute/command handler is running. E.g., for an asyncio device server, the handler is running in the asyncio event loop thread.

    Returns:

      client identification structure

    Return type:

      ClientAddr | None

  get_cmd_min_poll_period(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_cmd_min_poll_period (self) -> `Sequence[str]`

    Returns the min command poll period in milliseconds.

    Returns:

      the min command poll period in ms

    Return type:

      Sequence[str]

    New in PyTango 7.2.0

  get_cmd_poll_ring_depth(self: tango._tango.DeviceImpl, cmd_name: str) → int

    get_cmd_poll_ring_depth (self, cmd_name) -> `int`

    Returns the command poll ring depth.

    Parameters:

      cmd_name (str) – the command name

    Returns:

      the command poll ring depth

    Return type:

      int

    New in PyTango 7.1.2

  get_command_poll_period(self: tango._tango.DeviceImpl, cmd_name: str) → int

    get_command_poll_period (self, cmd_name) -> `int`

    Returns the command polling period (milliseconds) or 0 if the command is not polled.

    Parameters:

      cmd_name (str) – command name

    Returns:

      command polling period (ms) or 0 if it is not polled

    Return type:

      int

    New in PyTango 8.0.0

  get_dev_idl_version(self: tango._tango.DeviceImpl) → int

    get_dev_idl_version (self) -> `int`

    Returns the IDL version.

    Returns:

      the IDL version

    Return type:

      int

    New in PyTango 7.1.2

  get_device_attr(self: tango._tango.DeviceImpl) → tango._tango.MultiAttribute

    get_device_attr (self) -> `MultiAttribute`

    Get device multi attribute object.

    Returns:

      the device’s MultiAttribute object

    Return type:

      MultiAttribute

  get_device_class(self)

    Get device class singleton.

    Returns:

      the device class singleton (device_class field)

    Return type:

      DeviceClass

  get_device_properties(self, ds_class=None)

    Utility method that fetches all the device properties from the database and converts them into members of this DeviceImpl.

    Parameters:

      ds_class (DeviceClass) – the DeviceClass object. Optional. Default value is None meaning that the corresponding DeviceClass object for this DeviceImpl will be used

    Raises:

      DevFailed –

  get_exported_flag(self: tango._tango.DeviceImpl) → bool

    get_exported_flag (self) -> `bool`

    Returns the state of the exported flag

    Returns:

      the state of the exported flag

    Return type:

      bool

    New in PyTango 7.1.2

  get_logger(self: tango._tango.DeviceImpl) → tango._tango.Logger

    get_logger (self) -> `Logger`

    Returns the Logger object for this device

    Returns:

      the Logger object for this device

    Return type:

      Logger

  get_min_poll_period(self: tango._tango.DeviceImpl) → int

    get_min_poll_period (self) -> `int`

    Returns the min poll period in milliseconds.

    Returns:

      the min poll period in ms

    Return type:

      int

    New in PyTango 7.2.0

  get_name(self: tango._tango.DeviceImpl) → str

    get_name (self) -> `(str)`

    Get a COPY of the device name.

    Returns:

      the device name

    Return type:

      str

  get_non_auto_polled_attr(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_non_auto_polled_attr (self) -> `Sequence[str]`

    Returns a COPY of the list of non automatic polled attributes

    Returns:

      a COPY of the list of non automatic polled attributes

    Return type:

      Sequence[str]

    New in PyTango 7.1.2

  get_non_auto_polled_cmd(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_non_auto_polled_cmd (self) -> `Sequence[str]`

    Returns a COPY of the list of non automatic polled commands

    Returns:

      a COPY of the list of non automatic polled commands

    Return type:

      Sequence[str]

    New in PyTango 7.1.2

  get_poll_old_factor(self: tango._tango.DeviceImpl) → int

    get_poll_old_factor (self) -> `int`

    Returns the poll old factor

    Returns:

      the poll old factor

    Return type:

      int

    New in PyTango 7.1.2

  get_poll_ring_depth(self: tango._tango.DeviceImpl) → int

    get_poll_ring_depth (self) -> `int`

    Returns the poll ring depth

    Returns:

      the poll ring depth

    Return type:

      int

    New in PyTango 7.1.2

  get_polled_attr(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_polled_attr (self) -> `Sequence[str]`

    Returns a COPY of the list of polled attributes

    Returns:

      a COPY of the list of polled attributes

    Return type:

      Sequence[str]

    New in PyTango 7.1.2

  get_polled_cmd(self: tango._tango.DeviceImpl) → tango._tango.StdStringVector

    get_polled_cmd (self) -> `Sequence[str]`

    Returns a COPY of the list of polled commands

    Returns:

      a COPY of the list of polled commands

    Return type:

      Sequence[str]

    New in PyTango 7.1.2

  get_prev_state(self: tango._tango.DeviceImpl) → tango._tango.DevState

    get_prev_state (self) -> `DevState`

    Get a COPY of the device’s previous state.

    Returns:

      the device’s previous state

    Return type:

      DevState

  get_state(self: tango._tango.DeviceImpl) → tango._tango.DevState

    get_state (self) -> `DevState`

    Get a COPY of the device state.

    Returns:

      Current device state

    Return type:

      DevState

  get_status(self: tango._tango.DeviceImpl) → str

    get_status (self) -> `str`

    Get a COPY of the device status.

    Returns:

      the device status

    Return type:

      str

  get_version_info(self: tango._tango.DeviceImpl) → dict

    get_version_info (self) -> `dict`

    Returns a dict with versioning of different modules related to the pytango device.

    Example:

          {
              "Build.PyTango.NumPy": "1.26.4",
              "Build.PyTango.Pybind11": "3.0.1",
              "Build.PyTango.Python": "3.12.2",
              "Build.PyTango.cppTango":"10.0.0",
              "NumPy": "1.26.4",
              "PyTango": "10.0.0.dev0",
              "Python": "3.12.2",
              "cppTango": "10.0.0",
              "omniORB": "4.3.2",
              "zmq": "4.3.5"
          }

    Returns:

      modules version dict

    Return type:

      dict

    Added in version 10.0.0.

  info_stream(self, msg, *args, source=None)

    Sends the given message to the tango info stream.

    Since PyTango 7.1.3, the same can be achieved with:

        print(msg, file=self.log_info)

    Parameters:

      - msg (str) – the message to be sent to the info stream

      - *args – Arguments to format a message string.

      - source (Callable) – Function that will be inspected for filename and lineno in the log message.

    Added in version 9.4.2: added source parameter

  init_device(self: tango._tango.Device_6Impl) → None
  init_logger(self: tango._tango.DeviceImpl) → None

    init_logger (self) -> `None`

    Setups logger for the device. Called automatically when device starts.

  is_attribute_polled(self: tango._tango.DeviceImpl, attr_name: str) → bool

    is_attribute_polled (self, attr_name) -> `bool`

    True if the attribute is polled.

    Parameters:

      attr_name (str) – attribute name

    Returns:

      True if the attribute is polled

    Return type:

      bool

  is_command_polled(self: tango._tango.DeviceImpl, cmd_name: str) → bool

    is_command_polled (self, cmd_name) -> `bool`

    True if the command is polled.

    Parameters:

      cmd_name (str) – attribute name

    Returns:

      True if the command is polled

    Return type:

      bool

  is_device_locked(self: tango._tango.DeviceImpl) → bool

    is_device_locked (self) -> `bool`

    Returns if this device is locked by a client.

    Returns:

      True if it is locked or False otherwise

    Return type:

      bool

    New in PyTango 7.1.2

  is_kernel_tracing_enabled(self: tango._tango.DeviceImpl) → bool

    is_kernel_tracing_enabled (self) -> `bool`

    Indicates if telemetry tracing of the cppTango kernel API is enabled.

    Always False if telemetry support isn’t compiled into cppTango.

    Returns:

      if kernel tracing is enabled

    Return type:

      bool

    Added in version 10.0.0.

  is_polled(self: tango._tango.DeviceImpl) → bool

    is_polled (self) -> `bool`

    Returns if it is polled

    Returns:

      True if it is polled or False otherwise

    Return type:

      bool

    New in PyTango 7.1.2

  is_telemetry_enabled(self: tango._tango.DeviceImpl) → bool

    is_telemetry_enabled (self) -> `bool`

    Indicates if telemetry tracing is enabled for the device.

    Always False if telemetry support isn’t compiled into cppTango.

    Returns:

      if device telemetry tracing is enabled

    Return type:

      bool

    Added in version 10.0.0.

  is_there_subscriber(self: tango._tango.DeviceImpl, attr_name: str, event_type: tango._tango.EventType) → bool

    is_there_subscriber (self, attr_name, event_type) -> `bool`

    Check if there is subscriber(s) listening for the event.

    This method returns a boolean set to true if there are some subscriber(s) listening on the event specified by the two method arguments. Be aware that there is some delay (up to 600 sec) between this method returning false and the last subscriber unsubscription or crash…

    The device interface change event is not supported by this method.

    Parameters:

      - attr_name (str) – the attribute name

      - event_type (EventType) – the event type

    Returns:

      True if there is at least one listener or False otherwise

    Return type:

      bool

  poll_attribute(self: tango._tango.DeviceImpl, attr_name: str, period_ms: SupportsInt) → None

    poll_attribute (self, attr_name, period_ms) -> `None`

    Add an attribute to the list of polled attributes.

    Parameters:

      - attr_name (str) – attribute name

      - period_ms (int) – polling period in milliseconds

    Returns:

      None

    Return type:

      None

  poll_command(self: tango._tango.DeviceImpl, cmd_name: str, period_ms: SupportsInt) → None

    poll_command (self, cmd_name, period_ms) -> `None`

    Add a command to the list of polled commands.

    Parameters:

      - cmd_name (str) – command name

      - period_ms (int) – polling period in milliseconds

    Returns:

      None

    Return type:

      None

  push_alarm_event(attr_name, *args, **kwargs)
    push_alarm_event(self, attr_name, except)
    push_alarm_event(self, attr_name, data)
    push_alarm_event(self, attr_name, data, time_stamp, quality)
    push_alarm_event(self, attr_name, str_data, data)
    push_alarm_event(self, attr_name, str_data, data, time_stamp, quality)

    Push an alarm event for the given attribute name.

    Parameters:

      - attr_name (str) – attribute name

      - data – the data to be sent as attribute event data. Data must be compatible with the attribute type and format. for SPECTRUM and IMAGE attributes, data can be any type of sequence of elements compatible with the attribute type

      - str_data (str) – special variation for DevEncoded data type. In this case ‘data’ must be a str or an object with the buffer interface.

      - except (DevFailed) – Instead of data, you may want to send an exception.

      - time_stamp (double) – the time stamp

      - quality (AttrQuality) – the attribute quality factor

    Raises:

      DevFailed – If the attribute data type is not coherent.

    Changed in version 10.1.0: Removed optional ‘dim_x’ and ‘dim_y’ arguments. The dimensions are automatically determined from the data.

  push_archive_event(attr_name, *args, **kwargs)
    push_archive_event(self, attr_name, except)
    push_archive_event(self, attr_name, data)
    push_archive_event(self, attr_name, data, time_stamp, quality)
    push_archive_event(self, attr_name, str_data, data)
    push_archive_event(self, attr_name, str_data, data, time_stamp, quality)

    Push an archive event for the given attribute name.

    Parameters:

      - attr_name (str) – attribute name

      - data – the data to be sent as attribute event data. Data must be compatible with the attribute type and format. for SPECTRUM and IMAGE attributes, data can be any type of sequence of elements compatible with the attribute type

      - str_data (str) – special variation for DevEncoded data type. In this case ‘data’ must be a str or an object with the buffer interface.

      - except (DevFailed) – Instead of data, you may want to send an exception.

      - time_stamp (double) – the time stamp

      - quality (AttrQuality) – the attribute quality factor

    Raises:

      DevFailed – If the attribute data type is not coherent.

    Changed in version 10.1.0: Removed optional ‘dim_x’ and ‘dim_y’ arguments. The dimensions are automatically determined from the data.

  push_att_conf_event(self: tango._tango.DeviceImpl, attr: tango._tango.Attribute) → None

    push_att_conf_event(self, attr)

    Push an attribute configuration event.

    Parameters:

      attr (Attribute) – the attribute for which the configuration event will be sent.

    New in PyTango 7.2.1

  push_change_event(attr_name, *args, **kwargs)
    push_change_event(self, attr_name, except)
    push_change_event(self, attr_name, data)
    push_change_event(self, attr_name, data, time_stamp, quality)
    push_change_event(self, attr_name, str_data, data)
    push_change_event(self, attr_name, str_data, data, time_stamp, quality)

    Push a change event for the given attribute name.

    Parameters:

      - attr_name (str) – attribute name

      - data – the data to be sent as attribute event data. Data must be compatible with the attribute type and format. for SPECTRUM and IMAGE attributes, data can be any type of sequence of elements compatible with the attribute type

      - str_data (str) – special variation for DevEncoded data type. In this case ‘data’ must be a str or an object with the buffer interface.

      - except (DevFailed) – Instead of data, you may want to send an exception.

      - time_stamp (double) – the time stamp

      - quality (AttrQuality) – the attribute quality factor

    Raises:

      DevFailed – If the attribute data type is not coherent.

    Changed in version 10.1.0: Removed optional ‘dim_x’ and ‘dim_y’ arguments. The dimensions are automatically determined from the data.

  push_data_ready_event(self: tango._tango.DeviceImpl, attr_name: str, counter: SupportsInt) → None

    push_data_ready_event(self, attr_name, counter)

    Push a data ready event for the given attribute name.

    The method needs the attribute name and a “counter” which will be passed within the event

    Parameters:

      - attr_name (str) – attribute name

      - counter (int) – the user counter

    Raises:

      DevFailed – If the attribute name is unknown.

  push_event(attr_name, filt_names, filt_vals, *args, **kwargs)
    push_event(self, attr_name, filt_names, filt_vals, except)
    push_event(self, attr_name, filt_names, filt_vals, data)
    push_event(self, attr_name, filt_names, filt_vals, str_data, data)
    push_event(self, attr_name, filt_names, filt_vals, data, time_stamp, quality)
    push_event(self, attr_name, filt_names, filt_vals, str_data, data, time_stamp, quality)

    Push a user event for the given attribute name.

    Parameters:

      - attr_name (str) – attribute name

      - filt_names (Sequence[str]) – unused (kept for backwards compatibility) - pass an empty list.

      - filt_vals (Sequence[double]) – unused (kept for backwards compatibility) - pass an empty list.

      - data – the data to be sent as attribute event data. Data must be compatible with the attribute type and format. for SPECTRUM and IMAGE attributes, data can be any type of sequence of elements compatible with the attribute type

      - str_data (str) – special variation for DevEncoded data type. In this case ‘data’ must be a str or an object with the buffer interface.

      - except (DevFailed) – Instead of data, you may want to send an exception.

      - time_stamp (double) – the time stamp

      - quality (AttrQuality) – the attribute quality factor

    Raises:

      DevFailed – If the attribute data type is not coherent.

    Changed in version 10.1.0: Removed optional ‘dim_x’ and ‘dim_y’ arguments. The dimensions are automatically determined from the data.

  read_attr_hardware(self: tango._tango.Device_6Impl, arg0: tango._tango.StdLongVector) → None
  register_signal(self: tango._tango.DeviceImpl, signo: SupportsInt, own_handler: bool) → None

    register_signal(self, signo, own_handler)

    Register this device as device to be informed when signal signo is sent to to the device server process

    Parameters:

      - signo (int) – signal identifier

      - own_handler (bool) – true if you want the device signal handler to be executed in its own handler instead of being executed by the signal thread. If this parameter is set to true, care should be taken on how the handler is written. A default false value is provided

  remove_attribute(self, attr_name)

    Remove one attribute from the device attribute list.

    Note: Call of synchronous remove_attribute method from a coroutine function in an asyncio server may cause a deadlock. Use `await` `async_remove_attribute()` instead. However, if overriding the synchronous method `initialize_dynamic_attributes`, then the synchronous remove_attribute method must be used, even in asyncio servers.

    Parameters:

      - attr_name (str) – attribute name

      - free_it (bool) – free Attr object flag. Default False

      - clean_db (bool) – clean attribute related info in db. Default True

    Raises:

      DevFailed –

    Added in version 9.5.0: free_it parameter. clean_db parameter.

  remove_command(self, cmd_name, free_it=False, clean_db=True)

    Remove one command from the device command list.

    Parameters:

      - cmd_name (str) – command name to be removed from the list

      - free_it (bool) – set to true if the command object must be freed.

      - clean_db – Clean command related information (included polling info if the command is polled) from database.

    Raises:

      DevFailed –

  server_init_hook(self: tango._tango.Device_6Impl) → None
  set_alarm_event(self: tango._tango.DeviceImpl, attr_name: str, implemented: bool, detect: bool = True) → None

    set_alarm_event(self, attr_name, implemented, detect=True)

    Set an implemented flag for the attribute to indicate that the server fires alarm events manually, without the polling to be started.

    If the detect parameter is set to true, the criteria specified for the alarm event (rel_change and abs_change) are verified and the event is only pushed if a least one of them are fulfilled (change in value compared to previous event exceeds a threshold). If detect is set to false the event is fired without any value checking!

    Parameters:

      - attr_name (str) – attribute name

      - implemented (bool) – True when the server fires alarm events manually.

      - detect (bool) – Triggers the verification of the alarm event properties when set to true. Default value is true.

    Added in version 10.0.0.

  set_archive_event(self: tango._tango.DeviceImpl, attr_name: str, implemented: bool, detect: bool = True) → None

    set_alarm_event(self, attr_name, implemented, detect)

    Set an implemented flag for the attribute to indicate that the server fires archive events manually, without the polling to be started.

    If the detect parameter is set to true, the criteria specified for the archive event (rel_change and abs_change) are verified and the event is only pushed if a least one of them are fulfilled (change in value compared to previous event exceeds a threshold). If detect is set to false the event is fired without any value checking!

    Parameters:

      - attr_name (str) – attribute name

      - implemented (bool) – True when the server fires change events manually.

      - detect (bool) – Triggers the verification of the change event properties when set to true. Default value is true.

  set_attribute_config(self: tango._tango.DeviceImpl, new_conf: list[AttributeConfig]) → None

    set_attribute_config (self, new_conf) -> `None`

    Sets attribute configuration locally and in the Tango database

    Parameters:

      new_conf (list[`tango.AttributeConfig`]) – The new attribute(s) configuration. One AttributeConfig structure is needed for each attribute to update

    Returns:

      None

    Return type:

      None

    Added in version 10.0.0.

  set_attribute_config_3(self: tango._tango.Device_3Impl, new_conf: list[AttributeConfig_3]) → None

    set_attribute_config_3 (self, new_conf) -> `None`

    Sets attribute configuration locally and in the Tango database

    Parameters:

      new_conf (list[`tango.AttributeConfig_3`]) – The new attribute(s) configuration. One AttributeConfig structure is needed for each attribute to update

    Returns:

      None

    Return type:

      None

  set_change_event(self: tango._tango.DeviceImpl, attr_name: str, implemented: bool, detect: bool = True) → None

    set_change_event(self, attr_name, implemented, detect=True)

    Set an implemented flag for the attribute to indicate that the server fires change events manually, without the polling to be started.

    If the detect parameter is set to true, the criteria specified for the change event (rel_change and abs_change) are verified and the event is only pushed if a least one of them are fulfilled (change in value compared to previous event exceeds a threshold). If detect is set to false the event is fired without any value checking!

    Parameters:

      - attr_name (str) – attribute name

      - implemented (bool) – True when the server fires change events manually.

      - detect (bool) – Triggers the verification of the change event properties when set to true. Default value is true.

  set_data_ready_event(self: tango._tango.DeviceImpl, attr_name: str, implemented: bool) → None

    set_alarm_event(self, attr_name, implemented)

    Set an implemented flag for the attribute to indicate that the server fires data ready events manually.

    Parameters:

      - attr_name (str) – attribute name

      - implemented (bool) – True when the server fires change events manually.

  set_kernel_tracing_enabled(self, enabled) → None

    Enable or disable telemetry tracing of cppTango kernel methods, and for high-level PyTango devices, tracing of the PyTango kernel (BaseDevice) methods.

    This is a no-op if telemetry support isn’t compiled into cppTango.

    Parameters:

      enabled (bool) – True to enable kernel tracing

    Added in version 10.0.0.

  set_state(self: tango._tango.DeviceImpl, new_state: tango._tango.DevState) → None

    set_state(self, new_state)

    Set device state.

    Parameters:

      new_state (DevState) – the new device state

  set_status(self: tango._tango.DeviceImpl, new_status: str) → None

    set_status(self, new_status)

    Set device status.

    Parameters:

      new_status (str) – the new device status

  set_telemetry_enabled(self, enabled) → None

    Enable or disable the device’s telemetry interface.

    This is a no-op if telemetry support isn’t compiled into cppTango.

    Parameters:

      enabled (bool) – True to enable telemetry tracing

    Added in version 10.0.0.

  signal_handler(self: tango._tango.Device_3Impl, signo: SupportsInt) → None

    signal_handler(self, signo)

    Signal handler.

    The method executed when the signal arrived in the device server process. This method is defined as virtual and then, can be redefined following device needs.

    Parameters:

      signo (int) – the signal number

    Raises:

      DevFailed – This method does not throw exception but a redefined method can.

  start_logging(self: tango._tango.DeviceImpl) → None

    start_logging (self) -> `None`

    Starts logging

  stop_logging(self: tango._tango.DeviceImpl) → None

    stop_logging (self) -> `None`

    Stops logging

  stop_poll_attribute(self: tango._tango.DeviceImpl, attr_name: str) → None

    stop_poll_attribute (self, attr_name) -> `None`

    Remove an attribute from the list of polled attributes.

    Parameters:

      attr_name (str) – attribute name

    Returns:

      None

    Return type:

      None

  stop_poll_command(self: tango._tango.DeviceImpl, cmd_name: str) → None

    stop_poll_command (self, cmd_name) -> `None`

    Remove a command from the list of polled commands.

    Parameters:

      cmd_name (str) – cmd_name name

    Returns:

      None

    Return type:

      None

  stop_polling(*args, **kwargs)

    Overloaded function.

    1. stop_polling(self: tango._tango.DeviceImpl) -> None

    stop_polling(self)

    Stop all polling for a device. if the device is polled, call this method before deleting it.

    New in PyTango 7.1.2

    2. stop_polling(self: tango._tango.DeviceImpl, with_db_upd: bool) -> None

    stop_polling(self, with_db_upd)(self)

    Stop all polling for a device. if the device is polled, call this method before deleting it.

    Parameters:

      with_db_upd (bool) – Is it necessary to update db?

    New in PyTango 7.1.2

  unregister_signal(self: tango._tango.DeviceImpl, signo: SupportsInt) → None

    unregister_signal(self, signo)

    Unregister this device as device to be informed when signal signo is sent to to the device server process

    Parameters:

      signo (int) – signal identifier

  warn_stream(self, msg, *args, source=None)

    Sends the given message to the tango warn stream.

    Since PyTango 7.1.3, the same can be achieved with:

        print(msg, file=self.log_warn)

    Parameters:

      - msg (str) – the message to be sent to the warn stream

      - *args – Arguments to format a message string.

      - source (Callable) – Function that will be inspected for filename and lineno in the log message.

    Added in version 9.4.2: added source parameter

  write_attr_hardware(self: tango._tango.Device_6Impl, arg0: tango._tango.StdLongVector) → None