:orphan:

IDS Peak Camera
===============

**From:** IDS Imaging Development Systems

**Class:** :py:class:`herosdevices.hardware.ids.peak_camera.PeakCompatibleCamera`


**Driver Quality Index:** beta


.. admonition:: Requires the following packages 

   ``ids_peak``
   ``ids_peak_ipl_extension``

A class to interface with IDS Peak cameras.

The class provides functionality to control and capture images from IDS Peak cameras.
It manages camera configuration, acquisition, and data streaming.

.. note::

   To access the camera as non-root user, you need to add the following udev rule
   to :code:`/etc/udev/rules.d/99-ids.rules`::
   
       ATTRS{idVendor}=="1409", MODE="666"
   
   The vendor library must be obtained from the [official website](https://en.ids-imaging.com/download-peak.html).
   Download the `IDS peak archive file`, unpack it at move the content of `idspeak/ids/cti/` to a place where
   the user running the driver can access it. This path then needs to be specified via the `lib_path` argument
   (see example below)

.. note::

   The :code:`node_map` attribute provides access to the camera node map. If you need to set some special
   nodes you can use that.
   You can find the available nodes in the official API manuals:
   
   - https://en.ids-imaging.com/manuals/ids-peak/ids-peak-api-documentation/2.16.0/en/index.html
   - https://en.ids-imaging.com/manuals/ids-peak/ids-peak-user-manual/1.3.0/en/preface.html


.. tabs:: 


   .. tab:: Arguments
   
   
      Bold arguments are mandatory. For more information on the listed arguments refer to the class             documentation: :py:class:`herosdevices.hardware.ids.peak_camera.PeakCompatibleCamera` 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
         * - **cam_id**
           - **<class 'str'>**
           - 
           - Serial number of the cam. Can be obtained for example from the ids-peak GUI. Note, that the id is only the first part of the value shown in the GUI, the part including the device type is not unique and may not be added to :code:`cam_id`. 
         * - **config_dict**
           - **<class 'dict'>**
           - 
           - Dict of configuration values like shown in the json example above. 
         * - default_config
           - str | None
           - None
           - Default key in :code:`config_dict` to use. 
         * - lib_path
           - str | None
           - None
           - Path to vendor library. 
         * - reset_to_continuous
           - <class 'bool'>
           - False
           - If True, the camera will be set to continuous acquisition mode on teardown.
      

   .. tab:: Example JSON for BOSS
   
      This JSON string can be used to start a HERO device representation of             :py:class:`PeakCompatibleCamera <herosdevices.hardware.ids.peak_camera.PeakCompatibleCamera>` using             `BOSS <https://boss-eb4966.gitlab.io/>`_.
      
      .. code-block:: json
      
         {
             "_id": "my_PeakCompatibleCamera",
             "classname": "herosdevices.hardware.ids.peak_camera.PeakCompatibleCamera",
             "arguments": {
                 "cam_id": "1410d4e7c3b5",
                 "config_dict": "default",
                 "default_config": {
                     "default": {
                         "ExposureTime": 1000,
                         "TriggerSelector": "ExposureStart",
                         "TriggerMode": "On",
                         "TriggerSource": "Software",
                         "AcquisitionMode": "MultiFrame",
                         "AcquisitionFrameCount": 5
                     }
                 },
                 "lib_path": "/opt/idspeak/ids/cti/",
                 "reset_to_continuous": false
             }
         }
      
   .. tab:: Inheritance
   
   
      .. inheritance-diagram:: herosdevices.hardware.ids.peak_camera.PeakCompatibleCamera
      
