:orphan:

VimbaX Camera
=============

**From:** Allied Vision Technologies

**Class:** :py:class:`herosdevices.hardware.allied_vision.vimba_camera.VimbaCompatibleCamera`


**Driver Quality Index:** beta


.. admonition:: Requires the following packages 

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

A class to interface with Allied Vision VimbaX cameras.

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

.. important::

   The vendor underlying library must be obtained from the
   `official website <https://www.alliedvision.com/de/support/software-downloads/vimba-x-sdk/vimba-x>`_.
   Download the `Allied Vision VimbaX SDK`, unpack it and install it following the supplied ``README`` file.
   
   Note:
       For use with :ref:`BOSS in docker <boss-additional-deps>`, you can adapt the VimbaX install script
       ``cti/Install_GenTL_Path.sh``
   
   To find the ``cam_id`` of your camera, you can either use the VimbaXViewer
   (or start the driver with a wrong id, it will print the available ids).
   The ids look something like ``DEV_000A4717239E``.


.. tab-set:: 


   .. tab-item:: Arguments
   
   
      Bold arguments are mandatory. For more information on the listed arguments refer to the class             documentation: :py:class:`herosdevices.hardware.allied_vision.vimba_camera.VimbaCompatibleCamera` 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. See note above to learn how to obtain the correct serial.
         * - **config_dict**
           - **<class 'dict'>**
           - 
           - Dict of configuration values like shown in the json example above. The keys starting with a capital letter in the example are features of the camera. For available features, see the manual of your camera model. Valid special keys are:      - ``pixel_format``: Sets the pixel format of the camera, for example "Mono8"  
         * - default_config
           - str | None
           - None
           - Default key in :code:`config_dict` to use. 
         * - reset_to_continuous
           - <class 'bool'>
           - False
           - If True, the camera will be set to continuous acquisition mode on teardown.
         * - lib_path
           - str | None
           - None
           - Path to vendor transport library. 
      

   .. tab-item:: Example JSON for BOSS
   
      The following JSON strings can be used to start a HERO device representation of             :py:class:`VimbaCompatibleCamera <herosdevices.hardware.allied_vision.vimba_camera.VimbaCompatibleCamera>` using             `BOSS <https://boss-eb4966.gitlab.io/>`_.
      
      .. code-block:: json
      
         {
             "_id": "test_cam",
             "classname": "herosdevices.hardware.allied_vision.VimbaCompatibleCamera",
             "arguments": {
                 "cam_id": "DEV_000A1217739E",
                 "config_dict": {
                     "default": {
                         "ExposureTime": 3000,
                         "TriggerSelector": "ExposureStart",
                         "AcquisitionMode": "MultiFrame",
                         "TriggerMode": "On",
                         "TriggerSource": "Software",
                         "AcquisitionFrameCount": 5,
                         "pixel_format": "Mono8"
                     },
                     "continuous": {
                         "AcquisitionMode": "Continuous",
                         "AcquisitionFrameRateEnable": "On",
                         "AcquisitionFrameRate": 20,
                         "ExposureTime": 200
                     }
                 }
             }
         }
      
      :sup:`from examples/allied_vision/vimba_cam.json` 
      
      
      .. code-block:: json
      
         {
             "_id": "my_VimbaCompatibleCamera",
             "classname": "herosdevices.hardware.allied_vision.vimba_camera.VimbaCompatibleCamera",
             "arguments": {
                 "cam_id": "<class 'str'>",
                 "config_dict": {
                     "default": {
                         "ExposureTime": 1000,
                         "TriggerSelector": "ExposureStart",
                         "TriggerMode": "On",
                         "TriggerSource": "Software",
                         "AcquisitionMode": "MultiFrame",
                         "AcquisitionFrameCount": 5
                     }
                 },
                 "default_config": "default",
                 "reset_to_continuous": false,
                 "lib_path": "/opt/vimba/cti/"
             }
         }
      
      :sup:`generated from signature`
   .. tab-item:: Inheritance
   
   
      .. inheritance-diagram:: herosdevices.hardware.allied_vision.vimba_camera.VimbaCompatibleCamera
      
