:orphan: .. _device-Kinetix: Kinetix ======= **From:** `Teledyne Technologies `_ **Class:** :py:class:`herosdevices.hardware.teledyne.pvcam.Kinetix` **Driver Quality Index:** beta .. admonition:: Requires the following packages `pyvcam `_ Additional Information :bdg-warning:`Check before use` ------------------------------------------------------ .. dropdown:: PVCam Setup This device requires additional binary drivers to run. .. warning:: The PCIe Driver only works with very specific (and often outdated) kernel versions. If you need the PCIe driver you will likely need to build a docker image yourself or run it without docker. The following script can be :external:ref:`used with BOSS ` to automatically build and install the driver inside a docker container. .. code-block:: bash :caption: pvcam.boss.sh SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) # Install prerequisites apt-get update && apt-get install -y sudo git # Install the vendor library itself # We have to agree to some licenses here so we use the "yes" command. # The EUID=1 is a little hack to trick the installer into thinking we're not root. /bin/sh -c 'yes | /bin/bash '"${SCRIPT_DIR}"'/pvcam/pvcam__install_helper-Ubuntu.sh' # Remove build files after installation to make image a bit smaller rm -rf /pvcam # We need to point the python api to the correct library path export PVCAM_SDK_PATH="/opt/pvcam/sdk" # Install python API pip install --break-system-packages PyVCAM Place the ``pvcam`` folder from the archive you can download `here `_ in the same folder as the script. Finally, add the following lines to your docker compose file: .. code-block:: yaml environment: - PVCAM_SDK_PATH=/opt/pvcam/sdk - PVCAM_UMD_PATH=/opt/pvcam/drivers/user-mode - PVCAM_VERSION=3.10.2.5 # Adjust this to your version .. important:: To access the camera from within the docker container follow :external+boss:std:ref:`this guide `. Note, that pvcam cameras are not linked to a nice name but are only accessible via their usb path like ``/dev/bus/usb/004/004``. To find this path run .. code-block:: bash lsusb | grep | awk '{ sub(/:/, "", $4); print "/dev/bus/usb/" $2 "/" $4 }' Replace ```` with the name of your device as shown by ``lsusb``. .................... Driver class for the Kinetix camera. This class adds the following device specific functionality: - The trigger delay stored in the :py:attr:`Kinetix.trigger_delay` is calculated from the user specified trigger delay and the delay from the trigger input to the `All Rows` condition. For more information refer to :py:class:`PvcamCamera` .. note:: It is well possible to that other PVCam cameras that support the fake global shutter concept (e.g. defined `All Rows` condition) can also be used with this driver. .. 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.teledyne.pvcam.Kinetix` 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** - **** - - Serial number of the cam. Can be obtained for example from the ``PVCamTest`` program shipped with the vendor library. If you specify a wrong id, this driver will also log a list of available devices. * - **config_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. Can also be set via the environmental variable ``PVCAM_SDK_PATH`` .. tab-item:: Example JSON for BOSS The following JSON strings can be used to start a HERO device representation of :py:class:`Kinetix ` using `BOSS `_. .. code-block:: json { "_id": "my_Kinetix", "classname": "herosdevices.hardware.teledyne.pvcam.Kinetix", "arguments": { "cam_id": "", "config_dict": "", "default_config": null, "lib_path": null } } :sup:`generated from signature` .. tab-item:: Inheritance .. inheritance-diagram:: herosdevices.hardware.teledyne.pvcam.Kinetix