GenTL_v1_5.h
Go to the documentation of this file.
1 /****************************************************************************
2 (c) 2004-2015 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.5
26  * \author GenTL Subcommittee
27  * \date 2015
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  */
80 
81 
82 #ifndef GC_TLI_CLIENT_H_
83 #define GC_TLI_CLIENT_H_ 1
84 
85 #ifndef GC_USER_DEFINED_TYPES
86 /* The types should be the same as defined in GCTypes.h from GenApi. But in
87  * case you do not have this header the necessary types are defined here. */
88 # if defined(_WIN32)
89 # if defined(_MSC_VER) && _MSC_VER >= 1600 /* VS2010 provides stdint.h */
90 # include <stdint.h>
91 # elif !defined _STDINT_H && !defined _STDINT
92  /* stdint.h is usually not available under Windows */
93  typedef unsigned char uint8_t;
94  typedef __int32 int32_t;
95  typedef unsigned __int32 uint32_t;
96  typedef unsigned __int64 uint64_t;
97 # endif
98 # else
99 # include <stdint.h>
100 # endif
101 
102 # ifdef __cplusplus
103  typedef bool bool8_t;
104 # else
105  typedef uint8_t bool8_t;
106 # endif
107 #endif /* GC_DEFINE_TYPES */
108 
109 #include <stddef.h>
110 
111 
112 /* Function declaration modifiers */
113 #if defined (_WIN32)
114 # ifndef GCTLI_NO_DECLSPEC_STATEMENTS
115 # ifdef GCTLIDLL
116 # define GC_IMPORT_EXPORT __declspec(dllexport)
117 # else
118 # define GC_IMPORT_EXPORT __declspec(dllimport)
119 # endif
120 # else
121 # define GC_IMPORT_EXPORT
122 # endif /* # ifndef GCTLI_NO_DECLSPEC_STATEMENTS */
123 # if defined (_M_IX86) || defined (__i386__)
124 # define GC_CALLTYPE __stdcall
125 # else
126 # define GC_CALLTYPE /* default */
127 # endif
128 # ifndef EXTERN_C
129 # define EXTERN_C extern "C"
130 # endif
131 
132 #elif defined (__GNUC__) && (__GNUC__ >= 4) && (defined (__linux__) || defined (__APPLE__))
133 # define GC_IMPORT_EXPORT __attribute__((visibility("default")))
134 # if defined (__i386__)
135 # define GC_CALLTYPE __attribute__((stdcall))
136 # else
137 # define GC_CALLTYPE /* default */
138 # endif
139 # ifndef EXTERN_C
140 # define EXTERN_C extern "C"
141 # endif
142 
143 #else
144 # error Unknown platform, file needs adaption
145 #endif
146 
147 #ifdef __cplusplus
148 extern "C" {
149  namespace GenTL {
150 #endif
151 
152  /* Errors */
154  {
156  GC_ERR_ERROR = -1001,
163  GC_ERR_NO_DATA = -1008,
165  GC_ERR_IO = -1010,
166  GC_ERR_TIMEOUT = -1011,
167  GC_ERR_ABORT = -1012, /* GenTL v1.1 */
168  GC_ERR_INVALID_BUFFER = -1013, /* GenTL v1.1 */
169  GC_ERR_NOT_AVAILABLE = -1014, /* GenTL v1.2 */
170  GC_ERR_INVALID_ADDRESS = -1015, /* GenTL v1.3 */
171  GC_ERR_BUFFER_TOO_SMALL = -1016, /* GenTL v1.4 */
172  GC_ERR_INVALID_INDEX = -1017, /* GenTL v1.4 */
173  GC_ERR_PARSING_CHUNK_DATA = -1018, /* GenTL v1.4 */
174  GC_ERR_INVALID_VALUE = -1019, /* GenTL v1.4 */
175  GC_ERR_RESOURCE_EXHAUSTED = -1020, /* GenTL v1.4 */
176  GC_ERR_OUT_OF_MEMORY = -1021, /* GenTL v1.4 */
177  GC_ERR_BUSY = -1022, /* GenTL v1.5 */
178 
180  };
181  typedef int32_t GC_ERROR;
182 
183 # ifndef GC_GENTL_HEADER_VERSION
184 
185 # define GenTLMajorVersion 1 /* defines the major version of the GenICam GenTL standard version this header is based on */
186 # define GenTLMinorVersion 5 /* defines the minor version of the GenICam GenTL standard version this header is based on */
187 # define GenTLSubMinorVersion 0 /* defines the sub minor version of the GenICam GenTL standard version this header is based on */
188 
189 # define GC_GENTL_HEADER_VERSION_CODE(major,minor,subminor) (((major)<<24)+((minor)<<16)+(subminor))
190 # define GC_GENTL_HEADER_VERSION GC_GENTL_HEADER_VERSION_CODE(GenTLMajorVersion,GenTLMinorVersion,GenTLSubMinorVersion)
191 
192 # endif /* GC_GENTL_HEADER_VERSION */
193 
194 # ifndef GC_GENTL_DONT_USE_TYPE_DEFINITIONS
195 # define TLTypeMixedName "Mixed" /* Type to use for several supported technologies */
196 # define TLTypeCustomName "Custom" /* Type to use for custom technologies */
197 # define TLTypeGEVName "GEV" /* Type to use for GigE Vision technology */
198 # define TLTypeCLName "CL" /* Type to use for Camera Link technology */
199 # define TLTypeIIDCName "IIDC" /* Type to use for IIDC 1394 technology */
200 # define TLTypeUVCName "UVC" /* Type to use for USB video class devices */
201 # define TLTypeCXPName "CXP" /* Type to use for CoaXPress, V1.3 */
202 # define TLTypeCLHSName "CLHS" /* Type to use for Camera Link HS, V1.3 */
203 # define TLTypeU3VName "U3V" /* Type to use for USB3 Vision Standard, V1.4 */
204 # define TLTypeETHERNETName "Ethernet" /* Type to use for Ethernet devices, V1.3 */
205 # define TLTypePCIName "PCI" /* Type to use for PCI/PCIe devices, V1.3 */
206 # endif /* GC_GENTL_DONT_USE_TYPE_DEFINITIONS */
207 
208 # ifndef GC_GENTL_DONT_USE_MODULE_NAMES
209 # define TLSystemModuleName "TLSystem" /* Name to identify a system module */
210 # define TLInterfaceModuleName "TLInterface" /* Name to identify a interface module */
211 # define TLDeviceModuleName "TLDevice" /* Name to identify a device module */
212 # define TLDataStreamModuleName "TLDataStream" /* Name to identify a data stream module */
213 # define TLBufferModuleName "TLBuffer" /* Name to identify a buffer module */
214 # define TLRemoteDeviceModuleName "Device" /* Name to identify a remote device module */
215 # endif /* GC_GENTL_DONT_USE_MODULE_NAMES */
216 
217  /* Handles */
218  typedef void * TL_HANDLE; /* Transport Layer handle, obtained through the TLOpen */
219  typedef void * IF_HANDLE; /* Interface handle, obtained through ::TLOpenInterface */
220  typedef void * DEV_HANDLE; /* Device Handle, obtained through the ::IFOpenDevice */
221  typedef void * DS_HANDLE; /* Handle to an image stream object, obtained through DevOpenDataStream */
222  typedef void * PORT_HANDLE; /* A Port handle is used to access the register space of a port */
223  /* a PORT_HANDLE can be one of the following TL_HANDLE, IF_HANDLE, */
224  /* DEV_HANDLE, handle to a device port, obtained through ::DevGetPort, */
225  /* DS_HANDLE, BUFFER_HANDLE */
226 
227  typedef void * BUFFER_HANDLE; /* BufferHandle, obtained through the ::DSAnnounceBuffer function */
228  typedef void * EVENTSRC_HANDLE; /* A Event source handle is used to register a OS Event and to retrieve a GenTL event handle */
229  /* a EVENTSRC_HANDLE can be on of the following TL_HANDLE, */
230  /* IF_HANDLE, DEV_HANDLE, A handle to a device port, obtained through ::DevGetPort */
231  /* DS_HANDLE, BUFFER_HANDLE */
232  typedef void * EVENT_HANDLE; /* Event Handle */
233 
234 # define GENTL_INVALID_HANDLE NULL /* Invalid handle value, V1.4 */
235 # define GENTL_INFINITE 0xFFFFFFFFFFFFFFFFULL /* Infinite value to be used in various function calls, V1.4 */
236 
237  /* Defines the data type possible for the various Info functions. */
239  {
240  INFO_DATATYPE_UNKNOWN = 0, /* Unknown data type */
241  INFO_DATATYPE_STRING = 1, /* NULL-terminated C string (ASCII encoded). */
242  INFO_DATATYPE_STRINGLIST = 2, /* Concatenated INFO_DATATYPE_STRING list. End of list is signaled with an additional NULL. */
243  INFO_DATATYPE_INT16 = 3, /* Signed 16 bit integer. */
244  INFO_DATATYPE_UINT16 = 4, /* Unsigned 16 bit integer */
245  INFO_DATATYPE_INT32 = 5, /* Signed 32 bit integer */
246  INFO_DATATYPE_UINT32 = 6, /* Unsigned 32 bit integer */
247  INFO_DATATYPE_INT64 = 7, /* Signed 64 bit integer */
248  INFO_DATATYPE_UINT64 = 8, /* Unsigned 64 bit integer */
249  INFO_DATATYPE_FLOAT64 = 9, /* Signed 64 bit floating point number. */
250  INFO_DATATYPE_PTR = 10, /* Pointer type (void*). Size is platform dependent (32 bit on 32 bit platforms). */
251  INFO_DATATYPE_BOOL8 = 11, /* Boolean value occupying 8 bit. 0 for false and anything for true. */
252  INFO_DATATYPE_SIZET = 12, /* Platform dependent unsigned integer (32 bit on 32 bit platforms). */
253  INFO_DATATYPE_BUFFER = 13, /* Like a INFO_DATATYPE_STRING but with arbitrary data and no NULL termination. */
254  INFO_DATATYPE_PTRDIFF = 14, /* Platform dependent signed integer (32 bit on 32 bit platforms). GenTL v1.3 */
255 
256  INFO_DATATYPE_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
257  };
258  typedef int32_t INFO_DATATYPE;
259 
260  /* Defines char encoding schemes used by the producer, GenTL v1.4 */
262  {
265  };
266  typedef int32_t TL_CHAR_ENCODING; /* GenTL v1.4 */
267 
268  /* System module information commands for the GenICam::TL::Client::TLGetInfo and GenICam::TL::Client::GCGetInfo functions. */
270  {
271  TL_INFO_ID = 0, /* STRING Transport layer ID. */
272  TL_INFO_VENDOR = 1, /* STRING Transport layer vendor name. */
273  TL_INFO_MODEL = 2, /* STRING Transport layer model name. */
274  TL_INFO_VERSION = 3, /* STRING Transport layer version. */
275  TL_INFO_TLTYPE = 4, /* STRING Transport layer technology that is supported. */
276  TL_INFO_NAME = 5, /* STRING File name including extension of the library. */
277  TL_INFO_PATHNAME = 6, /* STRING Full path including file name and extension of the library. */
278  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). */
279  TL_INFO_CHAR_ENCODING = 8, /* INT32 Reporting the char encoding used by this Producer, GenTL v1.4 */
280  TL_INFO_GENTL_VER_MAJOR = 9, /* UINT32 Major number of the GenTL spec this producer complies with, GenTL v1.5 */
281  TL_INFO_GENTL_VER_MINOR = 10, /* UINT32 Minor number of the GenTL spec this producer complies with, GenTL v1.5 */
282  TL_INFO_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
283  };
284  typedef int32_t TL_INFO_CMD;
285 
286  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::IFGetInfo function from the Interface module. */
288  {
289  INTERFACE_INFO_ID = 0, /* STRING Unique ID of the interface. */
290  INTERFACE_INFO_DISPLAYNAME = 1, /* STRING User readable name of the interface. */
291  INTERFACE_INFO_TLTYPE = 2, /* STRING Transport layer technology that is supported. */
292 
293  INTERFACE_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
294  };
295  typedef int32_t INTERFACE_INFO_CMD;
296 
297  /* This enumeration defines flags of how a device is to be opened with the GenICam::TL::Client::IFOpenDevice function. */
299  {
300  DEVICE_ACCESS_UNKNOWN = 0, /* Not used in a command. Can be used to initialize a variable to query that information. */
301  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. */
302  DEVICE_ACCESS_READONLY = 2, /* Open the device read only. All Port functions can only read from the device. */
303  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. */
304  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. */
305 
306  DEVICE_ACCESS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
307  };
308  typedef int32_t DEVICE_ACCESS_FLAGS;
309 
310  /* This enumeration defines values for the accessibility of the device to be returned in the GenICam::TL::Client::DevGetInfo function on a device handle. */
312  {
313  DEVICE_ACCESS_STATUS_UNKNOWN = 0, /* The device accessibility is not known. */
314  DEVICE_ACCESS_STATUS_READWRITE = 1, /* The device is available for read/write access. */
315  DEVICE_ACCESS_STATUS_READONLY = 2, /* The device is available for read only access. */
316  DEVICE_ACCESS_STATUS_NOACCESS = 3, /* The device is not accessible. */
317  DEVICE_ACCESS_STATUS_BUSY = 4, /* The device has already been opened by another process/host. GenTL v1.5 */
318  DEVICE_ACCESS_STATUS_OPEN_READWRITE = 5, /* The device has already been opened by this process. GenTL v1.5 */
319  DEVICE_ACCESS_STATUS_OPEN_READONLY = 6, /* The device has already been opened by this process. GenTL v1.5 */
320 
321  DEVICE_ACCESS_STATUS_CUSTOM_ID = 1000 /* Starting value for custom IDs. */
322  };
323  typedef int32_t DEVICE_ACCESS_STATUS;
324 
325  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::DevGetInfo function on a device handle. */
327  {
328  DEVICE_INFO_ID = 0, /* STRING Unique ID of the device. */
329  DEVICE_INFO_VENDOR = 1, /* STRING Device vendor name. */
330  DEVICE_INFO_MODEL = 2, /* STRING Device model name. */
331  DEVICE_INFO_TLTYPE = 3, /* STRING Transport layer technology that is supported. */
332  DEVICE_INFO_DISPLAYNAME = 4, /* STRING String containing a display name for the device ( including a unique id ) */
333  DEVICE_INFO_ACCESS_STATUS = 5, /* INT32 Gets the access mode the GenTL Producer has on the opened device. (DEVICE_ACCESS_STATUS enumeration value). */
334  DEVICE_INFO_USER_DEFINED_NAME = 6, /* STRING String containing the user defined name, GenTL v1.4 */
335  DEVICE_INFO_SERIAL_NUMBER = 7, /* STRING String containing the device's serial number, GenTL v1.4 */
336  DEVICE_INFO_VERSION = 8, /* STRING String containing the device version, GenTL v1.4 */
337  DEVICE_INFO_TIMESTAMP_FREQUENCY = 9, /* UINT64 Tick-frequency of the time stamp clock, GenTL v1.4 */
338 
339  DEVICE_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
340  };
341  typedef int32_t DEVICE_INFO_CMD;
342 
343  /* This enumeration defines special stop flags for the acquisition engine. The function used is GenICam::TL::Client::DSStopAcquisition. */
345  {
346  ACQ_STOP_FLAGS_DEFAULT = 0, /* Stop the acquisition engine when the currently running tasks like filling a buffer are completed (default behavior). */
347  ACQ_STOP_FLAGS_KILL = 1, /* Stop the acquisition engine immediately and leave buffers currently being filled in the Input Buffer Pool. */
348 
349  ACQ_STOP_FLAGS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
350  };
351  typedef int32_t ACQ_STOP_FLAGS;
352 
353  /* This enumeration defines special start flags for the acquisition engine. The function used is GenICam::TL::Client::DSStartAcquisition. */
355  {
356  ACQ_START_FLAGS_DEFAULT = 0, /* Default behavior. */
357 
358  ACQ_START_FLAGS_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
359  };
360  typedef int32_t ACQ_START_FLAGS;
361 
362  /* This enumeration commands from which to which queue/pool buffers are flushed with the GenICam::TL::Client::DSFlushQueue function. */
364  {
365  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. */
366  ACQ_QUEUE_OUTPUT_DISCARD = 1, /* Discards all buffers in the output queue and if necessary remove the entries from the event data queue. */
367  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. */
368  ACQ_QUEUE_UNQUEUED_TO_INPUT = 3, /* Puts all buffers that are not in the input pool or the output queue in the input pool. */
369  ACQ_QUEUE_ALL_DISCARD = 4, /* Discards all buffers in the input pool and output queue. */
370 
371  ACQ_QUEUE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
372  };
373  typedef int32_t ACQ_QUEUE_TYPE;
374 
375  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::DSGetInfo function on a data stream handle */
377  {
378  STREAM_INFO_ID = 0, /* STRING Unique ID of the data stream. */
379  STREAM_INFO_NUM_DELIVERED = 1, /* UINT64 Number of delivered buffers since last acquisition start. */
380  STREAM_INFO_NUM_UNDERRUN = 2, /* UINT64 Number of lost buffers due to queue underrun. */
381  STREAM_INFO_NUM_ANNOUNCED = 3, /* SIZET Number of announced buffers. */
382  STREAM_INFO_NUM_QUEUED = 4, /* SIZET Number of buffers in the input pool. */
383  STREAM_INFO_NUM_AWAIT_DELIVERY = 5, /* SIZET Number of buffers in the output queue. */
384  STREAM_INFO_NUM_STARTED = 6, /* UINT64 Number of buffers started in the acquisition engine. */
385  STREAM_INFO_PAYLOAD_SIZE = 7, /* SIZET Size of the expected data in bytes. */
386  STREAM_INFO_IS_GRABBING = 8, /* BOOL8 Flag indicating whether the acquisition engine is started or not. */
387  STREAM_INFO_DEFINES_PAYLOADSIZE = 9, /* BOOL8 Flag that indicated that this data stream defines a payload size independent from the remote device. */
388  STREAM_INFO_TLTYPE = 10, /* STRING Transport layer technology that is supported. */
389  STREAM_INFO_NUM_CHUNKS_MAX = 11, /* SIZET Max number of chunks in a buffer, if known. GenTL v1.3 */
390  STREAM_INFO_BUF_ANNOUNCE_MIN = 12, /* SIZET Min number of buffers to announce before acq can start, if known. GenTL v1.3 */
391  STREAM_INFO_BUF_ALIGNMENT = 13, /* SIZET Buffer alignment in bytes. GenTL v1.3 */
392 
393  STREAM_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
394  };
395  typedef int32_t STREAM_INFO_CMD;
396 
397  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::DSGetBufferInfo function on a buffer handle. */
399  {
400  BUFFER_INFO_BASE = 0, /* PTR Base address of the buffer memory. */
401  BUFFER_INFO_SIZE = 1, /* SIZET Size of the buffer in bytes. */
402  BUFFER_INFO_USER_PTR = 2, /* PTR Private data pointer of the GenTL Consumer. */
403  BUFFER_INFO_TIMESTAMP = 3, /* UINT64 Timestamp the buffer was acquired. */
404  BUFFER_INFO_NEW_DATA = 4, /* BOOL8 Flag to indicate that the buffer contains new data since the last call. */
405  BUFFER_INFO_IS_QUEUED = 5, /* BOOL8 Flag to indicate if the buffer is in the input pool or output queue. */
406  BUFFER_INFO_IS_ACQUIRING = 6, /* BOOL8 Flag to indicate that the buffer is currently being filled with data. */
407  BUFFER_INFO_IS_INCOMPLETE = 7, /* BOOL8 Flag to indicate that a buffer was filled but an error occurred during that process. */
408  BUFFER_INFO_TLTYPE = 8, /* STRING Transport layer technology that is supported. */
409  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. */
410  BUFFER_INFO_WIDTH = 10, /* SIZET GenTL v1.2 */
411  BUFFER_INFO_HEIGHT = 11, /* SIZET GenTL v1.2 */
412  BUFFER_INFO_XOFFSET = 12, /* SIZET GenTL v1.2 */
413  BUFFER_INFO_YOFFSET = 13, /* SIZET GenTL v1.2 */
414  BUFFER_INFO_XPADDING = 14, /* SIZET GenTL v1.2 */
415  BUFFER_INFO_YPADDING = 15, /* SIZET GenTL v1.2 */
416  BUFFER_INFO_FRAMEID = 16, /* UINT64 GenTL v1.2 */
417  BUFFER_INFO_IMAGEPRESENT = 17, /* BOOL8 GenTL v1.2 */
418  BUFFER_INFO_IMAGEOFFSET = 18, /* SIZET GenTL v1.2 */
419  BUFFER_INFO_PAYLOADTYPE = 19, /* SIZET GenTL v1.2 */
420  BUFFER_INFO_PIXELFORMAT = 20, /* UINT64 GenTL v1.2 */
421  BUFFER_INFO_PIXELFORMAT_NAMESPACE = 21, /* UINT64 GenTL v1.2 */
422  BUFFER_INFO_DELIVERED_IMAGEHEIGHT = 22, /* SIZET GenTL v1.2 */
423  BUFFER_INFO_DELIVERED_CHUNKPAYLOADSIZE = 23, /* SIZET GenTL v1.2 */
424  BUFFER_INFO_CHUNKLAYOUTID = 24, /* UINT64 GenTL v1.2 */
425  BUFFER_INFO_FILENAME = 25, /* STRING GenTL v1.2 */
426  BUFFER_INFO_PIXEL_ENDIANNESS = 26, /* INT32 GenTL v1.4 */
427  BUFFER_INFO_DATA_SIZE = 27, /* SIZET GenTL v1.4 */
428  BUFFER_INFO_TIMESTAMP_NS = 28, /* UINT64 GenTL v1.4 */
429  BUFFER_INFO_DATA_LARGER_THAN_BUFFER = 29, /* BOOL8 GenTL v1.4 */
430  BUFFER_INFO_CONTAINS_CHUNKDATA = 30, /* BOOL8 GenTL v1.4 */
431 
432  BUFFER_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
433  };
434  typedef int32_t BUFFER_INFO_CMD;
435 
436  /* This enumeration defines commands to retrieve information about individual data parts in a multi-part buffer
437  using the GenICam::TL::Client::DSGetBufferPartInfo function. Introduced in GenTL v1.5. */
439  {
440  BUFFER_PART_INFO_BASE = 0, /* PTR Base address of the buffer part memory. */
441  BUFFER_PART_INFO_DATA_SIZE = 1, /* SIZET Size of the buffer part in bytes. */
442  BUFFER_PART_INFO_DATA_TYPE = 2, /* SIZET Type of the data in given part (PARTDATATYPE_ID enumeration value). */
443  BUFFER_PART_INFO_DATA_FORMAT = 3, /* UINT64 Format of individual items (such as pixels) in the buffer part. */
444  BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE = 4, /* UINT64 Allows interpretation of BUFFER_PART_INFO_DATA_FORMAT (PIXELFORMAT_NAMESPACE_ID enumeration value). */
445  BUFFER_PART_INFO_WIDTH = 5, /* SIZET Width of data in the buffer part in pixels. */
446  BUFFER_PART_INFO_HEIGHT = 6, /* SIZET Expected height of data in the buffer part in pixels . */
447  BUFFER_PART_INFO_XOFFSET = 7, /* SIZET Horizontal offset of data in the buffer part in pixels. */
448  BUFFER_PART_INFO_YOFFSET = 8, /* SIZET Vertical offset of data in the buffer part in pixels. */
449  BUFFER_PART_INFO_XPADDING = 9, /* SIZET Horizontal padding of data in the buffer part in pixels. */
450  BUFFER_PART_INFO_SOURCE_ID = 10, /* UINT64 Identifier allowing to group data parts belonging to the same source. */
451  BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT = 11, /* SIZET Height of the data currently in the buffer part in pixels*/
452  BUFFER_PART_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
453  };
454  typedef int32_t BUFFER_PART_INFO_CMD; /* GenTL v1.5 */
455 
456  /* Enumeration of TLType dependent payload types. Introduced in GenTL v1.2 */
458  {
459  PAYLOAD_TYPE_UNKNOWN = 0, /* GenTL v1.2 */
460  PAYLOAD_TYPE_IMAGE = 1, /* GenTL v1.2 */
461  PAYLOAD_TYPE_RAW_DATA = 2, /* GenTL v1.2 */
462  PAYLOAD_TYPE_FILE = 3, /* GenTL v1.2 */
463  PAYLOAD_TYPE_CHUNK_DATA = 4, /* GenTL v1.2, Deprecated in GenTL 1.5*/
464  PAYLOAD_TYPE_JPEG = 5, /* GenTL v1.4 */
465  PAYLOAD_TYPE_JPEG2000 = 6, /* GenTL v1.4 */
466  PAYLOAD_TYPE_H264 = 7, /* GenTL v1.4 */
467  PAYLOAD_TYPE_CHUNK_ONLY = 8, /* GenTL v1.4 */
468  PAYLOAD_TYPE_DEVICE_SPECIFIC = 9, /* GenTL v1.4 */
469  PAYLOAD_TYPE_MULTI_PART = 10, /* GenTL v1.5 */
470 
471  PAYLOAD_TYPE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
472  };
473  typedef int32_t PAYLOADTYPE_INFO_ID;
474 
475  /* Enumeration of TLType dependent pixel format namespaces introduced GenTL v1.2 */
477  {
478  PIXELFORMAT_NAMESPACE_UNKNOWN = 0, /* GenTL v1.2 */
479  PIXELFORMAT_NAMESPACE_GEV = 1, /* GenTL v1.2 */
480  PIXELFORMAT_NAMESPACE_IIDC = 2, /* GenTL v1.2 */
481  PIXELFORMAT_NAMESPACE_PFNC_16BIT = 3, /* GenTL v1.4 */
482  PIXELFORMAT_NAMESPACE_PFNC_32BIT = 4, /* GenTL v1.4 */
483 
484  PIXELFORMAT_NAMESPACE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
485  };
486  typedef int32_t PIXELFORMAT_NAMESPACE_ID; /* GenTL v1.2 */
487 
488  /* Enumeration of pixel endianness values. Introduced in GenTL v1.4 */
490  {
491  PIXELENDIANNESS_UNKNOWN = 0, /* Unknown pixel endianness. GenTL v1.4 */
492  PIXELENDIANNESS_LITTLE = 1, /* Little endian pixel data. GenTL v1.4 */
493  PIXELENDIANNESS_BIG = 2 /* Big endian pixel data. GenTL v1.4 */
494  };
495  typedef int32_t PIXELENDIANNESS_ID; /* GenTL v1.4*/
496 
497  /* Enumeration describing which data type is present in given buffer part. Introduced in GenTL v1.5 */
499  {
500  PART_DATATYPE_UNKNOWN = 0, /* Unknown data type */
501  PART_DATATYPE_2D_IMAGE = 1, /* Color or monochrome 2D image. */
502  PART_DATATYPE_2D_PLANE_BIPLANAR = 2, /* Single color plane of a planar 2D image consisting of 2 planes. */
503  PART_DATATYPE_2D_PLANE_TRIPLANAR = 3, /* Single color plane of a planar 2D image consisting of 3 planes. */
504  PART_DATATYPE_2D_PLANE_QUADPLANAR = 4, /* Single color plane of a planar 2D image consisting of 4 planes. */
505  PART_DATATYPE_3D_IMAGE = 5, /* 3D image (pixel coordinates). */
506  PART_DATATYPE_3D_PLANE_BIPLANAR = 6, /* Single plane of a planar 3D image consisting of 2 planes. */
507  PART_DATATYPE_3D_PLANE_TRIPLANAR = 7, /* Single plane of a planar 3D image consisting of 3 planes. */
508  PART_DATATYPE_3D_PLANE_QUADPLANAR = 8, /* Single plane of a planar 3D image consisting of 4 planes. */
509  PART_DATATYPE_CONFIDENCE_MAP = 9, /* Confidence of the individual pixel values. */
510 
511  PART_DATATYPE_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
512  };
513  typedef int32_t PARTDATATYPE_ID; /* GenTL v1.5*/
514 
515  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::GCGetPortInfo function on a module or remote device handle. */
517  {
518  PORT_INFO_ID = 0, /* STRING Unique ID of the port. */
519  PORT_INFO_VENDOR = 1, /* STRING Port vendor name. */
520  PORT_INFO_MODEL = 2, /* STRING Port model name. */
521  PORT_INFO_TLTYPE = 3, /* STRING Transport layer technology that is supported. */
522  PORT_INFO_MODULE = 4, /* STRING GenTL Module the port refers to. */
523  PORT_INFO_LITTLE_ENDIAN = 5, /* BOOL8 Flag indicating that the port data is little endian. */
524  PORT_INFO_BIG_ENDIAN = 6, /* BOOL8 Flag indicating that the port data is big endian. */
525  PORT_INFO_ACCESS_READ = 7, /* BOOL8 Port has read access. */
526  PORT_INFO_ACCESS_WRITE = 8, /* BOOL8 Port has write access. */
527  PORT_INFO_ACCESS_NA = 9, /* BOOL8 Port is not accessible. */
528  PORT_INFO_ACCESS_NI = 10, /* BOOL8 Port is not implemented. */
529  PORT_INFO_VERSION = 11, /* STRING Version of the port. */
530  PORT_INFO_PORTNAME = 12, /* STRING Name of the port as referenced in the XML description. */
531 
532  PORT_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
533  };
534  typedef int32_t PORT_INFO_CMD;
535 
536  /* This enumeration defines enum values returned by the URL_INFO_SCHEME command.
537  introduced in GenTL v1.5 */
539  {
540  URL_SCHEME_LOCAL = 0, /* The XML can be read from the local register map */
541  URL_SCHEME_HTTP = 1, /* The XML can be downloaded from a http server */
542  URL_SCHEME_FILE = 2, /* The XML can be read from the local hard drive */
543 
544  URL_SCHEME_CUSTOM_ID = 1000 /* Starting value for custom scheme locations */
545  };
546  typedef int32_t URL_SCHEME_ID;
547 
548  /* This enumeration defines commands to retrieve information with the GenICam::TL::Client::GCGetPortURLInfo
549  function on a module or remote device handle. Introduced in GenTL v1.1 */
551  {
552  URL_INFO_URL = 0, /* STRING URL as defined in chapter 4.1.2 GenTL v1.1 */
553  URL_INFO_SCHEMA_VER_MAJOR = 1, /* INT32 Major version of the schema this URL refers to. GenTL v1.1 */
554  URL_INFO_SCHEMA_VER_MINOR = 2, /* INT32 Minor version of the schema this URL refers to. GenTL v1.1 */
555  URL_INFO_FILE_VER_MAJOR = 3, /* INT32 Major version of the XML-file this URL refers to. GenTL v1.1 */
556  URL_INFO_FILE_VER_MINOR = 4, /* INT32 Minor version of the XML-file this URL refers to. GenTL v1.1 */
557  URL_INFO_FILE_VER_SUBMINOR = 5, /* INT32 Subminor version of the XML-file this URL refers to. GenTL v1.1 */
558  URL_INFO_FILE_SHA1_HASH = 6, /* BUFFER 160-bit SHA1 Hash code of XML-file. GenTL v1.4 */
559  URL_INFO_FILE_REGISTER_ADDRESS = 7, /* UINT64 Register address in the device's register map. GenTL v1.5 */
560  URL_INFO_FILE_SIZE = 8, /* UINT64 File size in bytes. GenTL v1.5 */
561  URL_INFO_SCHEME = 9, /* INT32 Scheme of the URL as defined in URL_SCHEME_IDS. GenTL v1.5 */
562  URL_INFO_FILENAME = 10, /* STRING File name if the scheme of the URL is file. GenTL v1.5 */
563 
564  URL_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
565  };
566  typedef int32_t URL_INFO_CMD; /* GenTL v1.1 */
567 
568  /* Known event types that can be registered on certain modules with the GenICam::TL::Client::GCRegisterEvent function. */
570  {
571  EVENT_ERROR = 0, /* Notification on module errors. */
572  EVENT_NEW_BUFFER = 1, /* Notification on newly filled buffers. */
573  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. */
574  EVENT_FEATURE_CHANGE = 3, /* Notification if the GenTL Producer library wants to manually set a feature in the GenICam GenApi instance using the module. */
575  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. */
576  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 */
577 
578  EVENT_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
579  };
580  typedef int32_t EVENT_TYPE;
581 
582  /* Event info command */
584  {
585  EVENT_EVENT_TYPE = 0, /* INT32 The event type of the event handle (EVENT_TYPE enum value). */
586  EVENT_NUM_IN_QUEUE = 1, /* SIZET Number of events in the event data queue. */
587  EVENT_NUM_FIRED = 2, /* UINT64 Number of events that were fired since the creation of the module. */
588  EVENT_SIZE_MAX = 3, /* SIZET Max size of data carried with an event in bytes. GenTL v1.2 */
589  EVENT_INFO_DATA_SIZE_MAX = 4, /* SIZET Max size of data provided through EventGetDataInfo in bytes. GenTL v1.2 */
590 
591  EVENT_INFO_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
592  };
593  typedef int32_t EVENT_INFO_CMD;
594 
595  /* Event data info command */
597  {
598  EVENT_DATA_ID = 0, /* Event specific Unique Event ID (String or Number)*/
599  EVENT_DATA_VALUE = 1, /* Event specific Data */
600  EVENT_DATA_NUMID = 2, /* UINT64 Numeric representation of the unique Event ID, GenTL v1.3. */
601 
602  EVENT_DATA_CUSTOM_ID = 1000 /* Starting value for GenTL Producer custom IDs. */
603  };
604  typedef int32_t EVENT_DATA_INFO_CMD;
605 
606  /* Structure of the data returned from a signaled "New Buffer" event. */
607 # pragma pack (push, 1)
608  typedef struct S_EVENT_NEW_BUFFER
609  {
610  BUFFER_HANDLE BufferHandle; /* Buffer handle which contains new data. */
611  void* pUserPointer; /* User pointer provided at announcement of the buffer. */
613 # pragma pack (pop)
614 
615  /* Structure to be use with GCWritePortStacked and GCReadPortStacked. */
616 # pragma pack (push, 1)
618  {
619  uint64_t Address; /* Address of the register. */
620  void* pBuffer; /* Pointer to the buffer containing the data. */
621  size_t Size; /* Number of bytes to read write. */
623 # pragma pack (pop)
624 
625 # pragma pack (push, 1)
626  /* Structure carrying information about a single chunk in the buffer, V1.3 */
627  typedef struct S_SINGLE_CHUNK_DATA
628  {
629  uint64_t ChunkID; /* Numeric representation of ChunkID */
630  ptrdiff_t ChunkOffset; /* Chunk offset in the buffer */
631  size_t ChunkLength; /* Size of the chunk data */
633 # pragma pack (pop)
634 
635 
636  /* C API Interface Functions */
637 # define GC_API GC_IMPORT_EXPORT GC_ERROR GC_CALLTYPE
638  GC_API GCGetInfo ( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
639 
640  GC_API GCGetLastError ( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
641 
642  GC_API GCInitLib ( void );
643  GC_API GCCloseLib ( void );
644 
645  GC_API GCReadPort ( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
646  GC_API GCWritePort ( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
647  GC_API GCGetPortURL ( PORT_HANDLE hPort, char *sURL, size_t *piSize );
648 
649  GC_API GCGetPortInfo ( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
650 
651  GC_API GCRegisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
652  GC_API GCUnregisterEvent ( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
653 
654  GC_API EventGetData ( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
655  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 );
656  GC_API EventGetInfo ( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
657  GC_API EventFlush ( EVENT_HANDLE hEvent );
658  GC_API EventKill ( EVENT_HANDLE hEvent );
659 
660  GC_API TLOpen ( TL_HANDLE *phTL );
661  GC_API TLClose ( TL_HANDLE hTL );
662  GC_API TLGetInfo ( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
663 
664  GC_API TLGetNumInterfaces ( TL_HANDLE hTL, uint32_t *piNumIfaces );
665  GC_API TLGetInterfaceID ( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
666  GC_API TLGetInterfaceInfo ( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
667  GC_API TLOpenInterface ( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
668  GC_API TLUpdateInterfaceList ( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
669 
670  GC_API IFClose ( IF_HANDLE hIface );
671  GC_API IFGetInfo ( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
672 
673  GC_API IFGetNumDevices ( IF_HANDLE hIface, uint32_t *piNumDevices );
674  GC_API IFGetDeviceID ( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
675  GC_API IFUpdateDeviceList ( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
676  GC_API IFGetDeviceInfo ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
677  GC_API IFOpenDevice ( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice );
678 
679  GC_API DevGetPort ( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
680  GC_API DevGetNumDataStreams ( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
681  GC_API DevGetDataStreamID ( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
682  GC_API DevOpenDataStream ( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
683  GC_API DevGetInfo ( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
684  GC_API DevClose ( DEV_HANDLE hDevice );
685 
686  GC_API DSAnnounceBuffer ( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
687  GC_API DSAllocAndAnnounceBuffer( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
688  GC_API DSFlushQueue ( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
689  GC_API DSStartAcquisition ( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
690  GC_API DSStopAcquisition ( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
691  GC_API DSGetInfo ( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
692  GC_API DSGetBufferID ( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
693  GC_API DSClose ( DS_HANDLE hDataStream );
694 
695  GC_API DSRevokeBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
696  GC_API DSQueueBuffer ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
697  GC_API DSGetBufferInfo ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
698 
699  /* GenTL v1.1 */
700  GC_API GCGetNumPortURLs ( PORT_HANDLE hPort, uint32_t *piNumURLs );
701  GC_API GCGetPortURLInfo ( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
702  GC_API GCReadPortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
703  GC_API GCWritePortStacked ( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
704 
705  /* GenTL v1.3 */
706  GC_API DSGetBufferChunkData ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
707 
708  /* GenTL v1.4 */
709  GC_API IFGetParentTL ( IF_HANDLE hIface, TL_HANDLE *phSystem );
710  GC_API DevGetParentIF ( DEV_HANDLE hDevice, IF_HANDLE *phIface );
711  GC_API DSGetParentDev ( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
712 
713  /* GenTL v1.5 */
714  GC_API DSGetNumBufferParts ( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
715  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 );
716 
717  /* typedefs for dynamic loading */
718 # define GC_API_P(function) typedef GC_ERROR( GC_CALLTYPE *function )
719  GC_API_P(PGCGetInfo )( TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
720  GC_API_P(PGCGetLastError )( GC_ERROR *piErrorCode, char *sErrText, size_t *piSize );
721  GC_API_P(PGCInitLib )( void );
722  GC_API_P(PGCCloseLib )( void );
723  GC_API_P(PGCReadPort )( PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize );
724  GC_API_P(PGCWritePort )( PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize );
725  GC_API_P(PGCGetPortURL )( PORT_HANDLE hPort, char *sURL, size_t *piSize );
726  GC_API_P(PGCGetPortInfo )( PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
727 
728  GC_API_P(PGCRegisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent );
729  GC_API_P(PGCUnregisterEvent )( EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID );
730  GC_API_P(PEventGetData )( EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout );
731  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 );
732  GC_API_P(PEventGetInfo )( EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
733  GC_API_P(PEventFlush )( EVENT_HANDLE hEvent );
734  GC_API_P(PEventKill )( EVENT_HANDLE hEvent );
735  GC_API_P(PTLOpen )( TL_HANDLE *phTL );
736  GC_API_P(PTLClose )( TL_HANDLE hTL );
737  GC_API_P(PTLGetInfo )( TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
738  GC_API_P(PTLGetNumInterfaces )( TL_HANDLE hTL, uint32_t *piNumIfaces );
739  GC_API_P(PTLGetInterfaceID )( TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize );
740  GC_API_P(PTLGetInterfaceInfo )( TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
741  GC_API_P(PTLOpenInterface )( TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface );
742  GC_API_P(PTLUpdateInterfaceList )( TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout );
743  GC_API_P(PIFClose )( IF_HANDLE hIface );
744  GC_API_P(PIFGetInfo )( IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
745  GC_API_P(PIFGetNumDevices )( IF_HANDLE hIface, uint32_t *piNumDevices );
746  GC_API_P(PIFGetDeviceID )( IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize );
747  GC_API_P(PIFUpdateDeviceList )( IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout );
748  GC_API_P(PIFGetDeviceInfo )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
749  GC_API_P(PIFOpenDevice )( IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice );
750 
751  GC_API_P(PDevGetPort )( DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice );
752  GC_API_P(PDevGetNumDataStreams )( DEV_HANDLE hDevice, uint32_t *piNumDataStreams );
753  GC_API_P(PDevGetDataStreamID )( DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize );
754  GC_API_P(PDevOpenDataStream )( DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream );
755  GC_API_P(PDevGetInfo )( DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
756  GC_API_P(PDevClose )( DEV_HANDLE hDevice );
757 
758  GC_API_P(PDSAnnounceBuffer )( DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
759  GC_API_P(PDSAllocAndAnnounceBuffer)( DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer );
760  GC_API_P(PDSFlushQueue )( DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation );
761  GC_API_P(PDSStartAcquisition )( DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire );
762  GC_API_P(PDSStopAcquisition )( DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags );
763  GC_API_P(PDSGetInfo )( DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
764  GC_API_P(PDSGetBufferID )( DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer );
765  GC_API_P(PDSClose )( DS_HANDLE hDataStream );
766  GC_API_P(PDSRevokeBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate );
767  GC_API_P(PDSQueueBuffer )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer );
768  GC_API_P(PDSGetBufferInfo )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
769 
770  /* GenTL v1.1 */
771  GC_API_P(PGCGetNumPortURLs )( PORT_HANDLE hPort, uint32_t *iNumURLs );
772  GC_API_P(PGCGetPortURLInfo )( PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize );
773  GC_API_P(PGCReadPortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
774  GC_API_P(PGCWritePortStacked )( PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries );
775 
776  /* GenTL v1.3 */
777  GC_API_P(PDSGetBufferChunkData )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks );
778 
779  /* GenTL v1.4 */
780  GC_API_P(PIFGetParentTL )( IF_HANDLE hIface, TL_HANDLE *phSystem );
781  GC_API_P(PDevGetParentIF )( DEV_HANDLE hDevice, IF_HANDLE *phIface );
782  GC_API_P(PDSGetParentDev )( DS_HANDLE hDataStream, DEV_HANDLE *phDevice );
783 
784  /* GenTL v1.5 */
785  GC_API_P(PDSGetNumBufferParts )( DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts );
786  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 );
787 #ifdef __cplusplus
788  } /* end of namespace GenTL */
789 } /* end of extern "C" */
790 #endif
791 #endif /* GC_TLI_CLIENT_H_ */
GC_API_P() PGCInitLib(void)
uint64_t Address
Definition: GenTL_v1_5.h:619
GC_API_P() PDevGetParentIF(DEV_HANDLE hDevice, IF_HANDLE *phIface)
GC_API DevGetPort(DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
int32_t ACQ_STOP_FLAGS
Definition: GenTL_v1_5.h:351
GC_API DSAnnounceBuffer(DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API EventGetData(EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
GC_API IFGetNumDevices(IF_HANDLE hIface, uint32_t *piNumDevices)
GC_API_P() PGCGetPortURLInfo(PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API GCInitLib(void)
PAYLOADTYPE_INFO_IDS
Definition: GenTL_v1_5.h:457
int32_t INTERFACE_INFO_CMD
Definition: GenTL_v1_5.h:295
GC_API_P() PGCGetNumPortURLs(PORT_HANDLE hPort, uint32_t *iNumURLs)
GC_API EventFlush(EVENT_HANDLE hEvent)
void * DS_HANDLE
Definition: GenTL_v1_5.h:221
GC_API_P() PTLOpen(TL_HANDLE *phTL)
GC_API_P() PDSStopAcquisition(DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
GC_API_P() PDevOpenDataStream(DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
ACQ_STOP_FLAGS_LIST
Definition: GenTL_v1_5.h:344
GC_API TLGetInterfaceID(TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
GC_API_P() PGCWritePort(PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
int32_t PIXELENDIANNESS_ID
Definition: GenTL_v1_5.h:495
GC_API_P() PGCWritePortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API_P() PDevGetInfo(DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSGetBufferID(DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
GC_API DevGetInfo(DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PEventKill(EVENT_HANDLE hEvent)
GC_API EventGetInfo(EVENT_HANDLE hEvent, EVENT_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 IFGetParentTL(IF_HANDLE hIface, TL_HANDLE *phSystem)
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)
DEVICE_ACCESS_STATUS_LIST
Definition: GenTL_v1_5.h:311
void * BUFFER_HANDLE
Definition: GenTL_v1_5.h:227
GC_API_P() PIFClose(IF_HANDLE hIface)
GC_API_P() PDSGetParentDev(DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
void * IF_HANDLE
Definition: GenTL_v1_5.h:219
GC_API_P() PDevClose(DEV_HANDLE hDevice)
Definition: GenTL_v1_5.h:617
GC_API_P() PIFGetParentTL(IF_HANDLE hIface, TL_HANDLE *phSystem)
PIXELENDIANNESS_IDS
Definition: GenTL_v1_5.h:489
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)
#define GC_API
Definition: GenTL_v1_5.h:637
GC_API_P() PIFOpenDevice(IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice)
int32_t TL_INFO_CMD
Definition: GenTL_v1_5.h:284
GC_API_P() PDevGetDataStreamID(DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
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() PDSStartAcquisition(DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
size_t Size
Definition: GenTL_v1_5.h:621
GC_API_P() PIFGetDeviceID(IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
GC_API DSFlushQueue(DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
void * EVENT_HANDLE
Definition: GenTL_v1_5.h:232
GC_API IFClose(IF_HANDLE hIface)
int32_t BUFFER_INFO_CMD
Definition: GenTL_v1_5.h:434
GC_API_P() PIFGetInfo(IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DevClose(DEV_HANDLE hDevice)
struct S_EVENT_NEW_BUFFER EVENT_NEW_BUFFER_DATA
struct S_SINGLE_CHUNK_DATA SINGLE_CHUNK_DATA
int32_t BUFFER_PART_INFO_CMD
Definition: GenTL_v1_5.h:454
GC_API DSAllocAndAnnounceBuffer(DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
GC_API GCGetPortURL(PORT_HANDLE hPort, char *sURL, size_t *piSize)
GC_API GCUnregisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
void * EVENTSRC_HANDLE
Definition: GenTL_v1_5.h:228
GC_API DSStopAcquisition(DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
GC_API GCGetPortURLInfo(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() PGCRegisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
GC_API DSQueueBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
BUFFER_INFO_CMD_LIST
Definition: GenTL_v1_5.h:398
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)
GC_API IFGetDeviceInfo(IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PDSAnnounceBuffer(DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
int32_t STREAM_INFO_CMD
Definition: GenTL_v1_5.h:395
GC_API_P() PDSRevokeBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
GC_API_P() PGCGetLastError(GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
GC_API_P() PEventGetData(EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
GC_API GCGetLastError(GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
int32_t GC_ERROR
Definition: GenTL_v1_5.h:181
URL_SCHEME_IDS
Definition: GenTL_v1_5.h:538
GC_API_P() PIFUpdateDeviceList(IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
GC_API DSRevokeBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
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() PDevGetNumDataStreams(DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
int32_t PARTDATATYPE_ID
Definition: GenTL_v1_5.h:513
GC_API_P() PDSGetNumBufferParts(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
GC_API DSStartAcquisition(DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
GC_API DevGetDataStreamID(DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
GC_API_P() PDSQueueBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
int32_t PAYLOADTYPE_INFO_ID
Definition: GenTL_v1_5.h:473
GC_API_P() PDSGetInfo(DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
TL_CHAR_ENCODING_LIST
Definition: GenTL_v1_5.h:261
void * pBuffer
Definition: GenTL_v1_5.h:620
GC_API_P() PDSFlushQueue(DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
INTERFACE_INFO_CMD_LIST
Definition: GenTL_v1_5.h:287
GC_API IFOpenDevice(IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice)
GC_API_P() PDSClose(DS_HANDLE hDataStream)
PARTDATATYPE_IDS
Definition: GenTL_v1_5.h:498
GC_API GCWritePort(PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
void * TL_HANDLE
Definition: GenTL_v1_5.h:218
GC_API_P() PGCReadPortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
PORT_INFO_CMD_LIST
Definition: GenTL_v1_5.h:516
int32_t EVENT_INFO_CMD
Definition: GenTL_v1_5.h:593
URL_INFO_CMD_LIST
Definition: GenTL_v1_5.h:550
GC_API_P() PGCCloseLib(void)
GC_API_P() PGCGetPortInfo(PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API TLOpen(TL_HANDLE *phTL)
GC_API GCWritePortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API GCGetPortInfo(PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API_P() PGCReadPort(PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
void * PORT_HANDLE
Definition: GenTL_v1_5.h:222
int32_t URL_INFO_CMD
Definition: GenTL_v1_5.h:566
GC_API GCGetNumPortURLs(PORT_HANDLE hPort, uint32_t *piNumURLs)
GC_API_P() PTLClose(TL_HANDLE hTL)
uint8_t bool8_t
Definition: GenTL_v1_5.h:105
GC_API TLGetInfo(TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
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 DSClose(DS_HANDLE hDataStream)
GC_API_P() PIFGetNumDevices(IF_HANDLE hIface, uint32_t *piNumDevices)
int32_t DEVICE_INFO_CMD
Definition: GenTL_v1_5.h:341
PIXELFORMAT_NAMESPACE_IDS
Definition: GenTL_v1_5.h:476
GC_API GCRegisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
int32_t EVENT_TYPE
Definition: GenTL_v1_5.h:580
TL_INFO_CMD_LIST
Definition: GenTL_v1_5.h:269
int32_t TL_CHAR_ENCODING
Definition: GenTL_v1_5.h:266
GC_API EventKill(EVENT_HANDLE hEvent)
#define GC_API_P(function)
Definition: GenTL_v1_5.h:718
STREAM_INFO_CMD_LIST
Definition: GenTL_v1_5.h:376
int32_t ACQ_QUEUE_TYPE
Definition: GenTL_v1_5.h:373
GC_API_P() PTLGetNumInterfaces(TL_HANDLE hTL, uint32_t *piNumIfaces)
GC_API DSGetBufferInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
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)
EVENT_TYPE_LIST
Definition: GenTL_v1_5.h:569
GC_API_P() PDSGetBufferChunkData(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
GC_API TLClose(TL_HANDLE hTL)
int32_t DEVICE_ACCESS_STATUS
Definition: GenTL_v1_5.h:323
EVENT_INFO_CMD_LIST
Definition: GenTL_v1_5.h:583
GC_API TLUpdateInterfaceList(TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
GC_API_P() PDSGetBufferID(DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
GC_API GCCloseLib(void)
int32_t EVENT_DATA_INFO_CMD
Definition: GenTL_v1_5.h:604
GC_API_P() PDevGetPort(DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
ptrdiff_t ChunkOffset
Definition: GenTL_v1_5.h:630
GC_API TLGetNumInterfaces(TL_HANDLE hTL, uint32_t *piNumIfaces)
DEVICE_ACCESS_FLAGS_LIST
Definition: GenTL_v1_5.h:298
int32_t URL_SCHEME_ID
Definition: GenTL_v1_5.h:546
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)
BUFFER_PART_INFO_CMD_LIST
Definition: GenTL_v1_5.h:438
GC_API_P() PDSGetBufferInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
void * DEV_HANDLE
Definition: GenTL_v1_5.h:220
GC_API_P() PTLGetInterfaceID(TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
int32_t PIXELFORMAT_NAMESPACE_ID
Definition: GenTL_v1_5.h:486
GC_API_P() PEventFlush(EVENT_HANDLE hEvent)
GC_API DSGetInfo(DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
BUFFER_HANDLE BufferHandle
Definition: GenTL_v1_5.h:610
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 GCReadPort(PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
INFO_DATATYPE_LIST
Definition: GenTL_v1_5.h:238
DEVICE_INFO_CMD_LIST
Definition: GenTL_v1_5.h:326
GC_API TLGetInterfaceInfo(TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
int32_t DEVICE_ACCESS_FLAGS
Definition: GenTL_v1_5.h:308
int32_t PORT_INFO_CMD
Definition: GenTL_v1_5.h:534
GC_API GCGetInfo(TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
GC_API DSGetParentDev(DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
GC_API DSGetBufferChunkData(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
EVENT_DATA_INFO_CMD_LIST
Definition: GenTL_v1_5.h:596
GC_API DevGetNumDataStreams(DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
ACQ_QUEUE_TYPE_LIST
Definition: GenTL_v1_5.h:363
GC_API DevGetParentIF(DEV_HANDLE hDevice, IF_HANDLE *phIface)
int32_t INFO_DATATYPE
Definition: GenTL_v1_5.h:258
GC_API_P() PGCUnregisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
int32_t ACQ_START_FLAGS
Definition: GenTL_v1_5.h:360
GC_API DevOpenDataStream(DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
GC_API IFGetDeviceID(IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
GC_API_P() PDSAllocAndAnnounceBuffer(DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
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_5.h:153
ACQ_START_FLAGS_LIST
Definition: GenTL_v1_5.h:354
GC_API GCReadPortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
GC_API_P() PGCGetInfo(TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Wed Mar 17 2021 02:48:40