Source code for QVideo.cameras.Vimbax._camera
from QVideo.cameras.Genicam import QGenicamCamera, QGenicamSource
import logging
logger = logging.getLogger(__name__)
__all__ = ['QVimbaXCamera', 'QVimbaXSource']
[docs]
class QVimbaXCamera(QGenicamCamera):
'''Camera backed by an Allied Vision device via the VimbaX GenTL producer.
`VimbaX <https://www.alliedvision.com/en/products/software/vimba-x-sdk/>`_
is Allied Vision's SDK for GigE Vision and USB3 Vision cameras. It
installs a GenTL producer whose path is discovered automatically from the
``GENICAM_GENTL64_PATH`` environment variable set by the VimbaX installer.
If VimbaX is not installed, instantiation raises :exc:`TypeError`.
Parameters
----------
cameraID : int
Index of the Allied Vision camera to open. Default: ``0``.
'''
_producer_filenames = ('VimbaUSBTL.cti', 'VimbaGigETL.cti', 'VimbaCL.cti')
[docs]
class QVimbaXSource(QGenicamSource):
'''Threaded video source backed by :class:`QVimbaXCamera`.
Parameters
----------
camera : QVimbaXCamera or None
Camera instance to wrap. If ``None``, a new
:class:`QVimbaXCamera` is created from ``cameraID``.
cameraID : int
Index of the camera to open. Used only when *camera* is ``None``.
Default: ``0``.
'''
def __init__(self, camera: QVimbaXCamera | None = None,
cameraID: int = 0) -> None:
camera = camera or QVimbaXCamera(cameraID=cameraID)
super().__init__(camera)
if __name__ == '__main__': # pragma: no cover
QVimbaXCamera.example()