Skip to main content

A Karabo device to control and acquire data from Aravis compatible cameras.

Project description

AravisCameras Device (C++)

Karabo Badge PyPI - Version PyPI - Python Version PyPI - License PyPI - Wheel GitHub language count GitHub top language GitHub contributors GitHub commit activity GitHub Repo stars

Overview

The AravisCamera class provides an interface to GigE Vision and USB3 Vision cameras in the Karabo framework environment. It enables users to configure the camera settings, acquire images, and dynamically update the settings during runtime. This class simplifies the interaction with the camera and streamlines the process making it easier to integrate the camera into various applications.

Contact

For questions, please contact opensource@xfel.eu.

License and Contributing

This software is released by the European XFEL GmbH as is and without any warranty under the GPLv3 license. If you have questions on contributing to the project, please get in touch at opensource@xfel.eu.

External contributors, i.e. anyone not contractually associated to the European XFEL GmbH, are asked to sign a Contributor License Agreement (CLA):

  • people contributing as individuals should sign the Individual CLA
  • people contributing on behalf of an organization should sign the Entity CLA.

The CLAs can be found in the contributor_license_agreement.md and entity_contributor_license_agreement.md documents located in the root folder of this repository. Please send signed CLAs to opensource [at] xfel.eu. We'll get in touch with you then. We ask for your understanding that we cannot accept external contributions without a CLA in place. Importantly, with signing the CLA you acknowledge that

  • European XFEL retains all copyrights of the Karabo Aravis Cameras,
  • European XFEL may relicense the Karabo Aravis Cameras under other appropriate open source licenses which the Free Software Foundation classifies as Free Software licenses.

However, you are welcome to already suggest modifications you'd like to contribute by opening a merge/pull request before you send the CLA.

Source Code

The sources for this project can be found at https://github.com/European-XFEL/Karabo-aravisCameras

Dependencies

Host Setup

In order to enable users to access a USB3V camera, a file /etc/udev/rules.d/69-basler-cameras.rules must be added with the following content

# Enable user access to all basler cameras
SUBSYSTEM=="usb", ATTRS{idVendor}=="2676", MODE:="0666", TAG+="uaccess", TAG+="udev-acl"

Installing and Running from PyPI

The device can further be installed from PyPI and ships in the form of a self-hosting device server. To install, run

pip install karabo-aravis-cameras

To run, make sure you have activated a Karabo environment using

source PATH/TO/KARABO/activate

and then start the self-hosting server with

karabo-aravis-cameras-server [serverId=, ... karabo-cpp-server options]

You can directly start a device connected to a network camera using e.g.

karabo-aravis-cameras-server \
   serverId=MyServer 
   init='{"MyCamera": {"classId": "AravisBaslerCamera", "cameraId": "192.168.0.1"}}'

Compiling in a self-contained Karabo Environment

  1. Source activate the Karabo installation against which the device will be developed:

    cd <Karabo installation root directory>
    source ./activate
    
  2. Go to the device source root directory and generate its build files with cmake:

    cd $KARABO/devices/aravisCameras
    mkdir build
    cd build
    cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=$KARABO/extern ..
    

    CMAKE_BUILD_TYPE can also be set to "Release".

  3. Build the device:

    cd $KARABO/devices/aravisCameras
    cmake --build .
    

    make can also be used as long as the Makefile generator is used by cmake.

Testing

After a successfull build, a shared library is generated here:

dist/<configuration>/<system>/libaravisCameras.so

And a soft-link to the libaravisCameras.so file is created in the $KARABO/plugins folder.

To run the tests, go to the tests directory in your build tree and use ctest:

cd $KARABO/devices/aravisCameras/build/aravisCameras
ctest -VV

Running

If you want to manually start a server using this device, simply type:

karabo-cppserver serverId=cppServer/1 deviceClasses=AravisCameras

Or just use (a properly configured):

karabo-start

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

karabo_aravis_cameras-3.2.0-cp312-cp312-manylinux_2_28_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

File details

Details for the file karabo_aravis_cameras-3.2.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for karabo_aravis_cameras-3.2.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 66c2f2ebe7d8cb915f4448183723a571032deb9c478ec1f08a3340b0c7e19bc4
MD5 7ada0e2881266881fe383a4ecc64038b
BLAKE2b-256 66ae412fcd76a974eb888e01df174f0666381b1816f5f4116a08be9a0cadcb4d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page