CVB++ 14.0
Cvb::Driver Namespace Reference

Namespace for driver or device related operations. More...

Classes

class  CompositeStream
 Streams composites. More...
 
class  CompositeStreamBase
 Base class of all composite based streams. More...
 
class  DeviceControl
 Implementation of the device control interface. More...
 
class  DeviceControlCommand
 A specific command to send to the driver. More...
 
class  DeviceImage
 Special device image. More...
 
class  DigitalIO
 Digital I/O operations on a device. More...
 
class  DiscoveryInformation
 Stores information on a discovered device/node. More...
 
class  EmuDevice
 A device representing an image stream based on single image files. More...
 
struct  Flow
 Struct handling the size and buffer of a flow. More...
 
struct  FlowInfo
 Struct handling the size, alignment and number of flows per set. More...
 
class  FlowSetPool
 FlowSetPool class to set external buffers as set of flows. More...
 
class  GenICamDevice
 A device representing a GenICam compliant device. More...
 
class  ImageRect
 Image rectangle operations on a device. More...
 
class  ImageStream
 Streams images. More...
 
class  IndexedStream
 A stream with a finite number of images, which can also be accessed via an index. More...
 
class  MultiPartImage
 MultiPart image class. More...
 
class  NotifyArgs
 Event argument for notification events. More...
 
class  NotifyObservable
 Single notify event observable. More...
 
class  PointCloudStream
 Streams point clouds. More...
 
class  RingBuffer
 Ring buffer operations on a device. More...
 
class  RingBufferImage
 Stream image that is returned, when the ring buffer interface is available on a device. More...
 
class  SoftwareTrigger
 Implementation of the software trigger. More...
 
class  Stream
 Represents one acquisition stream of a device. More...
 
class  StreamBase
 Base class of all streams. More...
 
class  StreamImage
 Base class of all stream related images. More...
 
class  VideoDevice
 A device representing a video stream from the hard disk. More...
 
class  VinConnectionInformation
 Contains the board and port information of a device or its access token. More...
 
class  VinDevice
 A device representing a video interface driver (vin). More...
 
class  WaitResult
 A combined result returned after waiting for a image. More...
 

Typedefs

using FlowSetPoolPtr = std::shared_ptr< FlowSetPool >
 Convenience shared pointer for FlowSetPool.
 
using DeviceControlPtr = std::shared_ptr< DeviceControl >
 Convenience shared pointer for DeviceControl.
 
using RingBufferPtr = std::shared_ptr< RingBuffer >
 Convenience shared pointer for RingBuffer.
 
using DigitalIOPtr = std::shared_ptr< DigitalIO >
 Convenience shared pointer for DigitalIO.
 
using SoftwareTriggerPtr = std::shared_ptr< SoftwareTrigger >
 Convenience shared pointer for SoftwareTrigger.
 
using NotifyObservablePtr = std::shared_ptr< NotifyObservable >
 Convenience shared pointer for NotifyObservable.
 
using ImageRectPtr = std::shared_ptr< ImageRect >
 Convenience shared pointer for SoftwareTrigger.
 
using DeviceImagePtr = std::shared_ptr< DeviceImage >
 Convenience shared pointer for DeviceImage.
 
using VinDevicePtr = std::shared_ptr< VinDevice >
 Convenience shared pointer for VinDevice.
 
using VideoDevicePtr = std::shared_ptr< VideoDevice >
 Convenience shared pointer for VideoDevice.
 
using EmuDevicePtr = std::shared_ptr< EmuDevice >
 Convenience shared pointer for EmuDevice.
 
using NonStreamingDevicePtr = std::shared_ptr< NonStreamingDevice >
 Convenience shared pointer for NonStreamingDevice.
 
using GenICamDevicePtr = std::shared_ptr< GenICamDevice >
 Convenience shared pointer for GenICamDevice.
 
using RingBufferImagePtr = std::shared_ptr< RingBufferImage >
 Convenience shared pointer for RingBufferImage.
 
using StreamImagePtr = std::shared_ptr< StreamImage >
 Convenience shared pointer for StreamImage.
 
using MultiPartImagePtr = std::shared_ptr< MultiPartImage >
 Convenience shared pointer for StreamImage.
 
using BufferImagePtr = std::shared_ptr< BufferImage >
 Convenience shared pointer for BufferImage.
 
using StreamPtr = std::shared_ptr< Stream >
 Convenience shared pointer for Stream.
 
using IndexedStreamPtr = std::shared_ptr< IndexedStream >
 Convenience shared pointer for IndexedStream.
 
using StreamBasePtr = std::shared_ptr< StreamBase >
 Convenience shared pointer for StreamBase.
 
using CompositeStreamBasePtr = std::shared_ptr< CompositeStreamBase >
 Convenience shared pointer for CompositeStreamBase.
 
using ImageStreamPtr = std::shared_ptr< ImageStream >
 Convenience shared pointer for ImageStream.
 
using CompositeStreamPtr = std::shared_ptr< CompositeStream >
 Convenience shared pointer for CompositeStream.
 
using PointCloudStreamPtr = std::shared_ptr< PointCloudStream >
 Convenience shared pointer for PointCloudStream.
 
using VideoImagePtr = std::shared_ptr< VideoImage >
 Convenience shared pointer for VideoImage.
 
using EmuImagePtr = std::shared_ptr< EmuImage >
 Convenience shared pointer for EmuImage.
 
using VinImagePtr = std::shared_ptr< VinImage >
 Convenience shared pointer for VinImage.
 
template<class T >
using WaitResultTuple = std::tuple< std::shared_ptr< T >, WaitStatus, NodeMapEnumerator >
 Tuple holding multiple return values after waiting for a specific payload data.
 

Enumerations

enum class  DiscoveryProperties {
  InterfaceSubNetList = CExports::DO_DISCOVER_INFO_INTERFACE_NET_LIST , InterfaceMac = CExports::DO_DISCOVER_INFO_INTERFACE_NET_MAC , InterfaceTLType = CExports::DO_DISCOVER_INFO_INTERFACE_TLTYPE , InterfaceDisplayName = CExports::DO_DISCOVER_INFO_INTERFACE_DISPLAYNAME ,
  InterfaceDriverType = CExports::DO_DISCOVER_INFO_INTERFACE_DRIVERTYPE , InterfaceId = CExports::DO_DISCOVER_INFO_INTERFACE_ID , DeviceTransportLayerType = CExports::DO_DISCOVER_INFO_DEVICE_TLTYPE , DeviceUsername = CExports::DO_DISCOVER_INFO_DEVICE_USERNAME ,
  DeviceSerialNumber = CExports::DO_DISCOVER_INFO_DEVICE_SERIALNUMBER , DeviceMac = CExports::DO_DISCOVER_INFO_DEVICE_NET_MAC , DeviceIP = CExports::DO_DISCOVER_INFO_DEVICE_NET_IP , DeviceSubnetMask = CExports::DO_DISCOVER_INFO_DEVICE_NET_SUBNETMASK ,
  DeviceUsbVendorId = CExports::DO_DISCOVER_INFO_DEVICE_USB_VID , DeviceUsbProductId = CExports::DO_DISCOVER_INFO_DEVICE_USB_PID , DeviceVendor = CExports::DO_DISCOVER_INFO_DEVICE_VENDOR , DeviceModel = CExports::DO_DISCOVER_INFO_DEVICE_MODEL ,
  DeviceId = CExports::DO_DISCOVER_INFO_DEVICE_ID , DeviceAccessStatus = CExports::DO_DISCOVER_INFO_DEVICE_ACCESS_STATUS , TransportLayerId = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_ID , TransportLayerPath = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_PATH ,
  TransportLayerVendor = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_VENDOR , UsbPortPath = CExports::DO_DISCOVER_INFO_DEVICE_USB_PORT_PATH
}
 Properties which can be queried from a DiscoveryInformation entry. More...
 
enum class  AcquisitionStack { Vin , PreferVin , GenTL , PreferGenTL }
 Defines the acquisition stack when opening the device. More...
 
enum class  DiscoverFlags : std::uint64_t {
  FindAll = 0 , IncludeEmpty = 1 , IncludeInaccessible = 1 << 12 , UpToLevelSystem = 1 << 1 ,
  UpToLevelVin = 2 << 1 , UpToLevelTL = 3 << 1 , UpToLevelInterface = 4 << 1 , UpToLevelDevice = 5 << 1 ,
  UpToLevelStream = 6 << 1 , IgnoreVins = 1 << 8 , IgnoreTLs = 1 << 9 , IgnoreGevSD = 1 << 10 ,
  IgnoreGevFD = 1 << 11
}
 Flags controlling the discovery process. More...
 
enum class  ModuleLayer {
  Unknown = CExports::DO_AT_LEVEL_UNKNOWN , System = CExports::DO_AT_LEVEL_SYSTEM , Vin = CExports::DO_AT_LEVEL_VIN , TransportLayerSystem = CExports::DO_AT_LEVEL_TLSYSTEM ,
  TransportLayerInterface = CExports::DO_AT_LEVEL_TLIFACE , TransportLayerDevice = CExports::DO_AT_LEVEL_TLDEVICE , TransportLayerStream = CExports::DO_AT_LEVEL_TLSTREAM
}
 Level of an access token entry. More...
 
enum class  NotifyDataType {
  Void = CExports::CVNO_DATA_VOID , Int64 = CExports::CVNO_DATA_INTEGER64 , Float64 = CExports::CVNO_DATA_FLOAT64 , String = CExports::CVNO_DATA_STRING ,
  Binary = CExports::CVNO_DATA_BINARY , Boolean = CExports::CVNO_DATA_BOOL8
}
 Data type delivered by the event. More...
 
enum class  DeviceState { DeviceDisconnected = 2 , DeviceReconnect = 3 , DeviceImageGeometryChanged = 4 , NewMetaData = 5 }
 States the device can be in. More...
 
enum class  RingBufferLockMode { Auto = CExports::RINGBUFFER_LOCKMODE_AUTO , Off = CExports::RINGBUFFER_LOCKMODE_OFF , On = CExports::RINGBUFFER_LOCKMODE_ON }
 Lock mode options for the ring buffer. More...
 
enum class  PlaybackMode { FrameByFrame , Stream }
 Defines how frames are acquired by this video device. More...
 
enum class  AcquisitionInterface { Grabber , Grab2 , GenTL }
 Known acquisition CVB interfaces. More...
 
enum class  StreamInfo {
  IsCameraDetected = CExports::GRAB_INFO_CAMERA_DETECTED , NumBuffersAcquired = CExports::GRAB_INFO_NUMBER_IMAGES_AQCUIRED , NumBuffersDelivered = CExports::G2INFO_NumBuffersDelivered , NumBuffersLost = CExports::G2INFO_NumBuffersLost ,
  NumBuffersLostTransfer = CExports::GRAB_INFO_NUMBER_IMAGES_LOST , NumBuffersLostLocked = CExports::GRAB_INFO_NUMBER_IMAGES_LOST_LOCKED , NumBuffersLocked = CExports::GRAB_INFO_NUMBER_IMAGES_LOCKED , NumBuffersPending = CExports::GRAB_INFO_NUMBER_IMAGES_PENDIG ,
  NumBuffersCorruptOnArrival = CExports::G2INFO_NumBuffersCorrupt , NumBuffersCorruptOnDelivery = CExports::G2INFO_NumBuffersCorruptOnDelivery , NumTriggersLost = CExports::GRAB_INFO_NUMBER_TRIGGERS_LOST , NumBuffersAnnounced = CExports::G2INFO_NumBuffersAnnounced ,
  NumBuffersQueued = CExports::G2INFO_NumBuffersQueued , NumBuffersBeingFilled = CExports::G2INFO_NumBuffersInIncompleteList , NumPacketsReceived = CExports::G2INFO_NumPacketsReceived , NumResends = CExports::G2INFO_NumResends
}
 Queryable stream information. More...
 
enum class  DeviceControlOperation {
  Get = CExports::DC_GET , Set = CExports::DC_SET , GetMinimum = CExports::DC_GETMIN , GetMaxiumum = CExports::DC_GETMAX ,
  Verify = CExports::DC_VERIFY
}
 Operation on driver specific parameter. More...
 
enum class  AcquisitionState { Started , Stopping , AbortingStop , Stopped }
 Specifies current state of the acquisition engine. More...
 

Detailed Description

Namespace for driver or device related operations.

Remarks
CMake users: Link to imported target CVB::CvbDriver

Enumeration Type Documentation

◆ AcquisitionInterface

enum class AcquisitionInterface
strong

Known acquisition CVB interfaces.

Enumerator
Grabber 

Basic grabber interface for single image acquisition.

Grab2 

Ring buffer / queue based acquisition.

GenTL 

Flow set pool / queue based acquition for TL based techologies.

◆ AcquisitionStack

enum class AcquisitionStack
strong

Defines the acquisition stack when opening the device.

Enumerator
Vin 

Use Vin acquisition stack or fail.

PreferVin 

Prefer to load the Vin acquisition stack. If the Vin stack cannot be loaded try opening the non-streamable device interface before failing.

GenTL 

Use GenTL acquisition stack or fail.

PreferGenTL 

Prefer the GenTL acquisition stack. If the GenTL stack cannot be loaded first try opening the Vin stack then try opening the non-streamable device interface before failing.

◆ AcquisitionState

enum class AcquisitionState
strong

Specifies current state of the acquisition engine.

Enumerator
Started 

The engine is started.

Stopping 

The engine is in the process of stopping.

AbortingStop 

The engine is aborting an ongoing stop.

Stopped 

The engine is stopped.

◆ DeviceControlOperation

enum class DeviceControlOperation
strong

Operation on driver specific parameter.

Enumerator
Get 

Get information from the device.

Set 

Set information in the device.

GetMinimum 

Gets the minimal supported value for the parameter.

GetMaxiumum 

Gets the maximal supported value for the parameter.

Verify 

Verify the given value for the parameter.

◆ DeviceState

enum class DeviceState
strong

States the device can be in.

Enumerator
DeviceDisconnected 

Device was disconnected (communication lost).

DeviceReconnect 

Device was reconnected (communication regained).

DeviceImageGeometryChanged 

Device width, height, plane number and/or data type changed.

NewMetaData 

New meta data arrived.

◆ DiscoverFlags

enum class DiscoverFlags : std::uint64_t
strong

Flags controlling the discovery process.

These values can be OR combined.

Enumerator
FindAll 

Default flags to find all devices and vin-drivers.

IncludeEmpty 

Include also nodes which have no children.

You can use this for example to list all interfaces even if no devices are found on them.

IncludeInaccessible 

Normally inaccessible devices are filtered out : this flag includes them.

UpToLevelSystem 

Limit discovery depth to system level(factory).

UpToLevelVin 

Limit discovery depth to vin-driver level.

UpToLevelTL 

Limit discovery depth to transport library level.

UpToLevelInterface 

Limit discovery depth to interface library level.

UpToLevelDevice 

Limit discovery depth to device level.

UpToLevelStream 

Limit discovery depth to stream level.

IgnoreVins 

Ignore vin-drivers in discovery.

IgnoreTLs 

Ignore GenTL producers in discovery.

IgnoreGevSD 

Ignore socket driver for GEVTL GenTL Producer.

IgnoreGevFD 

Ignore filter driver for GEVTL GenTL Producer.

◆ DiscoveryProperties

enum class DiscoveryProperties
strong

Properties which can be queried from a DiscoveryInformation entry.

Enumerator
InterfaceSubNetList 

Ethernet interface only: subnet list.

The list contains space separated IP/subnet mask pairs.

InterfaceMac 

Ethernet interface only: MAC address.

InterfaceTLType 

Interface only: GenTL transport layer type.

Content as per GenICam GenTL specification (www.GenICam.org).

InterfaceDisplayName 

Interface only: Human readable name of the interface.

InterfaceDriverType 

Interface only: for STEMMER IMAGING GEVTL type.

Possible values are "SOCKET", "FILTER", "NA" (not applicable),"UNKNOWN".

InterfaceId 

Interface only: GenTL identifier of the interface.

DeviceTransportLayerType 

Device only : GenTL transport layer type.

Content as per GenICam GenTL specification (www.GenICam.org).

DeviceUsername 

Device only : User configured name.

DeviceSerialNumber 

Device only : Serial number.

DeviceMac 

Ethernet device only : MAC address.

DeviceIP 

Ethernet device only : IP address.

DeviceSubnetMask 

Ethernet device only : Subnet mask.

DeviceUsbVendorId 

USB device only: USB vendor identifier.

DeviceUsbProductId 

USB device only : USB product identifier.

DeviceVendor 

Device only : Vendor name.

DeviceModel 

Device only : Model name.

DeviceId 

Device only : GenTL identifier of the interface.

DeviceAccessStatus 

Device only : accessibility status.

Possible values are "READWRITE", "READONLY", "NOACCESS", "UNKNOWN" (for non-STEMMER GenTL Producers).

TransportLayerId 

Unique identifier of the GenTL Producer.

TransportLayerPath 

File path of the CTI file(GenTL Producer library).

TransportLayerVendor 

Vendor name of the GenTL Producer.

UsbPortPath 

Port path of USB device.

◆ ModuleLayer

enum class ModuleLayer
strong

Level of an access token entry.

Enumerator
Unknown 

Invalid or not filled yet.

System 

Discovery system module (root).

Vin 

Module vin-driver.

TransportLayerSystem 

GenTL Producer system module.

TransportLayerInterface 

GenTL Producer interface module.

TransportLayerDevice 

GenTL Producer device module.

TransportLayerStream 

GenTL Producer stream module.

◆ NotifyDataType

enum class NotifyDataType
strong

Data type delivered by the event.

Enumerator
Void 

No data.

Int64 

64 bit integer.

Float64 

Double value.

String 

String value.

Binary 

Byte array.

Boolean 

Boolean node.

◆ PlaybackMode

enum class PlaybackMode
strong

Defines how frames are acquired by this video device.

Enumerator
FrameByFrame 

The Stream::Wait() method always returns the next image in the video stream.

Stream 

The Stream::Wait() method syncs to the videos playback rate. That means if you call this method faster than the frame time the call will block. But on the other hand if you are slower than the frame time you will eventually drop images.

◆ RingBufferLockMode

enum class RingBufferLockMode
strong

Lock mode options for the ring buffer.

Enumerator
Auto 

Buffer is automatically unlocked while streaming.

Traditional CVB behavior when you are using any of the acquisition interfaces.

Off 

Buffers are not locked at all.

Images are simply written in the ring buffer and overwrite existing image data.

On 

Buffer is locked after acquisition.

Has to be manually unlocked via RingBufferImage::Unlock() method. If all buffers are locked the system looses images.

◆ StreamInfo

enum class StreamInfo
strong

Queryable stream information.

Attention
All streams only provide a sub-set of the available queries. So always make sure that the information is available when switching devices/drivers.
Enumerator
IsCameraDetected 

Returns whether a camera is currently detected.

The value is interpreted as a C boolean: everything except 0 is true.

This information depends on the camera / frame grabber technology. It can be the presence of a signal from e.g. a CameraLink camera or an active heartbeat signal from a GigE Vision device.

NumBuffersAcquired 

The number of images buffers acquired since start of the last acquisition start.

NumBuffersDelivered 

Number of image buffers successfully returned by the stream's wait method.

This counts both corrupt and complete image buffers. Corrupt images are only delivered if enabled by the driver (normally defaults to yes).

NumBuffersLost 

Count that incorporates all lost image buffers despite their reason. Can be transfer, corruption, or overflown ring buffer.

NumBuffersLostTransfer 

Count that only contains lost images during transfer.

NumBuffersLostLocked 

Count that only contains lost images due to ring buffer overflow.

NumBuffersLocked 

Number of images currently in locked state.

NumBuffersPending 

Number of images acquired, but not retrieved via the stream's wait method.

NumBuffersCorruptOnArrival 

Count that contains erroneous image buffer acquisition.

Packet resend can alleviate this problem and result in complete buffer to be delivered via the stream's wait method. But higher counts indicate a bad connection either due to transfer errors or to high throughput.

NumBuffersCorruptOnDelivery 

Count that contains erroneous image buffers delivered via the stream's wait method.

This count can only increase if corrupt images are delivered from the driver (default is yes). This means that either packet resend is disabled or packet resend could not complete the image buffer.

NumTriggersLost 

Gets how many trigger signals where ignored by the device due to e.g. over-triggering.

NumBuffersAnnounced 

Second 'NumAcquired exclusive lost' omitted (too confusing with first one).

Number of buffers used in the acquisition engine. This is the number of images in the ring buffer.

NumBuffersQueued 

Number of buffers available to be filled by the acquisition engine. I.e. image buffers that are not locked.

NumBuffersBeingFilled 

Number of buffer currently being filled by the acquisition engine.

NumPacketsReceived 

For packet based protocols this contains the actual number of packets received (parts of a whole image buffer).

NumResends 

Number of resend requests sent since start of the last acquisition.