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