CVB++ 15.0
driver.hpp
1#pragma once
2
3#include <codecvt>
4#include <locale>
5#include <vector>
6#include <type_traits>
7#include <tuple>
8
9#include "../flag.hpp"
10#include "../global.hpp"
11#include "../string.hpp"
12#include "../genapi/genapi.hpp"
13
14namespace Cvb
15{
16
17 CVB_BEGIN_INLINE_NS
18
20
28 namespace Driver
29 {
30
31 class FlowSetPool;
34
35 class DeviceControl;
38
39 class RingBuffer;
42
43 class DigitalIO;
46
47 class SoftwareTrigger;
50
51 class NotifyObservable;
54
55 class ImageRect;
58
59 class DeviceImage;
62
63 class VinDevice;
66
67 class VideoDevice;
70
71 class EmuDevice;
74
75 class NonStreamingDevice;
78
79 class GenDcDescriptor;
82
83 class GenICamDevice;
86
87 class RingBufferImage;
90
91 class StreamImage;
94
95 class MultiPartImage;
98
99 class BufferImage;
102
103 class Stream;
106
107 class IndexedStream;
110
111 class StreamBase;
114
118
119 class ImageStream;
122
123 class CompositeStream;
126
127 class PointCloudStream;
130
131 class VideoImage;
134
135 class EmuImage;
138
139 class VinImage;
142
143 class FlowSetPool;
146
147 enum class StreamType
148 {
149 Legacy,
150 Composite,
151 Image,
152 PointCloud
153 };
154
156
157 struct Flow
158 {
160 size_t Size;
161
163 void *Buffer;
164
166 explicit Flow(size_t size = 0, void *buffer = nullptr)
167 : Size(size)
168 , Buffer(buffer)
169 {
170 }
171 };
172
173 namespace Private
174 {
175
176 template <class T>
177 inline StreamType StreamTypeFor() noexcept
178 {
181 "unsupported stream type");
182 return StreamType::Legacy;
183 }
184
185 template <>
186 inline StreamType StreamTypeFor<class Stream>() noexcept
187 {
188 return StreamType::Legacy;
189 }
190
191 template <>
192 inline StreamType StreamTypeFor<CompositeStream>() noexcept
193 {
194 return StreamType::Composite;
195 }
196
197 template <>
198 inline StreamType StreamTypeFor<ImageStream>() noexcept
199 {
200 return StreamType::Image;
201 }
202
203 template <>
204 inline StreamType StreamTypeFor<PointCloudStream>() noexcept
205 {
206 return StreamType::PointCloud;
207 }
208
209 } // namespace Private
210
213 {
219 InterfaceSubNetList = CExports::DO_DISCOVER_INFO_INTERFACE_NET_LIST,
221 InterfaceMac = CExports::DO_DISCOVER_INFO_INTERFACE_NET_MAC,
227 InterfaceTLType = CExports::DO_DISCOVER_INFO_INTERFACE_TLTYPE,
229 InterfaceDisplayName = CExports::DO_DISCOVER_INFO_INTERFACE_DISPLAYNAME,
235 InterfaceDriverType = CExports::DO_DISCOVER_INFO_INTERFACE_DRIVERTYPE,
237 InterfaceId = CExports::DO_DISCOVER_INFO_INTERFACE_ID,
243 DeviceTransportLayerType = CExports::DO_DISCOVER_INFO_DEVICE_TLTYPE,
245 DeviceUsername = CExports::DO_DISCOVER_INFO_DEVICE_USERNAME,
247 DeviceSerialNumber = CExports::DO_DISCOVER_INFO_DEVICE_SERIALNUMBER,
249 DeviceMac = CExports::DO_DISCOVER_INFO_DEVICE_NET_MAC,
251 DeviceIP = CExports::DO_DISCOVER_INFO_DEVICE_NET_IP,
253 DeviceSubnetMask = CExports::DO_DISCOVER_INFO_DEVICE_NET_SUBNETMASK,
255 DeviceUsbVendorId = CExports::DO_DISCOVER_INFO_DEVICE_USB_VID,
257 DeviceUsbProductId = CExports::DO_DISCOVER_INFO_DEVICE_USB_PID,
259 DeviceVendor = CExports::DO_DISCOVER_INFO_DEVICE_VENDOR,
261 DeviceModel = CExports::DO_DISCOVER_INFO_DEVICE_MODEL,
263 DeviceId = CExports::DO_DISCOVER_INFO_DEVICE_ID,
269 DeviceAccessStatus = CExports::DO_DISCOVER_INFO_DEVICE_ACCESS_STATUS,
271 TransportLayerId = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_ID,
273 TransportLayerPath = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_PATH,
275 TransportLayerVendor = CExports::DO_DISCOVER_INFO_TRANSPORTLAYER_VENDOR,
277 UsbPortPath = CExports::DO_DISCOVER_INFO_DEVICE_USB_PORT_PATH
278 };
279
296
298
302 {
316 UpToLevelVin = 2 << 1,
318 UpToLevelTL = 3 << 1,
326 IgnoreVins = 1 << 8,
328 IgnoreTLs = 1 << 9,
330 IgnoreGevSD = 1 << 10,
332 IgnoreGevFD = 1 << 11,
333 // Normally MockTL.cti is filtered out: this flag includes it.
334 IncludeMockTL = 1 << 13
335 };
336
338 enum class ModuleLayer
339 {
341 Unknown = CExports::DO_AT_LEVEL_UNKNOWN,
343 System = CExports::DO_AT_LEVEL_SYSTEM,
345 Vin = CExports::DO_AT_LEVEL_VIN,
347 TransportLayerSystem = CExports::DO_AT_LEVEL_TLSYSTEM,
349 TransportLayerInterface = CExports::DO_AT_LEVEL_TLIFACE,
351 TransportLayerDevice = CExports::DO_AT_LEVEL_TLDEVICE,
353 TransportLayerStream = CExports::DO_AT_LEVEL_TLSTREAM
354 };
355
357 enum class NotifyDataType
358 {
360 Void = CExports::CVNO_DATA_VOID,
362 Int64 = CExports::CVNO_DATA_INTEGER64,
364 Float64 = CExports::CVNO_DATA_FLOAT64,
366 String = CExports::CVNO_DATA_STRING,
368 Binary = CExports::CVNO_DATA_BINARY,
370 Boolean = CExports::CVNO_DATA_BOOL8,
371 };
372
385
387
389 template <class T>
397
400 {
406 Auto = CExports::RINGBUFFER_LOCKMODE_AUTO,
407
408 // lockmode off removed
409
416 On = CExports::RINGBUFFER_LOCKMODE_ON
417 };
418
420 enum class PlaybackMode
421 {
431 };
432
443
445
450 enum class StreamInfo
451 {
461 IsCameraDetected = CExports::GRAB_INFO_CAMERA_DETECTED,
463 NumBuffersAcquired = CExports::GRAB_INFO_NUMBER_IMAGES_AQCUIRED,
470 NumBuffersDelivered = CExports::G2INFO_NumBuffersDelivered,
475 NumBuffersLost = CExports::G2INFO_NumBuffersLost,
477 NumBuffersLostTransfer = CExports::GRAB_INFO_NUMBER_IMAGES_LOST,
479 NumBuffersLostLocked = CExports::GRAB_INFO_NUMBER_IMAGES_LOST_LOCKED,
481 NumBuffersLocked = CExports::GRAB_INFO_NUMBER_IMAGES_LOCKED,
483 NumBuffersPending = CExports::GRAB_INFO_NUMBER_IMAGES_PENDIG,
492 NumBuffersCorruptOnArrival = CExports::G2INFO_NumBuffersCorrupt,
500 NumBuffersCorruptOnDelivery = CExports::G2INFO_NumBuffersCorruptOnDelivery,
502 NumTriggersLost = CExports::GRAB_INFO_NUMBER_TRIGGERS_LOST,
509 NumBuffersAnnounced = CExports::G2INFO_NumBuffersAnnounced,
514 NumBuffersQueued = CExports::G2INFO_NumBuffersQueued,
516 NumBuffersBeingFilled = CExports::G2INFO_NumBuffersInIncompleteList,
519 NumPacketsReceived = CExports::G2INFO_NumPacketsReceived,
521 NumResends = CExports::G2INFO_NumResends
522 };
523
526 {
528 Get = CExports::DC_GET,
530 Set = CExports::DC_SET,
532 GetMinimum = CExports::DC_GETMIN,
534 GetMaxiumum = CExports::DC_GETMAX,
536 Verify = CExports::DC_VERIFY
537
538 };
539
552
554 namespace NodeMapID
555 {
557 static const Cvb::String Device = Cvb::String(CVB_LIT("Device")); // NOLINT(cert-err58-cpp)
559 static const Cvb::String Factory = Cvb::String(CVB_LIT("TLFactory")); // NOLINT(cert-err58-cpp)
561 static const Cvb::String System = Cvb::String(CVB_LIT("TLSystem")); // NOLINT(cert-err58-cpp)
564 static const Cvb::String Interface = Cvb::String(CVB_LIT("TLInterface")); // NOLINT(cert-err58-cpp)
566 static const Cvb::String TLDevice = Cvb::String(CVB_LIT("TLDevice")); // NOLINT(cert-err58-cpp)
568 static const Cvb::String DataStream = Cvb::String(CVB_LIT("TLDatastream")); // NOLINT(cert-err58-cpp)
570 static const Cvb::String VinDevice = Cvb::String(CVB_LIT("VinDevice")); // NOLINT(cert-err58-cpp)
572 static const Cvb::String VinBuffer = Cvb::String(CVB_LIT("VinBuffer")); // NOLINT(cert-err58-cpp)
573 } // namespace NodeMapID
574
576 template <class T>
578
581 {
583 // NOLINTBEGIN bugprone-reserved-identifier
584 _TypeUndefinedPart = 0x0000,
585 _TypeGenericPartMetadata = 0x4000 + 0x0000,
586 _TypeGenericPart1D = 0x4000 + 0x0100,
587 _TypeGenericPart2D = 0x4000 + 0x0200,
588 // NOLINTEND bugprone-reserved-identifier
590
592 TypeMetadataGenICamChunk = _TypeGenericPartMetadata + 0x00,
594 TypeMetadataGenICamXML = _TypeGenericPartMetadata + 0x01,
595 // 1D array (such as 3D Point Cloud).
596 Type1D = _TypeGenericPart1D + 0x00,
598 Type2D = _TypeGenericPart2D + 0x00,
600 TypeJPEG = _TypeGenericPart2D + 0x01,
602 TypeJPEG2000 = _TypeGenericPart2D + 0x02,
604 TypeH264 = _TypeGenericPart2D + 0x03,
605 };
606
608 enum class ComponentId
609 {
617 Range = 4,
629 Metadata = 0x8001,
630
633 DeviceSpecific = static_cast<int>(0xFF00),
634
637 };
638
649
670
673 {
676 Invalid = 1 << 0,
677 };
678
681 {
683 Zip = 1 << 8,
685 Chunk = 1 << 9,
686 };
687
690 {
694 ConstraintSet1 = 1 << 1,
695 ConstraintSet2 = 1 << 2,
696 ConstraintSet3 = 1 << 3,
703 PacketizationModeNonInterleaved = 1 << 4,
704 PacketizationModeInterleaved = 1 << 5,
705 };
706 } // namespace Driver
707
709 template <>
710 struct enum_flag_type<Driver::DiscoverFlags> : std::true_type
711 {
712 };
713
714 template <>
715 struct enum_flag_type<Driver::GenDcDescriptorFlag> : std::true_type
716 {
717 };
718
719 template <>
720 struct enum_flag_type<Driver::GenDcDescriptorVariableField> : std::true_type
721 {
722 };
723
724 template <>
725 struct enum_flag_type<Driver::GenDcComponentFlags> : std::true_type
726 {
727 };
728
729 template <>
730 struct enum_flag_type<Driver::GenDcPartFlags> : std::true_type
731 {
732 };
733
734 template <>
735 struct enum_flag_type<Driver::H264Flags> : std::true_type
736 {
737 };
739
746
767 using Driver::Stream;
770 using Driver::StreamPtr;
773
790 using Driver::Flow;
803 using Driver::StreamInfo;
806 using Driver::VinImage;
809 using Driver::WaitResult;
825 using Driver::H264Flags;
826
827 namespace NodeMapID = Driver::NodeMapID;
828
829 CVB_END_INLINE_NS
830
831} // namespace Cvb
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