herosdevices.hardware.aimtti.pl_series
======================================

.. py:module:: herosdevices.hardware.aimtti.pl_series

.. autoapi-nested-parse::

   Device driver for AimTTI PL series power supplies.





Module Contents
---------------

.. py:class:: GenericPSU(address: str, port: int = 9221, timeout: float = 1.0)

   Bases: :py:obj:`herosdevices.core.templates.SerialDeviceTemplate`


   Device driver for a generic network capable AimTTI Power Supplies.

   :param address: IP address of the device. Example: "192.168.1.20"
   :param port: Socket port of the device. Default (9221) should be correct for all PSUs.
   :param timeout: timeout for read operations.


   .. py:method:: enable_all_outputs(enable: bool = True) -> None

      Enable or disable all outputs simultaneously.

      :param enable: True to enable all outputs, False to disable all outputs.



   .. py:method:: local() -> None

      Switch the device to local control mode.



   .. py:method:: read(*args, **kwargs) -> str | None

      Read data from the device connection.

      Used for access from the channel classes like :py:class:`PLSeriesChannel`. Should not be used directly.



   .. py:method:: write(*args, **kwargs) -> str | None

      Write data to the device connection.

      Used for access from the channel classes like :py:class:`PLSeriesChannel`. Should not be used directly.



   .. py:attribute:: address


   .. py:attribute:: connection


.. py:class:: PLSeriesChannel(host_device: GenericPSU, voltage_limits: tuple[float, float], current_limits: tuple[float, float], channel: int = 1, **_kwargs)

   Bases: :py:obj:`herosdevices.interfaces.atomiq.VoltageSource`, :py:obj:`herosdevices.interfaces.atomiq.CurrentSource`, :py:obj:`herosdevices.interfaces.atomiq.Switch`


   A single channel of a PL Series power supply.

   This class provides an :py:class:`herosdevices.interfaces.atomiq.VoltageSource` compatible interface to control a
   single channel of a PL Series power supply.

   .. note::

      This class does not directly connect to the hardware but to another object given by the host_device argument
      which can also be a HERO running on another machine. It can be used to provide a universal interface which does
      not require setting a channel for every operation.

   :param host_device: The host :py:class:`GenericPSU` device.
   :param voltage_limits: Voltage limits of the channel. Can be used to set artificial guard rails.
   :param current_limits: Current limits of the channel. Can be used to set artificial guard rails.
   :param channel: The channel to control (1, 2, or 3)


   .. py:attribute:: connection


   .. py:attribute:: channel
      :type:  int
      :value: 1



   .. py:method:: on() -> None

      Enable the output for this channel.



   .. py:method:: off() -> None

      Disable the output for this channel.



   .. py:method:: is_on() -> bool

      Check if the output for this channel is enabled.



   .. py:attribute:: min_voltage
      :type:  float


   .. py:attribute:: max_voltage
      :type:  float


   .. py:attribute:: default_ramp_steps
      :type:  int
      :value: 30



   .. py:attribute:: blind
      :type:  bool
      :value: False



   .. py:attribute:: min_current
      :type:  float


   .. py:attribute:: max_current
      :type:  float


