10#include "../global.hpp"
11#include "../string.hpp"
12#include "../genapi/genapi.hpp"
75 class NonStreamingDevice;
147 enum class StreamType
166 explicit Flow(
size_t size = 0,
void *buffer =
nullptr)
166 explicit Flow(
size_t size = 0,
void *buffer =
nullptr) {
…}
177 inline StreamType StreamTypeFor() noexcept
181 "unsupported stream type");
182 return StreamType::Legacy;
186 inline StreamType StreamTypeFor<class Stream>() noexcept
188 return StreamType::Legacy;
192 inline StreamType StreamTypeFor<CompositeStream>() noexcept
194 return StreamType::Composite;
198 inline StreamType StreamTypeFor<ImageStream>() noexcept
200 return StreamType::Image;
204 inline StreamType StreamTypeFor<PointCloudStream>() noexcept
206 return StreamType::PointCloud;
251 DeviceIP = CExports::DO_DISCOVER_INFO_DEVICE_NET_IP,
334 IncludeMockTL = 1 << 13
345 Vin = CExports::DO_AT_LEVEL_VIN,
360 Void = CExports::CVNO_DATA_VOID,
362 Int64 = CExports::CVNO_DATA_INTEGER64,
406 Auto = CExports::RINGBUFFER_LOCKMODE_AUTO,
416 On = CExports::RINGBUFFER_LOCKMODE_ON
584 _TypeUndefinedPart = 0x0000,
585 _TypeGenericPartMetadata = 0x4000 + 0x0000,
586 _TypeGenericPart1D = 0x4000 + 0x0100,
587 _TypeGenericPart2D = 0x4000 + 0x0200,
596 Type1D = _TypeGenericPart1D + 0x00,
694 ConstraintSet1 = 1 << 1,
695 ConstraintSet2 = 1 << 2,
696 ConstraintSet3 = 1 << 3,
703 PacketizationModeNonInterleaved = 1 << 4,
704 PacketizationModeInterleaved = 1 << 5,
806 using Driver::VinImage;
Base class of all composite based streams.
Definition decl_composite_stream_base.hpp:31
Streams composites.
Definition composite_stream.hpp:19
Implementation of the device control interface.
Definition decl_device_control.hpp:92
Special device image.
Definition decl_device_image.hpp:24
Digital I/O operations on a device.
Definition decl_digital_io.hpp:19
A device representing an image stream based on single image files.
Definition decl_emu_device.hpp:27
FlowSetPool class to set external buffers as set of flows.
Definition flow_set_pool.hpp:65
Class for a GenDC container descriptor.
Definition decl_gendc_descriptor.hpp:692
A device representing a GenICam compliant device.
Definition decl_genicam_device.hpp:19
Image rectangle operations on a device.
Definition decl_image_rect.hpp:18
Streams images.
Definition image_stream.hpp:19
A stream with a finite number of images, which can also be accessed via an index.
Definition decl_indexed_stream.hpp:20
MultiPart image class.
Definition multi_part_image.hpp:23
Single notify event observable.
Definition decl_notify_observable.hpp:118
Streams point clouds.
Definition point_cloud_stream.hpp:19
Ring buffer operations on a device.
Definition decl_ring_buffer.hpp:18
Stream image that is returned, when the ring buffer interface is available on a device.
Definition decl_ring_buffer_image.hpp:24
Implementation of the software trigger.
Definition decl_software_trigger.hpp:16
Base class of all streams.
Definition stream_base.hpp:19
Represents one acquisition stream of a device.
Definition decl_stream.hpp:33
Base class of all stream related images.
Definition stream_image.hpp:32
A device representing a video stream from the hard disk.
Definition decl_video_device.hpp:27
A device representing a video interface driver (vin).
Definition decl_vin_device.hpp:30
Lazy enumeration of node maps.
Definition node_map_enumerator.hpp:30
Namespace with constant strings for NodeMapIDs.
Definition driver.hpp:555
static const Cvb::String Factory
The name of the node map that gives access to CVB's GenTL enumeration.
Definition driver.hpp:559
static const Cvb::String VinBuffer
The name of the node map that represents the video interface driver buffer.
Definition driver.hpp:572
static const Cvb::String VinDevice
The name of the node map that represents the video interface driver.
Definition driver.hpp:570
static const Cvb::String TLDevice
The name of the node map that gives access to the GenTL's side of the device (the proxy).
Definition driver.hpp:566
static const Cvb::String Device
The name of the node map that represents the remote device, i.e. camera.
Definition driver.hpp:557
static const Cvb::String Interface
Definition driver.hpp:564
static const Cvb::String System
The name of the node map that gives access to the GenTL system (the TL itself) of the currently opene...
Definition driver.hpp:561
static const Cvb::String DataStream
The name of the node map that gives access to the GenTL streaming interface (grab/acquisition).
Definition driver.hpp:568
Namespace for driver or device related operations.
Definition decl_composite.hpp:28
ComponentId
Component type identifier,.
Definition driver.hpp:609
@ Scatter
Scatter component.
Definition driver.hpp:623
@ Ultraviolet
Ultraviolet component.
Definition driver.hpp:615
@ Disparity
Disparity component.
Definition driver.hpp:625
@ Multispectral
Multispectral component.
Definition driver.hpp:627
@ DeviceSpecific
Start number for device specific component ids.
Definition driver.hpp:633
@ Intensity
Intensity component.
Definition driver.hpp:611
@ Range
Range component.
Definition driver.hpp:617
@ Confidence
Confidence component.
Definition driver.hpp:621
@ Reflectance
Reflectance component.
Definition driver.hpp:619
@ Metadata
Metadata component.
Definition driver.hpp:629
@ Infrared
Infrared component.
Definition driver.hpp:613
@ Undefined
Undefined component id.
Definition driver.hpp:636
DeviceState
States the device can be in.
Definition driver.hpp:375
@ DeviceReconnect
Device was reconnected (communication regained).
Definition driver.hpp:379
@ DeviceImageGeometryChanged
Device width, height, plane number and/or data type changed.
Definition driver.hpp:381
@ NewMetaData
New meta data arrived.
Definition driver.hpp:383
@ DeviceDisconnected
Device was disconnected (communication lost).
Definition driver.hpp:377
DeviceControlOperation
Operation on driver specific parameter.
Definition driver.hpp:526
@ GetMinimum
Gets the minimal supported value for the parameter.
Definition driver.hpp:532
@ GetMaxiumum
Gets the maximal supported value for the parameter.
Definition driver.hpp:534
@ Verify
Verify the given value for the parameter.
Definition driver.hpp:536
@ Set
Set information in the device.
Definition driver.hpp:530
@ Get
Get information from the device.
Definition driver.hpp:528
std::shared_ptr< GenICamDevice > GenICamDevicePtr
Convenience shared pointer for GenICamDevice.
Definition driver.hpp:85
std::shared_ptr< IndexedStream > IndexedStreamPtr
Convenience shared pointer for IndexedStream.
Definition driver.hpp:109
std::shared_ptr< VideoDevice > VideoDevicePtr
Convenience shared pointer for VideoDevice.
Definition driver.hpp:69
std::shared_ptr< DeviceControl > DeviceControlPtr
Convenience shared pointer for DeviceControl.
Definition driver.hpp:37
GenDcDescriptorVariableField
Flags specifying which type of data information might vary during the Container reception.
Definition driver.hpp:652
@ SizeY
If True, the SizeY and PaddingY of the Components' Parts might change.
Definition driver.hpp:658
@ ComponentCount
If True, some Components might not be transmitted. The omitted Components must be the last ones.
Definition driver.hpp:666
@ Format
If True, the Components' Format might change. This bit can only be set in a prefetch Descriptor.
Definition driver.hpp:662
@ DataSize
If True, the DataSize of the Components' Parts might become smaller.
Definition driver.hpp:654
@ Timestamp
If True, the Timestamp of the Components might change.
Definition driver.hpp:664
@ RegionOffset
If True, the RegionOffsetX and RegionOffsetY of the Components might change.
Definition driver.hpp:660
@ SizeX
If True, the SizeX and PaddingX of the Components' Parts might change.
Definition driver.hpp:656
PlaybackMode
Defines how frames are acquired by this video device.
Definition driver.hpp:421
@ FrameByFrame
The Stream::Wait() method always returns the next image in the video stream.
Definition driver.hpp:423
std::shared_ptr< BufferImage > BufferImagePtr
Convenience shared pointer for BufferImage.
Definition driver.hpp:101
H264Flags
Flags specifying the characteristics and format of the H.264 Part.
Definition driver.hpp:690
@ PacketizationModeNAL
Definition driver.hpp:702
@ ConstraintSet0
Definition driver.hpp:693
AcquisitionStack
Defines the acquisition stack when opening the device.
Definition driver.hpp:282
@ PreferGenTL
Definition driver.hpp:294
@ GenTL
Use GenTL acquisition stack or fail.
Definition driver.hpp:290
@ PreferVin
Definition driver.hpp:288
@ Vin
Use Vin acquisition stack or fail.
Definition driver.hpp:284
RingBufferLockMode
Lock mode options for the ring buffer.
Definition driver.hpp:400
@ Auto
Definition driver.hpp:406
@ On
Definition driver.hpp:416
GenDCPartType
Part Type Header format identifier,.
Definition driver.hpp:581
@ TypeMetadataGenICamXML
GenICam Metadata XML.
Definition driver.hpp:594
@ TypeJPEG
JPEG compressed Image.
Definition driver.hpp:600
@ Type2D
Rectangular uncompressed image (monochrome or none planar color).
Definition driver.hpp:598
@ TypeMetadataGenICamChunk
GenICam Chunk Metadata.
Definition driver.hpp:592
@ TypeH264
H.264 compressed Image.
Definition driver.hpp:604
@ TypeJPEG2000
JPEG 2000 compressed Image.
Definition driver.hpp:602
std::shared_ptr< CompositeStream > CompositeStreamPtr
Convenience shared pointer for CompositeStream.
Definition driver.hpp:125
std::shared_ptr< StreamImage > StreamImagePtr
Convenience shared pointer for StreamImage.
Definition driver.hpp:93
std::shared_ptr< Stream > StreamPtr
Convenience shared pointer for Stream.
Definition driver.hpp:105
std::shared_ptr< ImageRect > ImageRectPtr
Convenience shared pointer for SoftwareTrigger.
Definition driver.hpp:57
std::shared_ptr< NonStreamingDevice > NonStreamingDevicePtr
Convenience shared pointer for NonStreamingDevice.
Definition driver.hpp:77
std::shared_ptr< PointCloudStream > PointCloudStreamPtr
Convenience shared pointer for PointCloudStream.
Definition driver.hpp:129
std::shared_ptr< VideoImage > VideoImagePtr
Convenience shared pointer for VideoImage.
Definition driver.hpp:133
std::shared_ptr< NotifyObservable > NotifyObservablePtr
Convenience shared pointer for NotifyObservable.
Definition driver.hpp:53
std::shared_ptr< DigitalIO > DigitalIOPtr
Convenience shared pointer for DigitalIO.
Definition driver.hpp:45
std::shared_ptr< EmuDevice > EmuDevicePtr
Convenience shared pointer for EmuDevice.
Definition driver.hpp:73
ModuleLayer
Level of an access token entry.
Definition driver.hpp:339
@ TransportLayerStream
GenTL Producer stream module.
Definition driver.hpp:353
@ TransportLayerSystem
GenTL Producer system module.
Definition driver.hpp:347
@ TransportLayerDevice
GenTL Producer device module.
Definition driver.hpp:351
@ Unknown
Invalid or not filled yet.
Definition driver.hpp:341
@ System
Discovery system module (root).
Definition driver.hpp:343
@ TransportLayerInterface
GenTL Producer interface module.
Definition driver.hpp:349
std::shared_ptr< MultiPartImage > MultiPartImagePtr
Convenience shared pointer for StreamImage.
Definition driver.hpp:97
GenDcDescriptorFlag
Flags specifying the characteristics and format of the Container.
Definition driver.hpp:641
@ TimestampPTP
Definition driver.hpp:644
@ ComponentInvalid
Definition driver.hpp:647
DiscoveryProperties
Properties which can be queried from a DiscoveryInformation entry.
Definition driver.hpp:213
@ TransportLayerPath
File path of the CTI file(GenTL Producer library).
Definition driver.hpp:273
@ TransportLayerVendor
Vendor name of the GenTL Producer.
Definition driver.hpp:275
@ DeviceSerialNumber
Device only : Serial number.
Definition driver.hpp:247
@ DeviceTransportLayerType
Definition driver.hpp:243
@ DeviceAccessStatus
Definition driver.hpp:269
@ DeviceIP
Ethernet device only : IP address.
Definition driver.hpp:251
@ DeviceMac
Ethernet device only : MAC address.
Definition driver.hpp:249
@ DeviceSubnetMask
Ethernet device only : Subnet mask.
Definition driver.hpp:253
@ DeviceModel
Device only : Model name.
Definition driver.hpp:261
@ DeviceUsbProductId
USB device only : USB product identifier.
Definition driver.hpp:257
@ InterfaceMac
Ethernet interface only: MAC address.
Definition driver.hpp:221
@ InterfaceSubNetList
Definition driver.hpp:219
@ UsbPortPath
Port path of USB device.
Definition driver.hpp:277
@ DeviceUsername
Device only : User configured name.
Definition driver.hpp:245
@ InterfaceDriverType
Definition driver.hpp:235
@ InterfaceDisplayName
Interface only: Human readable name of the interface.
Definition driver.hpp:229
@ DeviceUsbVendorId
USB device only: USB vendor identifier.
Definition driver.hpp:255
@ DeviceId
Device only : GenTL identifier of the interface.
Definition driver.hpp:263
@ DeviceVendor
Device only : Vendor name.
Definition driver.hpp:259
@ InterfaceId
Interface only: GenTL identifier of the interface.
Definition driver.hpp:237
@ InterfaceTLType
Definition driver.hpp:227
@ TransportLayerId
Unique identifier of the GenTL Producer.
Definition driver.hpp:271
std::shared_ptr< ImageStream > ImageStreamPtr
Convenience shared pointer for ImageStream.
Definition driver.hpp:121
std::shared_ptr< CompositeStreamBase > CompositeStreamBasePtr
Convenience shared pointer for CompositeStreamBase.
Definition driver.hpp:117
std::shared_ptr< FlowSetPool > FlowSetPoolPtr
Convenience shared pointer for FlowSetPool.
Definition driver.hpp:33
std::unique_ptr< GenDcDescriptor > GenDcDescriptorPtr
Convenience shared pointer for GenDcDescriptor.
Definition driver.hpp:81
NotifyDataType
Data type delivered by the event.
Definition driver.hpp:358
@ String
String value.
Definition driver.hpp:366
@ Boolean
Boolean node.
Definition driver.hpp:370
@ Binary
Byte array.
Definition driver.hpp:368
@ Void
No data.
Definition driver.hpp:360
@ Float64
Double value.
Definition driver.hpp:364
@ Int64
64 bit integer.
Definition driver.hpp:362
std::shared_ptr< SoftwareTrigger > SoftwareTriggerPtr
Convenience shared pointer for SoftwareTrigger.
Definition driver.hpp:49
StreamInfo
Queryable stream information.
Definition driver.hpp:451
@ NumBuffersCorruptOnArrival
Definition driver.hpp:492
@ NumBuffersLostTransfer
Count that only contains lost images during transfer.
Definition driver.hpp:477
@ NumBuffersLost
Definition driver.hpp:475
@ NumBuffersAnnounced
Definition driver.hpp:509
@ NumPacketsReceived
Definition driver.hpp:519
@ NumBuffersCorruptOnDelivery
Definition driver.hpp:500
@ NumBuffersAcquired
The number of images buffers acquired since start of the last acquisition start.
Definition driver.hpp:463
@ NumBuffersPending
Number of images acquired, but not retrieved via the stream's wait method.
Definition driver.hpp:483
@ NumBuffersQueued
Definition driver.hpp:514
@ NumBuffersDelivered
Definition driver.hpp:470
@ NumBuffersLostLocked
Count that only contains lost images due to ring buffer overflow.
Definition driver.hpp:479
@ NumBuffersBeingFilled
Number of buffer currently being filled by the acquisition engine.
Definition driver.hpp:516
@ NumResends
Number of resend requests sent since start of the last acquisition.
Definition driver.hpp:521
@ NumTriggersLost
Gets how many trigger signals where ignored by the device due to e.g. over-triggering.
Definition driver.hpp:502
@ NumBuffersLocked
Number of images currently in locked state.
Definition driver.hpp:481
@ IsCameraDetected
Definition driver.hpp:461
GenDcPartFlags
Flags specifying the characteristics and format of the Part.
Definition driver.hpp:681
@ Chunk
The Part XML data can be used for GenICam Chunk data Part decoding.
Definition driver.hpp:685
@ Zip
The Part XML Data is zipped (compressed) according the Zip format used for GenICam XML.
Definition driver.hpp:683
std::shared_ptr< DeviceImage > DeviceImagePtr
Convenience shared pointer for DeviceImage.
Definition driver.hpp:61
std::shared_ptr< EmuImage > EmuImagePtr
Convenience shared pointer for EmuImage.
Definition driver.hpp:137
GenDcComponentFlags
Flags specifying the characteristics and format of the Component.
Definition driver.hpp:673
@ Invalid
Definition driver.hpp:676
DiscoverFlags
Flags controlling the discovery process.
Definition driver.hpp:302
@ IgnoreVins
Ignore vin-drivers in discovery.
Definition driver.hpp:326
@ UpToLevelTL
Limit discovery depth to transport library level.
Definition driver.hpp:318
@ UpToLevelInterface
Limit discovery depth to interface library level.
Definition driver.hpp:320
@ UpToLevelVin
Limit discovery depth to vin-driver level.
Definition driver.hpp:316
@ UpToLevelStream
Limit discovery depth to stream level.
Definition driver.hpp:324
@ UpToLevelDevice
Limit discovery depth to device level.
Definition driver.hpp:322
@ UpToLevelSystem
Limit discovery depth to system level(factory).
Definition driver.hpp:314
@ IgnoreGevFD
Ignore filter driver for GEVTL GenTL Producer.
Definition driver.hpp:332
@ IgnoreTLs
Ignore GenTL producers in discovery.
Definition driver.hpp:328
@ IgnoreGevSD
Ignore socket driver for GEVTL GenTL Producer.
Definition driver.hpp:330
@ FindAll
Default flags to find all devices and vin-drivers.
Definition driver.hpp:304
@ IncludeInaccessible
Normally inaccessible devices are filtered out : this flag includes them.
Definition driver.hpp:312
@ IncludeEmpty
Definition driver.hpp:310
std::shared_ptr< VinImage > VinImagePtr
Convenience shared pointer for VinImage.
Definition driver.hpp:141
std::shared_ptr< RingBufferImage > RingBufferImagePtr
Convenience shared pointer for RingBufferImage.
Definition driver.hpp:89
std::shared_ptr< StreamBase > StreamBasePtr
Convenience shared pointer for StreamBase.
Definition driver.hpp:113
AcquisitionState
Specifies current state of the acquisition engine.
Definition driver.hpp:542
@ Stopping
The engine is in the process of stopping.
Definition driver.hpp:546
@ Started
The engine is started.
Definition driver.hpp:544
@ Stopped
The engine is stopped.
Definition driver.hpp:550
@ AbortingStop
The engine is aborting an ongoing stop.
Definition driver.hpp:548
std::shared_ptr< VinDevice > VinDevicePtr
Convenience shared pointer for VinDevice.
Definition driver.hpp:65
std::tuple< std::shared_ptr< T >, WaitStatus, NodeMapEnumerator > WaitResultTuple
Tuple holding multiple return values after waiting for a specific payload data.
Definition driver.hpp:577
std::shared_ptr< RingBuffer > RingBufferPtr
Convenience shared pointer for RingBuffer.
Definition driver.hpp:41
AcquisitionInterface
Known acquisition CVB interfaces.
Definition driver.hpp:435
@ Grab2
Ring buffer / queue based acquisition.
Definition driver.hpp:439
@ Grabber
Basic grabber interface for single image acquisition.
Definition driver.hpp:437
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17
std::string String
String for wide characters or unicode characters.
Definition string.hpp:49
WaitStatus
Status after waiting for an image to be returned.
Definition global.hpp:396
@ Ok
Everything is fine, a new image arrived.
Definition global.hpp:398
Struct handling the size and buffer of a flow.
Definition driver.hpp:158
size_t Size
Flow size in bytes.
Definition driver.hpp:160
Flow(size_t size=0, void *buffer=nullptr)
Constructor.
Definition driver.hpp:166
void * Buffer
The buffer.
Definition driver.hpp:163
A combined result returned after waiting for a image.
Definition driver.hpp:391
WaitStatus Status
The status.
Definition driver.hpp:393
std::shared_ptr< T > Image
The returned image by wait if applicable cast to the provided type.
Definition driver.hpp:395