Vimba camera device

civiq6.devices provides classes to manage physical camera devices controlled by Vimba SDK.

To access the camera, Vimba instance must be run first by VimbaRunner. After that the user can get the list of available camera devices and their information using VimbaDevices and VimbaCameraDevice, just as one would use QMediaDevices and QCameraDevice.

class civiq6.devices.VimbaRunner(parent=None)[source]

Bases: QObject

Class to run the Vimba instance.

VimbaRunner is a singleton object which runs the Vimba instance in an event loop to activate the API and to manage the camera change event. This object must be run before any Vimba-related operation.

The typical usage is to call runVimba() in a dedicated thread:

vimbaThread = QThread()
vimbaRunner = VimbaRunner()
vimbaRunner.moveToThread(vimbaThread)
vimbaThread.started.connect(vimbaRunner.runVimba)
vimbaThread.start()

Once the Vimba instance is successfully started, vimbaReady signal is emitted.

runVimba()

Run the Vimba instance.

This method registers cameraChangeHandler() to the camera change handler of Vimba instance, and loades all connected cameras to VimbaDevices.

When Vimba is successfully run, vimbaReady signal is emitted and event loop is executed. If event loop is finished or Vimba fails to run, camera change handler is unregistered.

To finish the event loop, run stopVimba().

stopVimba()

Stop all running cameras and quit the Vimba event loop.

cameraChangeHandler(camera: vimba.Camera, event: vimba.CameraEvent)[source]

Refresh the list of camera of VimbaDevices.

class civiq6.devices.VimbaDevices(parent=None)[source]

Bases: QObject

Class to provide information about available camera devices.

VimbaDevices provides access to the available camera devices. videoInputs() returns a list of available devices, and defaultVideoInput() returns a default device among them.

When a new devices has been connected or and attached device has been disconnected, the change is notified by videoInputsChanged signal.

VimbaDevices is a singleton object.

static videoInputs() List[VimbaCameraDevice][source]

Return a list of available cameras on the system.

static defaultVideoInput() VimbaCameraDevice[source]

Return the default camera.

The default device is the first item in videoInputs(). If no camera is available, invalid VimbaCameraDevice is returned.

class civiq6.devices.VimbaCameraDevice(*args: Any, **kwargs: Any)[source]

Bases: QObject

Class to provide general information about camera devices.

VimbaCameraDevice represents a physical camera device managed by Vimba, and its properties.

Camera device can be discovered by VimbaDevices class.

This example prints the name of all available cameras:

cameras = VimbaDevices.videoInputs()
for cameraDevice in cameras:
    print(cameraDevice.description())

A VimbaCameraDevice can be used to construct a VimbaCamera. The following example instantiates a VimbaCamera whose camera device is named mycamera:

cameras = VimbaDevices.videoInputs()
for cameraDevice in cameras:
    if (cameraDevice.description() == "mycamera")
        camera = VimbaCamera(cameraDevice)

You can also use VimbaCameraDevice to get general information about a camera device such as frame rate, resolution or pixel format.

device = VimbaDevices.defaultVideoInput()
print(device.frameRate())
print(device.resolution())
id() civiq6.qt_compat.QtCore.QByteArray[source]

Return the device id of the camera.

description() str[source]

Return the human-readable description of the camera.

isNull() bool[source]

Return true if this VimbaCameraDevice is null or invalid.

isDefault() bool[source]

Return true if this is the default camera device.

frameRate() float[source]

Return the acquisition frame rate of camera device. -1 indicates invalid device.

resolution() civiq6.qt_compat.QtCore.QSize[source]

Return the resoultion of camera device. QSize(-1, -1) indicates invalid device.

pixelFormat() vimba.PixelFormat | None[source]

Return the pixel format of camera device. None indicates invalid device.