herosdevices.interfaces.atomiq
==============================

.. py:module:: herosdevices.interfaces.atomiq

.. autoapi-nested-parse::

   Translation/implementation interfaces for HEROized atomiq devices.





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

.. py:class:: AtomiqInterface

   Bases: :py:obj:`herosdevices.interfaces.Interface`


   This interface defines the necessary methods for a HERO to seamlessly being converted into an atomiq component.

   The methods that need to be implemented are listed in the class-level list `_atomiq_methods`. If a subclass does
   not implement one of these methods a NotImplementedError is raised.

   Important: The methods given here are just the minimal set. Any other method of the atomiq component can be
              overloaded as well. In particular, if your hardware supports ramping or arbitrary functions,
              implement the `ramp()` and/or `arb()` methods in your subclass.


.. py:class:: Switch

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.primitives.Switchable`.


.. py:class:: Measurable

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.primitives.Measurable`.


.. py:class:: RFSource

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.electronics.rfsource.RFSource`.


   .. py:attribute:: frequency
      :type:  float
      :value: 1000000.0



   .. py:attribute:: amplitude
      :type:  float
      :value: 0.1



   .. py:attribute:: phase
      :type:  float
      :value: 0.0



   .. py:attribute:: freq_max
      :type:  float
      :value: 100000000.0



   .. py:attribute:: freq_min
      :type:  float
      :value: 100000.0



   .. py:attribute:: amp_max
      :type:  float
      :value: 1.0



   .. py:attribute:: amp_min
      :type:  float
      :value: 0.0



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



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



.. py:class:: VoltageSource

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.electronics.voltagesource.VoltageSource`.


   .. 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:class:: CurrentSource

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.electronics.currentsource.CurrentSource`.


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


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


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



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



.. py:class:: ADC

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.electronics.adc.ADC`.


.. py:class:: ADCChannel

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.electronics.adc.ADCChannel`.


.. py:class:: Camera

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.optoelectronics.camera.Camera`.


.. py:class:: LaserSource

   Bases: :py:obj:`AtomiqInterface`


   HERO implementation of :external+atomiq:py:class:`atomiq.components.laser.LaserSource`.


