:orphan:

TAPro
=====

**From:** `Toptica Photonics <https://www.toptica.com/products/tunable-diode-lasers/amplified-lasers/ta-pro>`_

**Class:** :py:class:`herosdevices.hardware.toptica.dlcpro.TAPro`


**Driver Quality Index:** beta


.. admonition:: Requires the following packages 

   `toptica_lasersdk <https://pypi.org/project/toptica_lasersdk>`_

Driver for Toptica TAPro laser system.

.. tabs:: 


   .. tab:: Arguments
   
   
      Bold arguments are mandatory. For more information on the listed arguments refer to the class             documentation: :py:class:`herosdevices.hardware.toptica.dlcpro.TAPro` If parameters appear in this             list but not in the class definition, please recursively check the linked base classes for the             definition of the parameter.
      
      
      .. list-table:: 
         :widths: 50 50 50 100
         :header-rows: 1
      
         * - Argument
           - Type
           - Default Value
           - Description
         * - **address**
           - **<class 'str'>**
           - 
           - IP address of the laser driver. 
         * - **frequency**
           - **<class 'float'>**
           - 
           - Frequency the laser is running on in Hz. Used for interfacing with atomiq. Can be an approximate value if you don't plan to use this feature. 
         * - lock_option
           - <class 'bool'>
           - False
           - If the laser has the lock option installed.
         * - additional_execs
           - dict | None
           - None
           - A dictionary of additional execution commands. The keys are the names of the methods added to the class, the values are arguments for :py:class:`herosdevices.hardware.toptica.lasersdk.attach_laser_sdk_exec_method`. ``{laser_num}`` can be used in the ``command`` string as a placeholder for the laser number specified when initializing the laser source. 
         * - power
           - float | None
           - None
           - Output power of the laser in W. When ``None`` (default), the ``amp_output_power`` PD is used 
         * - laser_num
           - <class 'int'>
           - 1
           - Number of the laser in a single dlcpro. Relevant for the dual or quad laser DLC options.
         * - observables
           - dict | None
           - None
           - A set of attributes (like ``self.system_health``) that are emitted with the ``observable_data`` HEROS event. If None, the default observables as defined in ``self._default_observables`` (which are typically all defined query attributes) are used. 
      

   .. tab:: Example JSON for BOSS
   
      The following JSON strings can be used to start a HERO device representation of             :py:class:`TAPro <herosdevices.hardware.toptica.dlcpro.TAPro>` using             `BOSS <https://boss-eb4966.gitlab.io/>`_.
      
      
      .. code-block:: json
      
         {
             "_id": "my_TAPro",
             "classname": "herosdevices.hardware.toptica.dlcpro.TAPro",
             "arguments": {
                 "address": "192.168.1.24",
                 "frequency": 444779044095485.0,
                 "lock_option": false,
                 "additional_execs": {
                     "get_trace": {
                         "command": "{laser_num}:recorder:data:get-data",
                         "expected_args": {
                             "index": "int",
                             "length": "int"
                         },
                         "return_type": "bytes"
                     }
                 },
                 "power": 1.5,
                 "laser_num": 1,
                 "observables": [
                     "system_health",
                     "emission_status"
                 ]
             }
         }
      
      :sup:`generated from signature`
   .. tab:: Inheritance
   
   
      .. inheritance-diagram:: herosdevices.hardware.toptica.dlcpro.TAPro
      
