GenTL_v1_6.h
Go to the documentation of this file.
1 /****************************************************************************
2 (c) 2004-2019 by GenICam GenTL Subcommittee
3 
4 License: This file is published under the license of the EMVA GenICam Standard Group.
5 A text file describing the legal terms is included in your installation as 'license.txt'.
6 If for some reason you are missing this file please contact the EMVA or visit the website
7 (http://www.genicam.org) for a full copy.
8 
9 THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
10 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
11 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
13 OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
14 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
15 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
16 OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
17 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
18 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
19 POSSIBILITY OF SUCH DAMAGE.
20 
21 ******************************************************************************/
22 
23 /* \file GenTL.h
24  * \brief GenICam Transport Layer Client Interface
25  * \version 1.6
26  * \author GenTL Subcommittee
27  * \date 2019
28  *
29  * \par Version history
30  * \li Version 0.1.0 First official version from the meeting in Pilsen
31  * \li Version 0.1.1 rst (SI) 0.4.160
32  * - added _E_INTERFACE_INFO_CMD_LIST_T_ enum name
33  * - added _E_DEVICE_ACCCESS_STATUS_TYPE_T_ to be used
34  * with the /a IFGetDeviceInfo and DevGetInfo
35  * - rename of the enum value DEVICE_INFO_ACCESSMODE to
36  * DEVICE_INFO_ACCESS_STATUS which now refers to
37  * _E_DEVICE_ACCCESS_STATUS_TYPE_T_
38  * - added Timeout parameter to update interface list and
39  * device list.
40  * \li Version 0.1.2 - change datatype of timeout parameter of
41  * TLUpdateInterfaceList and IFUpdateDeviceList to
42  * uint64_t to match with the timeout in the event object.
43  * - changed all enums to have a typedef to uint32_t
44  * with them to allow custom ids
45  * - changed type of string constants to be char * instead
46  * of gcstring
47  * \li Version 0.1.3 rst (SI), cbi (IDS) 0.4.163
48  * - adjusted parameter names to be closer aligned with
49  * the standard text
50  * - changed typedefs for enums from uint32_t to int32_t
51  * - removed default parameter
52  * - added parameter name to DevGetPort function
53  * \li Version 0.1.4 jb (LV)
54  * - fixes to align the file with standard text
55  * - make the file self-contained, independent on GenApi
56  * \li Version 0.1.5 rst (SI) cbi (IDS) jb (LV) tho (MVTec)
57  * - Adjust it for Linux
58  * - Cosmetics
59  * \li Version 1.0 rst (SI) cbi (IDS) jb (LV) tho (MVTec)
60  * - Adjust for Standard 1.0
61  * - Make it plain C compliant
62  * - Cosmetics
63  * \li Version 1.2 rst (SI) jb (LV) tho (MVTec)
64  * - Adjust for Standard 1.2
65  * - adjust packing
66  * - Cosmetics
67  * \li Version 1.3 (Stemmer, Leutron, Matrix Vision, MVTec, MathWorks)
68  * - Adjust for Standard 1.3
69  * - added chunk handling
70  * - added Mac OS X
71  * - Cosmetics
72  * \li Version 1.3.1 (MathWorks)
73  * - Spelling corrections in comments
74  * \li Version 1.4 GenTL Subcommittee
75  * \li Version 1.5 GenTL Subcommittee
76  * - Changed namespace to GenTL
77  * - Changes for GenTL 1.5, Please refer to the GenTL spec
78  * for a list of changes.
79  * \li Version 1.6 GenTL Subcommittee
80  * - Changes for GenTL 1.6, Please refer to the GenTL spec
81  * for a list of changes.
82  */
83 
84 
85 #ifndef GC_TLI_CLIENT_H_
86 #define GC_TLI_CLIENT_H_ 1
87 
88 #ifndef GC_USER_DEFINED_TYPES
89 /* The types should be the same as defined in GCTypes.h from GenApi. But in
90  * case you do not have this header the necessary types are defined here. */
91 # if defined(_WIN32)
92 # if defined(_MSC_VER) && _MSC_VER >= 1600 /* VS2010 provides stdint.h */
93 # include <stdint.h>
94 # elif !defined _STDINT_H && !defined _STDINT
95  /* stdint.h is usually not available under Windows */
96  typedef unsigned char uint8_t;
97  typedef __int32 int32_t;
98  typedef unsigned __int32 uint32_t;
99  typedef unsigned __int64 uint64_t;
100 # endif
101 # else
102 # include <stdint.h>
103 # endif
104 
105 # ifdef __cplusplus
106  typedef bool bool8_t;
107 # else
108  typedef uint8_t bool8_t;
109 # endif
110 #endif /* GC_DEFINE_TYPES */
111 
112 #include <stddef.h>
113 
114 
115 /* Function declaration modifiers */
116 #if defined (_WIN32)
117 # ifndef GCTLI_NO_DECLSPEC_STATEMENTS
118 # ifdef GCTLIDLL
119 # define GC_IMPORT_EXPORT __declspec(dllexport)
120 # else
121 # define GC_IMPORT_EXPORT __declspec(dllimport)
122 # endif
123 # else
124 # define GC_IMPORT_EXPORT
125 # endif /* # ifndef GCTLI_NO_DECLSPEC_STATEMENTS */
126 # if defined (_M_IX86) || defined (__i386__)
127 # define GC_CALLTYPE __stdcall
128 # else
129 # define GC_CALLTYPE /* default */
130 # endif
131 # ifndef EXTERN_C
132 # define EXTERN_C extern "C"
133 # endif
134 
135 #elif defined (__GNUC__) && (__GNUC__ >= 4) && (defined (__linux__) || defined (__APPLE__))
136 # define GC_IMPORT_EXPORT __attribute__((visibility("default")))
137 # if defined (__i386__)
138 # define GC_CALLTYPE __attribute__((stdcall))
139 # else
140 # define GC_CALLTYPE /* default */
141 # endif
142 # ifndef EXTERN_C
143 # define EXTERN_C extern "C"
144 # endif
145 
146 #else
147 # error Unknown platform, file needs adaption
148 #endif
149 
150 #ifdef __cplusplus
151 extern "C" {
152  namespace GenTL {
153 #endif
154 
155  /* Errors */
157  {
159  GC_ERR_ERROR = -1001,
166  GC_ERR_NO_DATA = -1008,
168  GC_ERR_IO = -1010,
169  GC_ERR_TIMEOUT = -1011,
170  GC_ERR_ABORT = -1012, /* GenTL v1.1 */
171  GC_ERR_INVALID_BUFFER = -1013, /* GenTL v1.1 */
172  GC_ERR_NOT_AVAILABLE = -1014, /* GenTL v1.2 */
173  GC_ERR_INVALID_ADDRESS = -1015, /* GenTL v1.3 */
174  GC_ERR_BUFFER_TOO_SMALL = -1016, /* GenTL v1.4 */
175  GC_ERR_INVALID_INDEX = -1017, /* GenTL v1.4 */
176  GC_ERR_PARSING_CHUNK_DATA = -1018, /* GenTL v1.4 */
177  GC_ERR_INVALID_VALUE = -1019, /* GenTL v1.4 */
178  GC_ERR_RESOURCE_EXHAUSTED = -1020, /* GenTL v1.4 */
179  GC_ERR_OUT_OF_MEMORY = -1021, /* GenTL v1.4 */
180  GC_ERR_BUSY = -1022, /* GenTL v1.5 */
181  GC_ERR_AMBIGUOUS = -1023, /* GenTL v1.6 */
182 
184  };
185  typedef int32_t GC_ERROR;
186 
187 # ifndef GC_GENTL_HEADER_VERSION
188 
189 # define GenTLMajorVersion 1 /* defines the major version of the GenICam GenTL standard version this header is based on */
190 # define GenTLMinorVersion 6 /* defines the minor version of the GenICam GenTL standard version this header is based on */
191 # define GenTLSubMinorVersion 0 /* defines the sub minor version of the GenICam GenTL standard version this header is based on */
192 
193 # define GC_GENTL_HEADER_VERSION_CODE(major,minor,subminor) (((major)<<24)+((minor)<<16)+(subminor))
194 # define GC_GENTL_HEADER_VERSION GC_GENTL_HEADER_VERSION_CODE(GenTLMajorVersion,GenTLMinorVersion,GenTLSubMinorVersion)
195 
196 # endif /* GC_GENTL_HEADER_VERSION */
197 
198 # ifndef GC_GENTL_DONT_USE_TYPE_DEFINITIONS
199 # define TLTypeMixedName "Mixed" /* Type to use for several supported technologies */
200 # define TLTypeCustomName "Custom" /* Type to use for custom technologies */
201 # define TLTypeGEVName "GEV" /* Type to use for GigE Vision technology */
202 # define TLTypeCLName "CL" /* Type to use for Camera Link technology */
203 # define TLTypeIIDCName "IIDC" /* Type to use for IIDC 1394 technology */
204 # define TLTypeUVCName "UVC" /* Type to use for USB video class devices */
205 # define TLTypeCXPName "CXP" /* Type to use for CoaXPress, V1.3 */
206 # define TLTypeCLHSName "CLHS" /* Type to use for Camera Link HS, V1.3 */
207 # define TLTypeU3VName "U3V" /* Type to use for USB3 Vision Standard, V1.4 */
208 # define TLTypeETHERNETName "Ethernet" /* Type to use for Ethernet devices, V1.3 */
209 # define TLTypePCIName "PCI" /* Type to use for PCI/PCIe devices, V1.3 */
210 # endif /* GC_GENTL_DONT_USE_TYPE_DEFINITIONS */
211 
212 # ifndef GC_GENTL_DONT_USE_MODULE_NAMES
213 # define TLSystemModuleName "TLSystem" /* Name to identify a system module */
214 # define TLInterfaceModuleName "TLInterface" /* Name to identify a interface module */
215 # define TLDeviceModuleName "TLDevice" /* Name to identify a device module */
216 # define TLDataStreamModuleName "TLDataStream" /* Name to identify a data stream module */
217 # define TLBufferModuleName "TLBuffer" /* Name to identify a buffer module */
218 # define TLRemoteDeviceModuleName "Device" /* Name to identify a remote device module */
219 # endif /* GC_GENTL_DONT_USE_MODULE_NAMES */
220 
221  /* Handles */
222  typedef void * TL_HANDLE; /* Transport Layer handle, obtained through the TLOpen */
223  typedef void * IF_HANDLE; /* Interface handle, obtained through ::TLOpenInterface */
224  typedef void * DEV_HANDLE; /* Device handle, obtained through the ::IFOpenDevice */
225  typedef void * DS_HANDLE; /* Handle to an data stream object, obtained through DevOpenDataStream */
226  typedef void * PORT_HANDLE; /* A Port handle is used to access the register space of a port */
227  /* a PORT_HANDLE can be one of the following TL_HANDLE, IF_HANDLE, */
228  /* DEV_HANDLE, handle to a device port, obtained through ::DevGetPort, */
229  /* DS_HANDLE, BUFFER_HANDLE */
230 
231  typedef void * BUFFER_HANDLE; /* Buffer handle, obtained through the ::DSAnnounceBuffer or related function */
232  typedef void * EVENTSRC_HANDLE; /* A Event source handle is used to register a OS Event and to retrieve a GenTL event handle */
233  /* a EVENTSRC_HANDLE can be on of the following TL_HANDLE, */
234  /* IF_HANDLE, DEV_HANDLE, DS_HANDLE, BUFFER_HANDLE */
235  typedef void * EVENT_HANDLE; /* Event handle, obtained through the ::GCRegisterEvent */
236 
237 # define GENTL_INVALID_HANDLE NULL /* Invalid handle value, V1.4 */
238 # define GENTL_INFINITE 0xFFFFFFFFFFFFFFFFULL /* Infinite value to be used in various function calls, V1.4 */
239 
240  /* Defines the data type possible for the various Info functions. */
242  {
243  INFO_DATATYPE_UNKNOWN = 0, /* Unknown data type */
244  INFO_DATATYPE_STRING = 1, /* NULL-terminated C string (ASCII encoded). */
245  INFO_DATATYPE_STRINGLIST = 2, /* Concatenated INFO_DATATYPE_STRING list. End of list is signaled with an additional NULL. */
246  INFO_DATATYPE_INT16 = 3, /* Signed 16 bit integer. */
247  INFO_DATATYPE_UINT16 = 4, /* Unsigned 16 bit integer */
248  INFO_DATATYPE_INT32 = 5, /* Signed 32 bit integer */
249  INFO_DATATYPE_UINT32 = 6, /* Unsigned 32 bit integer */
250  INFO_DATATYPE_INT64 = 7, /* Signed 64 bit integer */
251  INFO_DATATYPE_UINT64 = 8, /* Unsigned 64 bit integer */
252  INFO_DATATYPE_FLOAT64 = 9, /* Signed 64 bit floating point number. */
253  INFO_DATATYPE_PTR = 10, /* Pointer type (void*). Size is platform dependent (32 bit on 32 bit platforms). */
254  INFO_DATATYPE_BOOL8 = 11, /* Boolean value occupying 8 bit. 0 for false and anything for true. */
255  INFO_DATATYPE_SIZET = 12, /* Platform dependent unsigned integer (32 bit on 32 bit platforms). */
256  INFO_DATATYPE_BUFFER = 13, /* Like a INFO_DATATYPE_STRING but with arbitrary data and no NULL termination. */
257  INFO_DATATYPE_PTRDIFF = 14, /* Platform dependent signed integer (32 bit on 32 bit platforms). GenTL v1.3 */
258 
259  INFO_DATATYPE_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
260  };
261  typedef int32_t INFO_DATATYPE;
262 
263  /* Defines char encoding schemes used by the producer, GenTL v1.4 */
265  {
268  };
269  typedef int32_t TL_CHAR_ENCODING; /* GenTL v1.4 */
270 
271  /* System module information commands for the GenTL::TLGetInfo and GenTL::GCGetInfo functions. */
273  {
274  TL_INFO_ID = 0, /* STRING Transport layer ID. */
275  TL_INFO_VENDOR = 1, /* STRING Transport layer vendor name. */
276  TL_INFO_MODEL = 2, /* STRING Transport layer model name. */
277  TL_INFO_VERSION = 3, /* STRING Transport layer version. */
278  TL_INFO_TLTYPE = 4, /* STRING Transport layer technology that is supported. */
279  TL_INFO_NAME = 5, /* STRING File name including extension of the library. */
280  TL_INFO_PATHNAME = 6, /* STRING Full path including file name and extension of the library. */
281  TL_INFO_DISPLAYNAME = 7, /* STRING User readable name of the device. If this is not defined in the device this should be VENDOR MODEL (ID). */
282  TL_INFO_CHAR_ENCODING = 8, /* INT32 Reporting the char encoding used by this Producer, GenTL v1.4 */
283  TL_INFO_GENTL_VER_MAJOR = 9, /* UINT32 Major number of the GenTL spec this producer complies with, GenTL v1.5 */
284  TL_INFO_GENTL_VER_MINOR = 10, /* UINT32 Minor number of the GenTL spec this producer complies with, GenTL v1.5 */
285  TL_INFO_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
286  };
287  typedef int32_t TL_INFO_CMD;
288 
289  /* This enumeration defines commands to retrieve information with the GenTL::IFGetInfo function from the Interface module. */
291  {
292  INTERFACE_INFO_ID = 0, /* STRING Unique ID of the interface. */
293  INTERFACE_INFO_DISPLAYNAME = 1, /* STRING User readable name of the interface. */
294  INTERFACE_INFO_TLTYPE = 2, /* STRING Transport layer technology that is supported. */
295  INTERFACE_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
296  };
297  typedef int32_t INTERFACE_INFO_CMD;
298 
299  /* This enumeration defines flags of how a device is to be opened with the GenTL::IFOpenDevice function. */
301  {
302  DEVICE_ACCESS_UNKNOWN = 0, /* Not used in a command. Can be used to initialize a variable to query that information. */
303  DEVICE_ACCESS_NONE = 1, /* This either means that the device is not open because it was not opened before or the access to it was denied. */
304  DEVICE_ACCESS_READONLY = 2, /* Open the device read only. All Port functions can only read from the device. */
305  DEVICE_ACCESS_CONTROL = 3, /* Open the device in a way that other hosts/processes can have read only access to the device. Device access level is read/write for this process. */
306  DEVICE_ACCESS_EXCLUSIVE = 4, /* Open the device in a way that only this host/process can have access to the device. Device access level is read/write for this process. */
307 
308  DEVICE_ACCESS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
309  };
310  typedef int32_t DEVICE_ACCESS_FLAGS;
311 
312  /* This enumeration defines values for the accessibility of the device to be returned in the GenTL::DevGetInfo function on a device handle. */
314  {
315  DEVICE_ACCESS_STATUS_UNKNOWN = 0, /* The device accessibility is not known. */
316  DEVICE_ACCESS_STATUS_READWRITE = 1, /* The device is available for read/write access. */
317  DEVICE_ACCESS_STATUS_READONLY = 2, /* The device is available for read only access. */
318  DEVICE_ACCESS_STATUS_NOACCESS = 3, /* The device is not accessible. */
319  DEVICE_ACCESS_STATUS_BUSY = 4, /* The device has already been opened by another process/host. GenTL v1.5 */
320  DEVICE_ACCESS_STATUS_OPEN_READWRITE = 5, /* The device has already been opened by this process. GenTL v1.5 */
321  DEVICE_ACCESS_STATUS_OPEN_READONLY = 6, /* The device has already been opened by this process. GenTL v1.5 */
322 
323  DEVICE_ACCESS_STATUS_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
324  };
325  typedef int32_t DEVICE_ACCESS_STATUS;
326 
327  /* This enumeration defines commands to retrieve information with the GenTL::DevGetInfo function on a device handle. */
329  {
330  DEVICE_INFO_ID = 0, /* STRING Unique ID of the device. */
331  DEVICE_INFO_VENDOR = 1, /* STRING Device vendor name. */
332  DEVICE_INFO_MODEL = 2, /* STRING Device model name. */
333  DEVICE_INFO_TLTYPE = 3, /* STRING Transport layer technology that is supported. */
334  DEVICE_INFO_DISPLAYNAME = 4, /* STRING String containing a display name for the device ( including a unique id ) */
335  DEVICE_INFO_ACCESS_STATUS = 5, /* INT32 Gets the access mode the GenTL Producer has on the opened device. (DEVICE_ACCESS_STATUS enumeration value). */
336  DEVICE_INFO_USER_DEFINED_NAME = 6, /* STRING String containing the user defined name, GenTL v1.4 */
337  DEVICE_INFO_SERIAL_NUMBER = 7, /* STRING String containing the device's serial number, GenTL v1.4 */
338  DEVICE_INFO_VERSION = 8, /* STRING String containing the device version, GenTL v1.4 */
339  DEVICE_INFO_TIMESTAMP_FREQUENCY = 9, /* UINT64 Tick-frequency of the time stamp clock, GenTL v1.4 */
340 
341  DEVICE_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
342  };
343  typedef int32_t DEVICE_INFO_CMD;
344 
345  /* This enumeration defines special stop flags for the acquisition engine. The function used is GenTL::DSStopAcquisition. */
347  {
348  ACQ_STOP_FLAGS_DEFAULT = 0, /* Stop the acquisition engine when the currently running tasks like filling a buffer are completed (default behavior). */
349  ACQ_STOP_FLAGS_KILL = 1, /* Stop the acquisition engine immediately and leave buffers currently being filled in the Input Buffer Pool. */
350 
351  ACQ_STOP_FLAGS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
352  };
353  typedef int32_t ACQ_STOP_FLAGS;
354 
355  /* This enumeration defines special start flags for the acquisition engine. The function used is GenTL::DSStartAcquisition. */
357  {
358  ACQ_START_FLAGS_DEFAULT = 0, /* Default behavior. */
359 
360  ACQ_START_FLAGS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
361  };
362  typedef int32_t ACQ_START_FLAGS;
363 
364  /* This enumeration commands from which to which queue/pool buffers are flushed with the GenTL::DSFlushQueue function. */
366  {
367  ACQ_QUEUE_INPUT_TO_OUTPUT = 0, /* Flushes the input pool to the output queue and if necessary adds entries in the New Buffer event data queue. */
368  ACQ_QUEUE_OUTPUT_DISCARD = 1, /* Discards all buffers in the output queue and if necessary remove the entries from the event data queue. */
369  ACQ_QUEUE_ALL_TO_INPUT = 2, /* Puts all buffers in the input pool. Even those in the output queue and discard entries in the event data queue. */
370  ACQ_QUEUE_UNQUEUED_TO_INPUT = 3, /* Puts all buffers that are not in the input pool or the output queue in the input pool. */
371  ACQ_QUEUE_ALL_DISCARD = 4, /* Discards all buffers in the input pool and output queue. */
372 
373  ACQ_QUEUE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
374  };
375  typedef int32_t ACQ_QUEUE_TYPE;
376 
377  /* This enumeration defines commands to retrieve information with the GenTL::DSGetInfo function on a data stream handle */
379  {
380  STREAM_INFO_ID = 0, /* STRING Unique ID of the data stream. */
381  STREAM_INFO_NUM_DELIVERED = 1, /* UINT64 Number of delivered buffers since last acquisition start. */
382  STREAM_INFO_NUM_UNDERRUN = 2, /* UINT64 Number of lost buffers due to queue underrun. */
383  STREAM_INFO_NUM_ANNOUNCED = 3, /* SIZET Number of announced buffers. */
384  STREAM_INFO_NUM_QUEUED = 4, /* SIZET Number of buffers in the input pool. */
385  STREAM_INFO_NUM_AWAIT_DELIVERY = 5, /* SIZET Number of buffers in the output queue. */
386  STREAM_INFO_NUM_STARTED = 6, /* UINT64 Number of buffers started in the acquisition engine. */
387  STREAM_INFO_PAYLOAD_SIZE = 7, /* SIZET Size of the expected data in bytes. */
388  STREAM_INFO_IS_GRABBING = 8, /* BOOL8 Flag indicating whether the acquisition engine is started or not. */
389  STREAM_INFO_DEFINES_PAYLOADSIZE = 9, /* BOOL8 Flag that indicated that this data stream defines a payload size independent from the remote device. */
390  STREAM_INFO_TLTYPE = 10, /* STRING Transport layer technology that is supported. */
391  STREAM_INFO_NUM_CHUNKS_MAX = 11, /* SIZET Max number of chunks in a buffer, if known. GenTL v1.3 */
392  STREAM_INFO_BUF_ANNOUNCE_MIN = 12, /* SIZET Min number of buffers to announce before acq can start, if known. GenTL v1.3 */
393  STREAM_INFO_BUF_ALIGNMENT = 13, /* SIZET Buffer alignment in bytes. GenTL v1.3 */
394  STREAM_INFO_FLOW_TABLE = 14, /* BUFFER Flow mapping table in GenDC format. GenTL v1.6 */
395  STREAM_INFO_GENDC_PREFETCH_DESCRIPTOR = 15, /* BUFFER Prefetch version of GenDC descriptor. GenTL v1.6 */
396 
397  STREAM_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
398  };
399  typedef int32_t STREAM_INFO_CMD;
400 
401  /* This enumeration defines commands to retrieve information with the GenTL::DSGetBufferInfo function on a buffer handle. */
403  {
404  BUFFER_INFO_BASE = 0, /* PTR Base address of the buffer memory. */
405  BUFFER_INFO_SIZE = 1, /* SIZET Size of the buffer in bytes. */
406  BUFFER_INFO_USER_PTR = 2, /* PTR Private data pointer of the GenTL Consumer. */
407  BUFFER_INFO_TIMESTAMP = 3, /* UINT64 Timestamp the buffer was acquired. */
408  BUFFER_INFO_NEW_DATA = 4, /* BOOL8 Flag to indicate that the buffer contains new data since the last call. */
409  BUFFER_INFO_IS_QUEUED = 5, /* BOOL8 Flag to indicate if the buffer is in the input pool or output queue. */
410  BUFFER_INFO_IS_ACQUIRING = 6, /* BOOL8 Flag to indicate that the buffer is currently being filled with data. */
411  BUFFER_INFO_IS_INCOMPLETE = 7, /* BOOL8 Flag to indicate that a buffer was filled but an error occurred during that process. */
412  BUFFER_INFO_TLTYPE = 8, /* STRING Transport layer technology that is supported. */
413  BUFFER_INFO_SIZE_FILLED = 9, /* SIZET Number of bytes written into the buffer last time it has been filled. This value is reset to 0 when the buffer is placed into the Input Buffer Pool. */
414  BUFFER_INFO_WIDTH = 10, /* SIZET GenTL v1.2 */
415  BUFFER_INFO_HEIGHT = 11, /* SIZET GenTL v1.2 */
416  BUFFER_INFO_XOFFSET = 12, /* SIZET GenTL v1.2 */
417  BUFFER_INFO_YOFFSET = 13, /* SIZET GenTL v1.2 */
418  BUFFER_INFO_XPADDING = 14, /* SIZET GenTL v1.2 */
419  BUFFER_INFO_YPADDING = 15, /* SIZET GenTL v1.2 */
420  BUFFER_INFO_FRAMEID = 16, /* UINT64 GenTL v1.2 */
421  BUFFER_INFO_IMAGEPRESENT = 17, /* BOOL8 GenTL v1.2 */
422  BUFFER_INFO_IMAGEOFFSET = 18, /* SIZET GenTL v1.2 */
423  BUFFER_INFO_PAYLOADTYPE = 19, /* SIZET GenTL v1.2 */
424  BUFFER_INFO_PIXELFORMAT = 20, /* UINT64 GenTL v1.2 */
425  BUFFER_INFO_PIXELFORMAT_NAMESPACE = 21, /* UINT64 GenTL v1.2 */
426  BUFFER_INFO_DELIVERED_IMAGEHEIGHT = 22, /* SIZET GenTL v1.2 */
427  BUFFER_INFO_DELIVERED_CHUNKPAYLOADSIZE = 23, /* SIZET GenTL v1.2 */
428  BUFFER_INFO_CHUNKLAYOUTID = 24, /* UINT64 GenTL v1.2 */
429  BUFFER_INFO_FILENAME = 25, /* STRING GenTL v1.2 */
430  BUFFER_INFO_PIXEL_ENDIANNESS = 26, /* INT32 GenTL v1.4 */
431  BUFFER_INFO_DATA_SIZE = 27, /* SIZET GenTL v1.4 */
432  BUFFER_INFO_TIMESTAMP_NS = 28, /* UINT64 GenTL v1.4 */
433  BUFFER_INFO_DATA_LARGER_THAN_BUFFER = 29, /* BOOL8 GenTL v1.4 */
434  BUFFER_INFO_CONTAINS_CHUNKDATA = 30, /* BOOL8 GenTL v1.4 */
435  BUFFER_INFO_IS_COMPOSITE = 31, /* BOOL8 GenTL v1.6 */
436 
437  BUFFER_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
438  };
439  typedef int32_t BUFFER_INFO_CMD;
440 
441  /* This enumeration defines commands to retrieve information about individual data parts in a multi-part buffer
442  using the GenTL::DSGetBufferPartInfo function. Introduced in GenTL v1.5. */
444  {
445  BUFFER_PART_INFO_BASE = 0, /* PTR Base address of the buffer part memory. */
446  BUFFER_PART_INFO_DATA_SIZE = 1, /* SIZET Size of the buffer part in bytes. */
447  BUFFER_PART_INFO_DATA_TYPE = 2, /* SIZET Type of the data in given part (PARTDATATYPE_ID enumeration value). */
448  BUFFER_PART_INFO_DATA_FORMAT = 3, /* UINT64 Format of individual items (such as pixels) in the buffer part. */
449  BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE = 4, /* UINT64 Allows interpretation of BUFFER_PART_INFO_DATA_FORMAT (PIXELFORMAT_NAMESPACE_ID enumeration value). */
450  BUFFER_PART_INFO_WIDTH = 5, /* SIZET Width of data in the buffer part in pixels. */
451  BUFFER_PART_INFO_HEIGHT = 6, /* SIZET Expected height of data in the buffer part in pixels . */
452  BUFFER_PART_INFO_XOFFSET = 7, /* SIZET Horizontal offset of data in the buffer part in pixels. */
453  BUFFER_PART_INFO_YOFFSET = 8, /* SIZET Vertical offset of data in the buffer part in pixels. */
454  BUFFER_PART_INFO_XPADDING = 9, /* SIZET Horizontal padding of data in the buffer part in pixels. */
455  BUFFER_PART_INFO_SOURCE_ID = 10, /* UINT64 Identifier allowing to group data parts belonging to the same source. */
456  BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT = 11, /* SIZET Height of the data currently in the buffer part in pixels*/
457  BUFFER_PART_INFO_REGION_ID = 12, /* UINT64 Identifier allowing to group data parts belonging to the same region. GenTL v1.6 */
458  BUFFER_PART_INFO_DATA_PURPOSE_ID = 13, /* UINT64 Identifier allowing to group data parts having the same purpose. GenTL v1.6 */
459  BUFFER_PART_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
460  };
461  typedef int32_t BUFFER_PART_INFO_CMD; /* GenTL v1.5 */
462 
463  /* Enumeration of TLType dependent payload types. Introduced in GenTL v1.2 */
465  {
466  PAYLOAD_TYPE_UNKNOWN = 0, /* GenTL v1.2 */
467  PAYLOAD_TYPE_IMAGE = 1, /* GenTL v1.2 */
468  PAYLOAD_TYPE_RAW_DATA = 2, /* GenTL v1.2 */
469  PAYLOAD_TYPE_FILE = 3, /* GenTL v1.2 */
470  PAYLOAD_TYPE_CHUNK_DATA = 4, /* GenTL v1.2, Deprecated in GenTL 1.5*/
471  PAYLOAD_TYPE_JPEG = 5, /* GenTL v1.4 */
472  PAYLOAD_TYPE_JPEG2000 = 6, /* GenTL v1.4 */
473  PAYLOAD_TYPE_H264 = 7, /* GenTL v1.4 */
474  PAYLOAD_TYPE_CHUNK_ONLY = 8, /* GenTL v1.4 */
475  PAYLOAD_TYPE_DEVICE_SPECIFIC = 9, /* GenTL v1.4 */
476  PAYLOAD_TYPE_MULTI_PART = 10, /* GenTL v1.5 */
477  PAYLOAD_TYPE_GENDC = 11, /* GenTL v1.6 */
478 
479  PAYLOAD_TYPE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
480  };
481  typedef int32_t PAYLOADTYPE_INFO_ID;
482 
483  /* Enumeration of TLType dependent pixel format namespaces introduced GenTL v1.2 */
485  {
486  PIXELFORMAT_NAMESPACE_UNKNOWN = 0, /* GenTL v1.2 */
487  PIXELFORMAT_NAMESPACE_GEV = 1, /* GenTL v1.2 */
488  PIXELFORMAT_NAMESPACE_IIDC = 2, /* GenTL v1.2 */
489  PIXELFORMAT_NAMESPACE_PFNC_16BIT = 3, /* GenTL v1.4 */
490  PIXELFORMAT_NAMESPACE_PFNC_32BIT = 4, /* GenTL v1.4 */
491 
492  PIXELFORMAT_NAMESPACE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
493  };
494  typedef int32_t PIXELFORMAT_NAMESPACE_ID; /* GenTL v1.2 */
495 
496  /* Enumeration of pixel endianness values. Introduced in GenTL v1.4 */
498  {
499  PIXELENDIANNESS_UNKNOWN = 0, /* Unknown pixel endianness. GenTL v1.4 */
500  PIXELENDIANNESS_LITTLE = 1, /* Little endian pixel data. GenTL v1.4 */
501  PIXELENDIANNESS_BIG = 2 /* Big endian pixel data. GenTL v1.4 */
502  };
503  typedef int32_t PIXELENDIANNESS_ID; /* GenTL v1.4*/
504 
505  /* Enumeration describing which data type is present in given buffer part. Introduced in GenTL v1.5 */
507  {
508  PART_DATATYPE_UNKNOWN = 0, /* Unknown data type */
509  PART_DATATYPE_2D_IMAGE = 1, /* Color or monochrome 2D image. */
510  PART_DATATYPE_2D_PLANE_BIPLANAR = 2, /* Single color plane of a planar 2D image consisting of 2 planes. */
511  PART_DATATYPE_2D_PLANE_TRIPLANAR = 3, /* Single color plane of a planar 2D image consisting of 3 planes. */
512  PART_DATATYPE_2D_PLANE_QUADPLANAR = 4, /* Single color plane of a planar 2D image consisting of 4 planes. */
513  PART_DATATYPE_3D_IMAGE = 5, /* 3D image (pixel coordinates). */
514  PART_DATATYPE_3D_PLANE_BIPLANAR = 6, /* Single plane of a planar 3D image consisting of 2 planes. */
515  PART_DATATYPE_3D_PLANE_TRIPLANAR = 7, /* Single plane of a planar 3D image consisting of 3 planes. */
516  PART_DATATYPE_3D_PLANE_QUADPLANAR = 8, /* Single plane of a planar 3D image consisting of 4 planes. */
517  PART_DATATYPE_CONFIDENCE_MAP = 9, /* Confidence of the individual pixel values. */
518  PART_DATATYPE_JPEG = 10, /* JPEG compressed data. GenTL v1.6 */
519  PART_DATATYPE_JPEG2000 = 11, /* JPEG 2000 compressed data. GenTL v1.6 */
520 
521  PART_DATATYPE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
522  };
523  typedef int32_t PARTDATATYPE_ID; /* GenTL v1.5*/
524 
525  /* This enumeration defines commands to retrieve information with the GenTL::GCGetPortInfo function on a module or remote device handle. */
527  {
528  PORT_INFO_ID = 0, /* STRING Unique ID of the port. */
529  PORT_INFO_VENDOR = 1, /* STRING Port vendor name. */
530  PORT_INFO_MODEL = 2, /* STRING Port model name. */
531  PORT_INFO_TLTYPE = 3, /* STRING Transport layer technology that is supported. */
532  PORT_INFO_MODULE = 4, /* STRING GenTL Module the port refers to. */
533  PORT_INFO_LITTLE_ENDIAN = 5, /* BOOL8 Flag indicating that the port data is little endian. */
534  PORT_INFO_BIG_ENDIAN = 6, /* BOOL8 Flag indicating that the port data is big endian. */
535  PORT_INFO_ACCESS_READ = 7, /* BOOL8 Port has read access. */
536  PORT_INFO_ACCESS_WRITE = 8, /* BOOL8 Port has write access. */
537  PORT_INFO_ACCESS_NA = 9, /* BOOL8 Port is not accessible. */
538  PORT_INFO_ACCESS_NI = 10, /* BOOL8 Port is not implemented. */
539  PORT_INFO_VERSION = 11, /* STRING Version of the port. */
540  PORT_INFO_PORTNAME = 12, /* STRING Name of the port as referenced in the XML description. */
541 
542  PORT_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
543  };
544  typedef int32_t PORT_INFO_CMD;
545 
546  /* This enumeration defines enum values returned by the URL_INFO_SCHEME command.
547  introduced in GenTL v1.5 */
549  {
550  URL_SCHEME_LOCAL = 0, /* The XML can be read from the local register map */
551  URL_SCHEME_HTTP = 1, /* The XML can be downloaded from a http server */
552  URL_SCHEME_FILE = 2, /* The XML can be read from the local hard drive */
553 
554  URL_SCHEME_CUSTOM_ID = 1000 /* Starting value for custom scheme locations */
555  };
556  typedef int32_t URL_SCHEME_ID;
557 
558  /* This enumeration defines commands to retrieve information with the GenTL::GCGetPortURLInfo
559  function on a module or remote device handle. Introduced in GenTL v1.1 */
561  {
562  URL_INFO_URL = 0, /* STRING URL as defined in chapter 4.1.2 GenTL v1.1 */
563  URL_INFO_SCHEMA_VER_MAJOR = 1, /* INT32 Major version of the schema this URL refers to. GenTL v1.1 */
564  URL_INFO_SCHEMA_VER_MINOR = 2, /* INT32 Minor version of the schema this URL refers to. GenTL v1.1 */
565  URL_INFO_FILE_VER_MAJOR = 3, /* INT32 Major version of the XML-file this URL refers to. GenTL v1.1 */
566  URL_INFO_FILE_VER_MINOR = 4, /* INT32 Minor version of the XML-file this URL refers to. GenTL v1.1 */
567  URL_INFO_FILE_VER_SUBMINOR = 5, /* INT32 Subminor version of the XML-file this URL refers to. GenTL v1.1 */
568  URL_INFO_FILE_SHA1_HASH = 6, /* BUFFER 160-bit SHA1 Hash code of XML-file. GenTL v1.4 */
569  URL_INFO_FILE_REGISTER_ADDRESS = 7, /* UINT64 Register address in the device's register map. GenTL v1.5 */
570  URL_INFO_FILE_SIZE = 8, /* UINT64 File size in bytes. GenTL v1.5 */
571  URL_INFO_SCHEME = 9, /* INT32 Scheme of the URL as defined in URL_SCHEME_IDS. GenTL v1.5 */
572  URL_INFO_FILENAME = 10, /* STRING File name if the scheme of the URL is file. GenTL v1.5 */
573 
574  URL_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
575  };
576  typedef int32_t URL_INFO_CMD; /* GenTL v1.1 */
577 
578  /* Known event types that can be registered on certain modules with the GenTL::GCRegisterEvent function. */
580  {
581  EVENT_ERROR = 0, /* Notification on module errors. */
582  EVENT_NEW_BUFFER = 1, /* Notification on newly filled buffers. */
583  EVENT_FEATURE_INVALIDATE = 2, /* Notification if a feature was changed by the GenTL Producer library and thus needs to be invalidated in the GenICam GenApi instance using the module. */
584  EVENT_FEATURE_CHANGE = 3, /* Notification if the GenTL Producer library wants to manually set a feature in the GenICam GenApi instance using the module. */
585  EVENT_REMOTE_DEVICE = 4, /* Notification if the GenTL Producer wants to inform the GenICam GenApi instance of the remote device that a GenApi compatible event was fired. */
586  EVENT_MODULE = 5, /* Notification if the GenTL Producer wants to inform the GenICam GenApi instance of the module that a GenApi compatible event was fired. GenTL v1.4 */
587 
588  EVENT_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
589  };
590  typedef int32_t EVENT_TYPE;
591 
592  /* Event info command */
594  {
595  EVENT_EVENT_TYPE = 0, /* INT32 The event type of the event handle (EVENT_TYPE enum value). */
596  EVENT_NUM_IN_QUEUE = 1, /* SIZET Number of events in the event data queue. */
597  EVENT_NUM_FIRED = 2, /* UINT64 Number of events that were fired since the creation of the module. */
598  EVENT_SIZE_MAX = 3, /* SIZET Max size of data carried with an event in bytes. GenTL v1.2 */
599  EVENT_INFO_DATA_SIZE_MAX = 4, /* SIZET Max size of data provided through EventGetDataInfo in bytes. GenTL v1.2 */
600 
601  EVENT_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
602  };
603  typedef int32_t EVENT_INFO_CMD;
604 
605  /* Event data info command */
607  {
608  EVENT_DATA_ID = 0, /* Event specific Unique Event ID (String or Number)*/
609  EVENT_DATA_VALUE = 1, /* Event specific Data */
610  EVENT_DATA_NUMID = 2, /* UINT64 Numeric representation of the unique Event ID, GenTL v1.3. */
611 
612  EVENT_DATA_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
613  };
614  typedef int32_t EVENT_DATA_INFO_CMD;
615 
616  /* This enumeration defines commands to retrieve information about individual data stream flows
617  using the GenTL::DSGetFlowInfo function. Introduced in GenTL v1.6. */
619  {
620  FLOW_INFO_SIZE = 0, /* SIZET Size of the flow in bytes. */
621  FLOW_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
622  };
623  typedef int32_t FLOW_INFO_CMD; /* GenTL v1.6 */
624 
625  /* This enumeration defines commands to retrieve information about composite buffer segments
626  using the GenTL::DSGetBufferSegmentInfo function. Introduced in GenTL v1.6. */
628  {
629  SEGMENT_INFO_BASE = 0, /* PTR Based address of the buffer segment memory. */
630  SEGMENT_INFO_SIZE = 1, /* SIZET Size of the buffer segment in bytes. */
631  SEGMENT_INFO_IS_INCOMPLETE = 2, /* BOOL8 Flag to indicate that an error occured while filling the segment. */
632  SEGMENT_INFO_SIZE_FILLED = 3, /* SIZET Number of bytes written into the buffer last time it has been filled. */
633  SEGMENT_INFO_DATA_SIZE = 4, /* SIZET Size of the data intended to be written to the buffer last time it has been filled. */
634  SEGMENT_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
635  };
636  typedef int32_t SEGMENT_INFO_CMD; /* GenTL v1.6 */
637 
638  /* Structure of the data returned from a signaled "New Buffer" event. */
639 # pragma pack (push, 1)
640  typedef struct S_EVENT_NEW_BUFFER
641  {
642  BUFFER_HANDLE BufferHandle; /* Buffer handle which contains new data. */
643  void* pUserPointer; /* User pointer provided at announcement of the buffer. */
645 # pragma pack (pop)
646 
647  /* Structure to be use with GCWritePortStacked and GCReadPortStacked. */
648 # pragma pack (push, 1)
650  {
651  uint64_t Address; /* Address of the register. */
652  void* pBuffer; /* Pointer to the buffer containing the data. */
653  size_t Size; /* Number of bytes to read write. */
655 # pragma pack (pop)
656 
657 # pragma pack (push, 1)
658  /* Structure carrying information about a single chunk in the buffer. Introduced in GenTL v1.3. */
659  typedef struct S_SINGLE_CHUNK_DATA
660  {
661  uint64_t ChunkID; /* Numeric representation of ChunkID */
662  ptrdiff_t ChunkOffset; /* Chunk offset in the buffer */
663  size_t ChunkLength; /* Size of the chunk data */
665 # pragma pack (pop)
666 
667 # pragma pack (push, 1)
668  /* Structure carrying information about a buffer info within a stacked request. Introduced in GenTL v1.6. */
670  {
671  BUFFER_INFO_CMD iInfoCmd; /* Queried buffer info */
672  INFO_DATATYPE iType; /* The info's data type */
673  void* pBuffer; /* Pointer to buffer to hold the info data */
674  size_t iSize; /* Size of the info buffer (in) and the actual info data (out) */
675  GC_ERROR iResult; /* Result of the buffer info queury */
677 # pragma pack (pop)
678 
679 # pragma pack (push, 1)
680  /* Structure carrying information about a buffer part info within a stacked request. Introduced in GenTL v1.6. */
682  {
683  uint32_t iPartIndex; /* Index of buffer part to query */
684  BUFFER_PART_INFO_CMD iInfoCmd; /* Queried buffer part info */
685  GC_ERROR iResult; /* Result of the buffer info queury */
686  INFO_DATATYPE iType; /* The info's data type */
687  void* pBuffer; /* Pointer to buffer to hold the info data */
688  size_t iSize; /* Size of the info buffer (in) and the actual info data (out) */
690 # pragma pack (pop)
691 
692 
693  /* C API Interface Functions */
694 # define GC_API GC_IMPORT_EXPORT GC_ERROR GC_CALLTYPE
695  GC_API GCGetInfo ( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
696 
697  GC_API GCGetLastError ( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
698 
699  GC_API GCInitLib ( void );
700  GC_API GCCloseLib ( void );
701 
702  GC_API GCReadPort ( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
703  GC_API GCWritePort ( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
704  GC_API GCGetPortURL ( PORT_HANDLE hPort, char *sURL, size_t *piSize );
705 
706  GC_API GCGetPortInfo ( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
707 
708  GC_API GCRegisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
709  GC_API GCUnregisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
710 
711  GC_API EventGetData ( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
712  GC_API EventGetDataInfo ( EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize );
713  GC_API EventGetInfo ( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
714  GC_API EventFlush ( EVENT_HANDLE hEvent );
715  GC_API EventKill ( EVENT_HANDLE hEvent );
716 
717  GC_API TLOpen ( TL_HANDLE *phTL );
718  GC_API TLClose ( TL_HANDLE hTL );
719  GC_API TLGetInfo ( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
720 
721  GC_API TLGetNumInterfaces ( TL_HANDLE hTL, uint32_t *piNumIfaces );
722  GC_API TLGetInterfaceID ( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
723  GC_API TLGetInterfaceInfo ( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
724  GC_API TLOpenInterface ( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
725  GC_API TLUpdateInterfaceList ( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
726 
727  GC_API IFClose ( IF_HANDLE hIface );
728  GC_API IFGetInfo ( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
729 
730  GC_API IFGetNumDevices ( IF_HANDLE hIface, uint32_t *piNumDevices );
731  GC_API IFGetDeviceID ( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
732  GC_API IFUpdateDeviceList ( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
733  GC_API IFGetDeviceInfo ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
734  GC_API IFOpenDevice ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice );
735 
736  GC_API DevGetPort ( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
737  GC_API DevGetNumDataStreams ( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
738  GC_API DevGetDataStreamID ( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
739  GC_API DevOpenDataStream ( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
740  GC_API DevGetInfo ( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
741  GC_API DevClose ( DEV_HANDLE hDevice );
742 
743  GC_API DSAnnounceBuffer ( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
744  GC_API DSAllocAndAnnounceBuffer( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
745  GC_API DSFlushQueue ( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
746  GC_API DSStartAcquisition ( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
747  GC_API DSStopAcquisition ( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
748  GC_API DSGetInfo ( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
749  GC_API DSGetBufferID ( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
750  GC_API DSClose ( DS_HANDLE hDataStream );
751 
752  GC_API DSRevokeBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
753  GC_API DSQueueBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
754  GC_API DSGetBufferInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
755 
756  /* GenTL v1.1 */
757  GC_API GCGetNumPortURLs ( PORT_HANDLE hPort, uint32_t *piNumURLs );
758  GC_API GCGetPortURLInfo ( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
759  GC_API GCReadPortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
760  GC_API GCWritePortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
761 
762  /* GenTL v1.3 */
763  GC_API DSGetBufferChunkData ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
764 
765  /* GenTL v1.4 */
766  GC_API IFGetParentTL ( IF_HANDLE hIface, TL_HANDLE *phSystem );
767  GC_API DevGetParentIF ( DEV_HANDLE hDevice, IF_HANDLE *phIface );
768  GC_API DSGetParentDev ( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
769 
770  /* GenTL v1.5 */
771  GC_API DSGetNumBufferParts ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
772  GC_API DSGetBufferPartInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
773 
774  /* GenTL v1.6 */
775  GC_API DSAnnounceCompositeBuffer ( DS_HANDLE hDataStream, size_t iNumSegments, void **ppSegments, size_t *piSizes, void *pPrivate, BUFFER_HANDLE *phBuffer );
776  GC_API DSGetBufferInfoStacked ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_INFO_STACKED *pInfoStacked, size_t iNumInfos );
777  GC_API DSGetBufferPartInfoStacked( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_PART_INFO_STACKED *pInfoStacked, size_t iNumInfos );
778  GC_API DSGetNumFlows ( DS_HANDLE hDataStream, uint32_t *piNumFlows );
779  GC_API DSGetFlowInfo ( DS_HANDLE hDataStream, uint32_t iFlowIndex, FLOW_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
780  GC_API DSGetNumBufferSegments ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumSegments );
781  GC_API DSGetBufferSegmentInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iSegmentIndex, SEGMENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
782 
783  /* typedefs for dynamic loading */
784 # define GC_API_P(function) typedef GC_ERROR( GC_CALLTYPE *function )
785  GC_API_P(PGCGetInfo )( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
786  GC_API_P(PGCGetLastError )( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
787  GC_API_P(PGCInitLib )( void );
788  GC_API_P(PGCCloseLib )( void );
789  GC_API_P(PGCReadPort )( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
790  GC_API_P(PGCWritePort )( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
791  GC_API_P(PGCGetPortURL )( PORT_HANDLE hPort, char *sURL, size_t *piSize );
792  GC_API_P(PGCGetPortInfo )( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
793 
794  GC_API_P(PGCRegisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
795  GC_API_P(PGCUnregisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
796  GC_API_P(PEventGetData )( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
797  GC_API_P(PEventGetDataInfo )( EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize );
798  GC_API_P(PEventGetInfo )( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
799  GC_API_P(PEventFlush )( EVENT_HANDLE hEvent );
800  GC_API_P(PEventKill )( EVENT_HANDLE hEvent );
801  GC_API_P(PTLOpen )( TL_HANDLE *phTL );
802  GC_API_P(PTLClose )( TL_HANDLE hTL );
803  GC_API_P(PTLGetInfo )( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
804  GC_API_P(PTLGetNumInterfaces )( TL_HANDLE hTL, uint32_t *piNumIfaces );
805  GC_API_P(PTLGetInterfaceID )( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
806  GC_API_P(PTLGetInterfaceInfo )( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
807  GC_API_P(PTLOpenInterface )( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
808  GC_API_P(PTLUpdateInterfaceList )( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
809  GC_API_P(PIFClose )( IF_HANDLE hIface );
810  GC_API_P(PIFGetInfo )( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
811  GC_API_P(PIFGetNumDevices )( IF_HANDLE hIface, uint32_t *piNumDevices );
812  GC_API_P(PIFGetDeviceID )( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
813  GC_API_P(PIFUpdateDeviceList )( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
814  GC_API_P(PIFGetDeviceInfo )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
815  GC_API_P(PIFOpenDevice )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice );
816 
817  GC_API_P(PDevGetPort )( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
818  GC_API_P(PDevGetNumDataStreams )( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
819  GC_API_P(PDevGetDataStreamID )( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
820  GC_API_P(PDevOpenDataStream )( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
821  GC_API_P(PDevGetInfo )( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
822  GC_API_P(PDevClose )( DEV_HANDLE hDevice );
823 
824  GC_API_P(PDSAnnounceBuffer )( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
825  GC_API_P(PDSAllocAndAnnounceBuffer)( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
826  GC_API_P(PDSFlushQueue )( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
827  GC_API_P(PDSStartAcquisition )( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
828  GC_API_P(PDSStopAcquisition )( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
829  GC_API_P(PDSGetInfo )( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
830  GC_API_P(PDSGetBufferID )( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
831  GC_API_P(PDSClose )( DS_HANDLE hDataStream );
832  GC_API_P(PDSRevokeBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
833  GC_API_P(PDSQueueBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
834  GC_API_P(PDSGetBufferInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
835 
836  /* GenTL v1.1 */
837  GC_API_P(PGCGetNumPortURLs )( PORT_HANDLE hPort, uint32_t *iNumURLs );
838  GC_API_P(PGCGetPortURLInfo )( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
839  GC_API_P(PGCReadPortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
840  GC_API_P(PGCWritePortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
841 
842  /* GenTL v1.3 */
843  GC_API_P(PDSGetBufferChunkData )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
844 
845  /* GenTL v1.4 */
846  GC_API_P(PIFGetParentTL )( IF_HANDLE hIface, TL_HANDLE *phSystem );
847  GC_API_P(PDevGetParentIF )( DEV_HANDLE hDevice, IF_HANDLE *phIface );
848  GC_API_P(PDSGetParentDev )( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
849 
850  /* GenTL v1.5 */
851  GC_API_P(PDSGetNumBufferParts )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
852  GC_API_P(PDSGetBufferPartInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
853 
854  /* GenTL v1.6 */
855  GC_API_P(PDSAnnounceCompositeBuffer)( DS_HANDLE hDataStream, size_t iNumSegments, void **ppSegments, size_t *piSizes, void *pPrivate, BUFFER_HANDLE *phBuffer );
856  GC_API_P(PDSGetBufferInfoStacked )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_INFO_STACKED *pInfoStacked, size_t iNumInfos );
857  GC_API_P(PDSGetBufferPartInfoStacked)( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_PART_INFO_STACKED *pInfoStacked, size_t iNumInfos );
858  GC_API_P(PDSGetNumFlows )( DS_HANDLE hDataStream, uint32_t *piNumFlows );
859  GC_API_P(PDSGetFlowInfo )( DS_HANDLE hDataStream, uint32_t iFlowIndex, FLOW_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
860  GC_API_P(PDSGetNumBufferSegments )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumSegments );
861  GC_API_P(PDSGetBufferSegmentInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iSegmentIndex, SEGMENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
862 #ifdef __cplusplus
863  } /* end of namespace GenTL */
864 } /* end of extern "C" */
865 #endif
866 #endif /* GC_TLI_CLIENT_H_ */
struct S_EVENT_NEW_BUFFER EVENT_NEW_BUFFER_DATA
uint64_t Address
Definition: GenTL_v1_6.h:651
GC_API_P() PDevGetPort(DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
GC_API EventKill(EVENT_HANDLE hEvent)
int32_t BUFFER_PART_INFO_CMD
Definition: GenTL_v1_6.h:461
#define GC_API_P(function)
Definition: GenTL_v1_6.h:784
STREAM_INFO_CMD_LIST
Definition: GenTL_v1_6.h:378
GC_API_P() PTLGetNumInterfaces(TL_HANDLE hTL, uint32_t *piNumIfaces)
GC_API DSRevokeBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
GC_API_P() PDevGetNumDataStreams(DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
int32_t PARTDATATYPE_ID
Definition: GenTL_v1_6.h:523
GC_API TLGetNumInterfaces(TL_HANDLE hTL, uint32_t *piNumIfaces)
DEVICE_ACCESS_FLAGS_LIST
Definition: GenTL_v1_6.h:300
GC_API_P() PDSQueueBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
int32_t PAYLOADTYPE_INFO_ID
Definition: GenTL_v1_6.h:481
GC_API_P() PDSGetBufferChunkData(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
GC_API GCGetPortURLInfo(PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PTLGetInterfaceID(TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
GC_API_P() PGCRegisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
INTERFACE_INFO_CMD_LIST
Definition: GenTL_v1_6.h:290
GC_API DSQueueBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
GC_API IFGetDeviceInfo(IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PDSGetBufferInfoStacked(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_INFO_STACKED *pInfoStacked, size_t iNumInfos)
int32_t STREAM_INFO_CMD
Definition: GenTL_v1_6.h:399
GC_API_P() PEventGetData(EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
GC_API_P() PDSClose(DS_HANDLE hDataStream)
GC_API_P() PIFUpdateDeviceList(IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
INFO_DATATYPE_LIST
Definition: GenTL_v1_6.h:241
GC_API_P() PDSGetNumBufferParts(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
GC_API_P() PDSGetNumFlows(DS_HANDLE hDataStream, uint32_t *piNumFlows)
GC_API_P() PGCReadPortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
PORT_INFO_CMD_LIST
Definition: GenTL_v1_6.h:526
int32_t DEVICE_ACCESS_FLAGS
Definition: GenTL_v1_6.h:310
int32_t EVENT_INFO_CMD
Definition: GenTL_v1_6.h:603
GC_API_P() PEventGetInfo(EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PGCGetPortURL(PORT_HANDLE hPort, char *sURL, size_t *piSize)
int32_t PORT_INFO_CMD
Definition: GenTL_v1_6.h:544
GC_API_P() PDSGetInfo(DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSGetBufferChunkData(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
ACQ_QUEUE_TYPE_LIST
Definition: GenTL_v1_6.h:365
GC_API_P() PEventFlush(EVENT_HANDLE hEvent)
FLOW_INFO_CMD_LIST
Definition: GenTL_v1_6.h:618
GC_API GCGetPortInfo(PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
int32_t ACQ_START_FLAGS
Definition: GenTL_v1_6.h:362
Definition: GenTL_v1_6.h:649
GC_API_P() PDSGetBufferSegmentInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iSegmentIndex, SEGMENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API GCWritePort(PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
size_t Size
Definition: GenTL_v1_6.h:653
GC_API_P() PDSGetNumBufferSegments(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumSegments)
void * TL_HANDLE
Definition: GenTL_v1_6.h:222
GC_API TLGetInterfaceInfo(TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API TLGetInfo(TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PGCInitLib(void)
GC_API GCGetInfo(TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PGCGetPortInfo(PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
int32_t ACQ_STOP_FLAGS
Definition: GenTL_v1_6.h:353
GC_API DSGetBufferPartInfoStacked(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_PART_INFO_STACKED *pInfoStacked, size_t iNumInfos)
GC_API_P() PGCUnregisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
GC_API DSGetBufferInfoStacked(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_INFO_STACKED *pInfoStacked, size_t iNumInfos)
SEGMENT_INFO_CMD_LIST
Definition: GenTL_v1_6.h:627
int32_t SEGMENT_INFO_CMD
Definition: GenTL_v1_6.h:636
GC_API IFGetDeviceID(IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
int32_t ACQ_QUEUE_TYPE
Definition: GenTL_v1_6.h:375
GC_API_P() PTLGetInterfaceInfo(TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_ERROR_LIST
Definition: GenTL_v1_6.h:156
ACQ_START_FLAGS_LIST
Definition: GenTL_v1_6.h:356
GC_API GCGetNumPortURLs(PORT_HANDLE hPort, uint32_t *piNumURLs)
struct S_DS_BUFFER_INFO_STACKED DS_BUFFER_INFO_STACKED
GC_API_P() PTLClose(TL_HANDLE hTL)
GC_API_P() PTLOpen(TL_HANDLE *phTL)
GC_API_P() PDSStopAcquisition(DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
GC_API_P() PGCGetInfo(TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API TLClose(TL_HANDLE hTL)
ACQ_STOP_FLAGS_LIST
Definition: GenTL_v1_6.h:346
GC_API TLGetInterfaceID(TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
EVENT_INFO_CMD_LIST
Definition: GenTL_v1_6.h:593
GC_API_P() PDSAnnounceCompositeBuffer(DS_HANDLE hDataStream, size_t iNumSegments, void **ppSegments, size_t *piSizes, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API TLUpdateInterfaceList(TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
GC_API GCCloseLib(void)
int32_t EVENT_DATA_INFO_CMD
Definition: GenTL_v1_6.h:614
GC_API DSGetNumFlows(DS_HANDLE hDataStream, uint32_t *piNumFlows)
GC_API DevGetInfo(DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
int32_t TL_CHAR_ENCODING
Definition: GenTL_v1_6.h:269
GC_API IFGetParentTL(IF_HANDLE hIface, TL_HANDLE *phSystem)
int32_t INTERFACE_INFO_CMD
Definition: GenTL_v1_6.h:297
GC_API_P() PTLGetInfo(TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API IFUpdateDeviceList(IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
GC_API DSGetFlowInfo(DS_HANDLE hDataStream, uint32_t iFlowIndex, FLOW_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
void * pBuffer
Definition: GenTL_v1_6.h:652
void * BUFFER_HANDLE
Definition: GenTL_v1_6.h:231
int32_t URL_SCHEME_ID
Definition: GenTL_v1_6.h:556
GC_API DSGetBufferInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
BUFFER_PART_INFO_CMD_LIST
Definition: GenTL_v1_6.h:443
GC_API_P() PIFOpenDevice(IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice)
GC_API_P() PDevOpenDataStream(DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
GC_API_P() PDevClose(DEV_HANDLE hDevice)
void * DEV_HANDLE
Definition: GenTL_v1_6.h:224
int32_t PIXELENDIANNESS_ID
Definition: GenTL_v1_6.h:503
GC_API_P() PIFGetDeviceInfo(IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PGCWritePortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API_P() PIFGetDeviceID(IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
int64_t __int64
GC_API_P() PDevGetInfo(DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PTLUpdateInterfaceList(TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
GC_API GCReadPort(PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
DEVICE_INFO_CMD_LIST
Definition: GenTL_v1_6.h:328
DEVICE_ACCESS_STATUS_LIST
Definition: GenTL_v1_6.h:313
GC_API_P() PDSGetFlowInfo(DS_HANDLE hDataStream, uint32_t iFlowIndex, FLOW_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
struct S_SINGLE_CHUNK_DATA SINGLE_CHUNK_DATA
GC_API_P() PDSGetParentDev(DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
void * IF_HANDLE
Definition: GenTL_v1_6.h:223
GC_API_P() PDSGetBufferInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSGetParentDev(DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
int32_t PIXELFORMAT_NAMESPACE_ID
Definition: GenTL_v1_6.h:494
GC_API DevGetNumDataStreams(DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
GC_API_P() PDevGetDataStreamID(DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
GC_API DevGetParentIF(DEV_HANDLE hDevice, IF_HANDLE *phIface)
GC_API DSGetInfo(DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSFlushQueue(DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
GC_API IFClose(IF_HANDLE hIface)
GC_API DevOpenDataStream(DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
int32_t BUFFER_INFO_CMD
Definition: GenTL_v1_6.h:439
GC_API_P() PEventGetDataInfo(EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize)
GC_API DSStopAcquisition(DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
GC_API DevClose(DEV_HANDLE hDevice)
GC_API_P() PDSAnnounceBuffer(DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API GCReadPortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API_P() PDSRevokeBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
GC_API GCGetLastError(GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
GC_API IFOpenDevice(IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice)
EVENT_DATA_INFO_CMD_LIST
Definition: GenTL_v1_6.h:606
GC_API DSStartAcquisition(DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
GC_API DSAllocAndAnnounceBuffer(DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API_P() PDevGetParentIF(DEV_HANDLE hDevice, IF_HANDLE *phIface)
GC_API GCUnregisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
int32_t INFO_DATATYPE
Definition: GenTL_v1_6.h:261
void * EVENTSRC_HANDLE
Definition: GenTL_v1_6.h:232
GC_API_P() PGCGetPortURLInfo(PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSGetNumBufferParts(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
GC_API_P() PDSAllocAndAnnounceBuffer(DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
int32_t FLOW_INFO_CMD
Definition: GenTL_v1_6.h:623
PAYLOADTYPE_INFO_IDS
Definition: GenTL_v1_6.h:464
GC_API TLOpenInterface(TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
GC_API_P() PTLOpenInterface(TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
struct S_DS_BUFFER_PART_INFO_STACKED DS_BUFFER_PART_INFO_STACKED
GC_API_P() PGCGetNumPortURLs(PORT_HANDLE hPort, uint32_t *iNumURLs)
GC_API EventFlush(EVENT_HANDLE hEvent)
GC_API_P() PGCGetLastError(GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
PARTDATATYPE_IDS
Definition: GenTL_v1_6.h:506
int32_t GC_ERROR
Definition: GenTL_v1_6.h:185
URL_SCHEME_IDS
Definition: GenTL_v1_6.h:548
GC_API_P() PDSGetBufferPartInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PDSGetBufferPartInfoStacked(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_PART_INFO_STACKED *pInfoStacked, size_t iNumInfos)
BUFFER_PART_INFO_CMD iInfoCmd
Definition: GenTL_v1_6.h:684
GC_API DevGetPort(DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
GC_API_P() PGCWritePort(PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
GC_API DSAnnounceBuffer(DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API_P() PGCCloseLib(void)
GC_API DevGetDataStreamID(DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
ptrdiff_t ChunkOffset
Definition: GenTL_v1_6.h:662
GC_API DSGetBufferID(DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
GC_API EventGetData(EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
TL_CHAR_ENCODING_LIST
Definition: GenTL_v1_6.h:264
GC_API EventGetInfo(EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API IFGetNumDevices(IF_HANDLE hIface, uint32_t *piNumDevices)
GC_API_P() PDSFlushQueue(DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
GC_API GCInitLib(void)
GC_API TLOpen(TL_HANDLE *phTL)
void * DS_HANDLE
Definition: GenTL_v1_6.h:225
GC_API DSGetNumBufferSegments(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumSegments)
BUFFER_HANDLE BufferHandle
Definition: GenTL_v1_6.h:642
GC_API_P() PIFGetParentTL(IF_HANDLE hIface, TL_HANDLE *phSystem)
PIXELENDIANNESS_IDS
Definition: GenTL_v1_6.h:497
int32_t URL_INFO_CMD
Definition: GenTL_v1_6.h:576
GC_API EventGetDataInfo(EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize)
GC_API_P() PDSStartAcquisition(DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
URL_INFO_CMD_LIST
Definition: GenTL_v1_6.h:560
struct S_PORT_REGISTER_STACK_ENTRY PORT_REGISTER_STACK_ENTRY
GC_API IFGetInfo(IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PEventKill(EVENT_HANDLE hEvent)
int32_t DEVICE_INFO_CMD
Definition: GenTL_v1_6.h:343
GC_API GCWritePortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API GCRegisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
BUFFER_INFO_CMD iInfoCmd
Definition: GenTL_v1_6.h:671
GC_API_P() PGCReadPort(PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
int32_t EVENT_TYPE
Definition: GenTL_v1_6.h:590
GC_API_P() PIFClose(IF_HANDLE hIface)
TL_INFO_CMD_LIST
Definition: GenTL_v1_6.h:272
GC_API DSAnnounceCompositeBuffer(DS_HANDLE hDataStream, size_t iNumSegments, void **ppSegments, size_t *piSizes, void *pPrivate, BUFFER_HANDLE *phBuffer)
void * PORT_HANDLE
Definition: GenTL_v1_6.h:226
GC_API DSGetBufferSegmentInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iSegmentIndex, SEGMENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
#define GC_API
Definition: GenTL_v1_6.h:694
GC_API GCGetPortURL(PORT_HANDLE hPort, char *sURL, size_t *piSize)
int32_t TL_INFO_CMD
Definition: GenTL_v1_6.h:287
uint8_t bool8_t
Definition: GenTL_v1_6.h:108
GC_API DSGetBufferPartInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
void * EVENT_HANDLE
Definition: GenTL_v1_6.h:235
EVENT_TYPE_LIST
Definition: GenTL_v1_6.h:579
int32_t DEVICE_ACCESS_STATUS
Definition: GenTL_v1_6.h:325
GC_API_P() PIFGetInfo(IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSClose(DS_HANDLE hDataStream)
GC_API_P() PIFGetNumDevices(IF_HANDLE hIface, uint32_t *piNumDevices)
PIXELFORMAT_NAMESPACE_IDS
Definition: GenTL_v1_6.h:484
BUFFER_INFO_CMD_LIST
Definition: GenTL_v1_6.h:402
GC_API_P() PDSGetBufferID(DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Sun Jun 18 2023 02:43:55