PointSpread® Vidu™ Software Development Kit  V1
Vidu SDK
GenTL.h File Reference

GenICam Transport Layer Client Interface. More...

#include <stdint.h>
#include <stddef.h>
Include dependency graph for GenTL.h:

Go to the source code of this file.

Data Structures

struct  S_EVENT_NEW_BUFFER
 
struct  S_PORT_REGISTER_STACK_ENTRY
 
struct  S_SINGLE_CHUNK_DATA
 
struct  S_DS_BUFFER_INFO_STACKED
 
struct  S_DS_BUFFER_PART_INFO_STACKED
 

Macros

#define GenTLMajorVersion    1 /* defines the major version of the GenICam GenTL standard version this header is based on */
 
#define GenTLMinorVersion    6 /* defines the minor version of the GenICam GenTL standard version this header is based on */
 
#define GenTLSubMinorVersion    0 /* defines the sub minor version of the GenICam GenTL standard version this header is based on */
 
#define GC_GENTL_HEADER_VERSION_CODE(major, minor, subminor)   (((major) << 24) + ((minor) << 16) + (subminor))
 
#define GC_GENTL_HEADER_VERSION   GC_GENTL_HEADER_VERSION_CODE(GenTLMajorVersion, GenTLMinorVersion, GenTLSubMinorVersion)
 
#define TLTypeMixedName   "Mixed" /* Type to use for several supported technologies */
 
#define TLTypeCustomName   "Custom" /* Type to use for custom technologies */
 
#define TLTypeGEVName   "GEV" /* Type to use for GigE Vision technology */
 
#define TLTypeCLName   "CL" /* Type to use for Camera Link technology */
 
#define TLTypeIIDCName   "IIDC" /* Type to use for IIDC 1394 technology */
 
#define TLTypeUVCName   "UVC" /* Type to use for USB video class devices */
 
#define TLTypeCXPName   "CXP" /* Type to use for CoaXPress, V1.3 */
 
#define TLTypeCLHSName   "CLHS" /* Type to use for Camera Link HS, V1.3 */
 
#define TLTypeU3VName   "U3V" /* Type to use for USB3 Vision Standard, V1.4 */
 
#define TLTypeETHERNETName   "Ethernet" /* Type to use for Ethernet devices, V1.3 */
 
#define TLTypePCIName   "PCI" /* Type to use for PCI/PCIe devices, V1.3 */
 
#define TLSystemModuleName   "TLSystem" /* Name to identify a system module */
 
#define TLInterfaceModuleName   "TLInterface" /* Name to identify a interface module */
 
#define TLDeviceModuleName   "TLDevice" /* Name to identify a device module */
 
#define TLDataStreamModuleName   "TLDataStream" /* Name to identify a data stream module */
 
#define TLBufferModuleName   "TLBuffer" /* Name to identify a buffer module */
 
#define TLRemoteDeviceModuleName   "Device" /* Name to identify a remote device module */
 
#define GENTL_INVALID_HANDLE   NULL /* Invalid handle value, V1.4 */
 
#define GENTL_INFINITE   0xFFFFFFFFFFFFFFFFULL /* Infinite value to be used in various function calls, V1.4 */
 
#define GC_API   GC_IMPORT_EXPORT GC_ERROR GC_CALLTYPE
 
#define GC_API_P(function)   typedef GC_ERROR(GC_CALLTYPE *function)
 

Typedefs

typedef uint8_t bool8_t
 
typedef int32_t GC_ERROR
 
typedef void * TL_HANDLE
 
typedef void * IF_HANDLE
 
typedef void * DEV_HANDLE
 
typedef void * DS_HANDLE
 
typedef void * PORT_HANDLE
 
typedef void * BUFFER_HANDLE
 
typedef void * EVENTSRC_HANDLE
 
typedef void * EVENT_HANDLE
 
typedef int32_t INFO_DATATYPE
 
typedef int32_t TL_CHAR_ENCODING
 
typedef int32_t TL_INFO_CMD
 
typedef int32_t INTERFACE_INFO_CMD
 
typedef int32_t DEVICE_ACCESS_FLAGS
 
typedef int32_t DEVICE_ACCESS_STATUS
 
typedef int32_t DEVICE_INFO_CMD
 
typedef int32_t ACQ_STOP_FLAGS
 
typedef int32_t ACQ_START_FLAGS
 
typedef int32_t ACQ_QUEUE_TYPE
 
typedef int32_t STREAM_INFO_CMD
 
typedef int32_t BUFFER_INFO_CMD
 
typedef int32_t BUFFER_PART_INFO_CMD
 
typedef int32_t PAYLOADTYPE_INFO_ID
 
typedef int32_t PIXELFORMAT_NAMESPACE_ID
 
typedef int32_t PIXELENDIANNESS_ID
 
typedef int32_t PARTDATATYPE_ID
 
typedef int32_t PORT_INFO_CMD
 
typedef int32_t URL_SCHEME_ID
 
typedef int32_t URL_INFO_CMD
 
typedef int32_t EVENT_TYPE
 
typedef int32_t EVENT_INFO_CMD
 
typedef int32_t EVENT_DATA_INFO_CMD
 
typedef int32_t FLOW_INFO_CMD
 
typedef int32_t SEGMENT_INFO_CMD
 
typedef struct S_EVENT_NEW_BUFFER EVENT_NEW_BUFFER_DATA
 
typedef struct S_PORT_REGISTER_STACK_ENTRY PORT_REGISTER_STACK_ENTRY
 
typedef struct S_SINGLE_CHUNK_DATA SINGLE_CHUNK_DATA
 
typedef struct S_DS_BUFFER_INFO_STACKED DS_BUFFER_INFO_STACKED
 
typedef struct S_DS_BUFFER_PART_INFO_STACKED DS_BUFFER_PART_INFO_STACKED
 

Enumerations

enum  GC_ERROR_LIST {
  GC_ERR_SUCCESS = 0 , GC_ERR_ERROR = -1001 , GC_ERR_NOT_INITIALIZED = -1002 , GC_ERR_NOT_IMPLEMENTED = -1003 ,
  GC_ERR_RESOURCE_IN_USE = -1004 , GC_ERR_ACCESS_DENIED = -1005 , GC_ERR_INVALID_HANDLE = -1006 , GC_ERR_INVALID_ID = -1007 ,
  GC_ERR_NO_DATA = -1008 , GC_ERR_INVALID_PARAMETER = -1009 , GC_ERR_IO = -1010 , GC_ERR_TIMEOUT = -1011 ,
  GC_ERR_ABORT = -1012 , GC_ERR_INVALID_BUFFER = -1013 , GC_ERR_NOT_AVAILABLE = -1014 , GC_ERR_INVALID_ADDRESS = -1015 ,
  GC_ERR_BUFFER_TOO_SMALL = -1016 , GC_ERR_INVALID_INDEX = -1017 , GC_ERR_PARSING_CHUNK_DATA = -1018 , GC_ERR_INVALID_VALUE = -1019 ,
  GC_ERR_RESOURCE_EXHAUSTED = -1020 , GC_ERR_OUT_OF_MEMORY = -1021 , GC_ERR_BUSY = -1022 , GC_ERR_AMBIGUOUS = -1023 ,
  GC_ERR_CUSTOM_ID = -10000
}
 
enum  INFO_DATATYPE_LIST {
  INFO_DATATYPE_UNKNOWN = 0 , INFO_DATATYPE_STRING = 1 , INFO_DATATYPE_STRINGLIST , INFO_DATATYPE_INT16 = 3 ,
  INFO_DATATYPE_UINT16 = 4 , INFO_DATATYPE_INT32 = 5 , INFO_DATATYPE_UINT32 = 6 , INFO_DATATYPE_INT64 = 7 ,
  INFO_DATATYPE_UINT64 = 8 , INFO_DATATYPE_FLOAT64 = 9 , INFO_DATATYPE_PTR = 10 , INFO_DATATYPE_BOOL8 = 11 ,
  INFO_DATATYPE_SIZET = 12 , INFO_DATATYPE_BUFFER = 13 , INFO_DATATYPE_PTRDIFF = 14 , INFO_DATATYPE_CUSTOM_ID = 1000 ,
  INFO_DATATYPE_FLOAT32 = 1001
}
 
enum  TL_CHAR_ENCODING_LIST { TL_CHAR_ENCODING_ASCII = 0 , TL_CHAR_ENCODING_UTF8 = 1 }
 
enum  TL_INFO_CMD_LIST {
  TL_INFO_ID = 0 , TL_INFO_VENDOR = 1 , TL_INFO_MODEL = 2 , TL_INFO_VERSION = 3 ,
  TL_INFO_TLTYPE = 4 , TL_INFO_NAME = 5 , TL_INFO_PATHNAME = 6 , TL_INFO_DISPLAYNAME = 7 ,
  TL_INFO_CHAR_ENCODING = 8 , TL_INFO_GENTL_VER_MAJOR , TL_INFO_GENTL_VER_MINOR , TL_INFO_CUSTOM_ID = 1000 ,
  TL_INFO_COMMIT_ID = 1001 , TL_INFO_COMPILE = 1002
}
 
enum  INTERFACE_INFO_CMD_LIST { INTERFACE_INFO_ID = 0 , INTERFACE_INFO_DISPLAYNAME = 1 , INTERFACE_INFO_TLTYPE = 2 , INTERFACE_INFO_CUSTOM_ID = 1000 }
 
enum  DEVICE_ACCESS_FLAGS_LIST {
  DEVICE_ACCESS_UNKNOWN , DEVICE_ACCESS_NONE = 1 , DEVICE_ACCESS_READONLY = 2 , DEVICE_ACCESS_CONTROL = 3 ,
  DEVICE_ACCESS_EXCLUSIVE = 4 , DEVICE_ACCESS_CUSTOM_ID = 1000
}
 
enum  DEVICE_ACCESS_STATUS_LIST {
  DEVICE_ACCESS_STATUS_UNKNOWN = 0 , DEVICE_ACCESS_STATUS_READWRITE = 1 , DEVICE_ACCESS_STATUS_READONLY = 2 , DEVICE_ACCESS_STATUS_NOACCESS = 3 ,
  DEVICE_ACCESS_STATUS_BUSY = 4 , DEVICE_ACCESS_STATUS_OPEN_READWRITE = 5 , DEVICE_ACCESS_STATUS_OPEN_READONLY = 6 , DEVICE_ACCESS_STATUS_CUSTOM_ID = 1000
}
 
enum  DEVICE_INFO_CMD_LIST {
  DEVICE_INFO_ID = 0 , DEVICE_INFO_VENDOR = 1 , DEVICE_INFO_MODEL = 2 , DEVICE_INFO_TLTYPE = 3 ,
  DEVICE_INFO_DISPLAYNAME , DEVICE_INFO_ACCESS_STATUS = 5 , DEVICE_INFO_USER_DEFINED_NAME = 6 , DEVICE_INFO_SERIAL_NUMBER = 7 ,
  DEVICE_INFO_VERSION = 8 , DEVICE_INFO_TIMESTAMP_FREQUENCY = 9 , DEVICE_INFO_CUSTOM_ID = 1000
}
 
enum  ACQ_STOP_FLAGS_LIST { ACQ_STOP_FLAGS_DEFAULT = 0 , ACQ_STOP_FLAGS_KILL = 1 , ACQ_STOP_FLAGS_CUSTOM_ID = 1000 }
 
enum  ACQ_START_FLAGS_LIST { ACQ_START_FLAGS_DEFAULT = 0 , ACQ_START_FLAGS_CUSTOM_ID = 1000 }
 
enum  ACQ_QUEUE_TYPE_LIST {
  ACQ_QUEUE_INPUT_TO_OUTPUT = 0 , ACQ_QUEUE_OUTPUT_DISCARD = 1 , ACQ_QUEUE_ALL_TO_INPUT = 2 , ACQ_QUEUE_UNQUEUED_TO_INPUT ,
  ACQ_QUEUE_ALL_DISCARD = 4 , ACQ_QUEUE_CUSTOM_ID = 1000
}
 
enum  STREAM_INFO_CMD_LIST {
  STREAM_INFO_ID = 0 , STREAM_INFO_NUM_DELIVERED = 1 , STREAM_INFO_NUM_UNDERRUN = 2 , STREAM_INFO_NUM_ANNOUNCED = 3 ,
  STREAM_INFO_NUM_QUEUED = 4 , STREAM_INFO_NUM_AWAIT_DELIVERY = 5 , STREAM_INFO_NUM_STARTED = 6 , STREAM_INFO_PAYLOAD_SIZE = 7 ,
  STREAM_INFO_IS_GRABBING , STREAM_INFO_DEFINES_PAYLOADSIZE = 9 , STREAM_INFO_TLTYPE = 10 , STREAM_INFO_NUM_CHUNKS_MAX = 11 ,
  STREAM_INFO_BUF_ANNOUNCE_MIN , STREAM_INFO_BUF_ALIGNMENT = 13 , STREAM_INFO_FLOW_TABLE = 14 , STREAM_INFO_GENDC_PREFETCH_DESCRIPTOR = 15 ,
  STREAM_INFO_CUSTOM_ID = 1000 , STREAM_CAM_INT_PARA = 1001 , STREAM_CAM_EXT_PARA = 1002
}
 
enum  BUFFER_INFO_CMD_LIST {
  BUFFER_INFO_BASE = 0 , BUFFER_INFO_SIZE = 1 , BUFFER_INFO_USER_PTR = 2 , BUFFER_INFO_TIMESTAMP = 3 ,
  BUFFER_INFO_NEW_DATA , BUFFER_INFO_IS_QUEUED , BUFFER_INFO_IS_ACQUIRING , BUFFER_INFO_IS_INCOMPLETE ,
  BUFFER_INFO_TLTYPE = 8 , BUFFER_INFO_SIZE_FILLED = 9 , BUFFER_INFO_WIDTH = 10 , BUFFER_INFO_HEIGHT = 11 ,
  BUFFER_INFO_XOFFSET = 12 , BUFFER_INFO_YOFFSET = 13 , BUFFER_INFO_XPADDING = 14 , BUFFER_INFO_YPADDING = 15 ,
  BUFFER_INFO_FRAMEID = 16 , BUFFER_INFO_IMAGEPRESENT = 17 , BUFFER_INFO_IMAGEOFFSET = 18 , BUFFER_INFO_PAYLOADTYPE = 19 ,
  BUFFER_INFO_PIXELFORMAT = 20 , BUFFER_INFO_PIXELFORMAT_NAMESPACE = 21 , BUFFER_INFO_DELIVERED_IMAGEHEIGHT = 22 , BUFFER_INFO_DELIVERED_CHUNKPAYLOADSIZE = 23 ,
  BUFFER_INFO_CHUNKLAYOUTID = 24 , BUFFER_INFO_FILENAME = 25 , BUFFER_INFO_PIXEL_ENDIANNESS = 26 , BUFFER_INFO_DATA_SIZE = 27 ,
  BUFFER_INFO_TIMESTAMP_NS = 28 , BUFFER_INFO_DATA_LARGER_THAN_BUFFER = 29 , BUFFER_INFO_CONTAINS_CHUNKDATA = 30 , BUFFER_INFO_IS_COMPOSITE = 31 ,
  BUFFER_INFO_CUSTOM_ID = 1000
}
 
enum  BUFFER_PART_INFO_CMD_LIST {
  BUFFER_PART_INFO_BASE = 0 , BUFFER_PART_INFO_DATA_SIZE = 1 , BUFFER_PART_INFO_DATA_TYPE , BUFFER_PART_INFO_DATA_FORMAT ,
  BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE , BUFFER_PART_INFO_WIDTH = 5 , BUFFER_PART_INFO_HEIGHT = 6 , BUFFER_PART_INFO_XOFFSET = 7 ,
  BUFFER_PART_INFO_YOFFSET = 8 , BUFFER_PART_INFO_XPADDING = 9 , BUFFER_PART_INFO_SOURCE_ID , BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT ,
  BUFFER_PART_INFO_REGION_ID , BUFFER_PART_INFO_DATA_PURPOSE_ID , BUFFER_PART_INFO_CUSTOM_ID = 1000
}
 
enum  PAYLOADTYPE_INFO_IDS {
  PAYLOAD_TYPE_UNKNOWN = 0 , PAYLOAD_TYPE_IMAGE = 1 , PAYLOAD_TYPE_RAW_DATA = 2 , PAYLOAD_TYPE_FILE = 3 ,
  PAYLOAD_TYPE_CHUNK_DATA = 4 , PAYLOAD_TYPE_JPEG = 5 , PAYLOAD_TYPE_JPEG2000 = 6 , PAYLOAD_TYPE_H264 = 7 ,
  PAYLOAD_TYPE_CHUNK_ONLY = 8 , PAYLOAD_TYPE_DEVICE_SPECIFIC = 9 , PAYLOAD_TYPE_MULTI_PART = 10 , PAYLOAD_TYPE_GENDC = 11 ,
  PAYLOAD_TYPE_CUSTOM_ID = 1000
}
 
enum  PIXELFORMAT_NAMESPACE_IDS {
  PIXELFORMAT_NAMESPACE_UNKNOWN = 0 , PIXELFORMAT_NAMESPACE_GEV = 1 , PIXELFORMAT_NAMESPACE_IIDC = 2 , PIXELFORMAT_NAMESPACE_PFNC_16BIT = 3 ,
  PIXELFORMAT_NAMESPACE_PFNC_32BIT = 4 , PIXELFORMAT_NAMESPACE_CUSTOM_ID = 1000
}
 
enum  PIXELENDIANNESS_IDS { PIXELENDIANNESS_UNKNOWN = 0 , PIXELENDIANNESS_LITTLE = 1 , PIXELENDIANNESS_BIG = 2 }
 
enum  PARTDATATYPE_IDS {
  PART_DATATYPE_UNKNOWN = 0 , PART_DATATYPE_2D_IMAGE = 1 , PART_DATATYPE_2D_PLANE_BIPLANAR = 2 , PART_DATATYPE_2D_PLANE_TRIPLANAR = 3 ,
  PART_DATATYPE_2D_PLANE_QUADPLANAR = 4 , PART_DATATYPE_3D_IMAGE = 5 , PART_DATATYPE_3D_PLANE_BIPLANAR = 6 , PART_DATATYPE_3D_PLANE_TRIPLANAR = 7 ,
  PART_DATATYPE_3D_PLANE_QUADPLANAR = 8 , PART_DATATYPE_CONFIDENCE_MAP = 9 , PART_DATATYPE_JPEG = 10 , PART_DATATYPE_JPEG2000 = 11 ,
  PART_DATATYPE_CUSTOM_ID = 1000
}
 
enum  PORT_INFO_CMD_LIST {
  PORT_INFO_ID = 0 , PORT_INFO_VENDOR = 1 , PORT_INFO_MODEL = 2 , PORT_INFO_TLTYPE = 3 ,
  PORT_INFO_MODULE = 4 , PORT_INFO_LITTLE_ENDIAN = 5 , PORT_INFO_BIG_ENDIAN = 6 , PORT_INFO_ACCESS_READ = 7 ,
  PORT_INFO_ACCESS_WRITE = 8 , PORT_INFO_ACCESS_NA = 9 , PORT_INFO_ACCESS_NI = 10 , PORT_INFO_VERSION = 11 ,
  PORT_INFO_PORTNAME = 12 , PORT_INFO_CUSTOM_ID = 1000
}
 
enum  URL_SCHEME_IDS { URL_SCHEME_LOCAL = 0 , URL_SCHEME_HTTP = 1 , URL_SCHEME_FILE = 2 , URL_SCHEME_CUSTOM_ID = 1000 }
 
enum  URL_INFO_CMD_LIST {
  URL_INFO_URL = 0 , URL_INFO_SCHEMA_VER_MAJOR = 1 , URL_INFO_SCHEMA_VER_MINOR = 2 , URL_INFO_FILE_VER_MAJOR = 3 ,
  URL_INFO_FILE_VER_MINOR = 4 , URL_INFO_FILE_VER_SUBMINOR , URL_INFO_FILE_SHA1_HASH = 6 , URL_INFO_FILE_REGISTER_ADDRESS = 7 ,
  URL_INFO_FILE_SIZE = 8 , URL_INFO_SCHEME = 9 , URL_INFO_FILENAME = 10 , URL_INFO_CUSTOM_ID = 1000
}
 
enum  EVENT_TYPE_LIST {
  EVENT_ERROR = 0 , EVENT_NEW_BUFFER = 1 , EVENT_FEATURE_INVALIDATE = 2 , EVENT_FEATURE_CHANGE = 3 ,
  EVENT_REMOTE_DEVICE = 4 , EVENT_MODULE = 5 , EVENT_CUSTOM_ID = 1000
}
 
enum  EVENT_INFO_CMD_LIST {
  EVENT_EVENT_TYPE = 0 , EVENT_NUM_IN_QUEUE = 1 , EVENT_NUM_FIRED = 2 , EVENT_SIZE_MAX = 3 ,
  EVENT_INFO_DATA_SIZE_MAX , EVENT_INFO_CUSTOM_ID = 1000
}
 
enum  EVENT_DATA_INFO_CMD_LIST { EVENT_DATA_ID = 0 , EVENT_DATA_VALUE = 1 , EVENT_DATA_NUMID = 2 , EVENT_DATA_CUSTOM_ID = 1000 }
 
enum  FLOW_INFO_CMD_LIST { FLOW_INFO_SIZE = 0 , FLOW_INFO_CUSTOM_ID = 1000 }
 
enum  SEGMENT_INFO_CMD_LIST {
  SEGMENT_INFO_BASE = 0 , SEGMENT_INFO_SIZE = 1 , SEGMENT_INFO_IS_INCOMPLETE , SEGMENT_INFO_SIZE_FILLED ,
  SEGMENT_INFO_DATA_SIZE , SEGMENT_INFO_CUSTOM_ID = 1000
}
 

Functions

GC_API GCGetInfo (TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get an infomation of the GenTL system object. More...
 
GC_API GCGetLastError (GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
 Get the last errcode and error message. More...
 
GC_API GCInitLib (void)
 Init the dynamic lib. More...
 
GC_API GCCloseLib (void)
 Close the dynamic lib, tear down the intern object. More...
 
GC_API GCReadPort (PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
 Read the register of the GenTL object. Notice that address of one GenTL object is independent coded. More...
 
GC_API GCWritePort (PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
 Write the register of the GenTL object. Notice that address of one GenTL object is independent coded. More...
 
GC_API GCGetPortURL (PORT_HANDLE hPort, char *sURL, size_t *piSize)
 Get the url of description file which describe the GenTL object. More...
 
GC_API GCGetPortInfo (PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get the information of GenTL object. More...
 
GC_API GCRegisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
 Enable event tigger func of a GenTL object. More...
 
GC_API GCUnregisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
 Disable event tigger func of a GenTL object, cooperate with the GCRegisterEvent function. More...
 
GC_API EventGetData (EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
 Get a triggered event and then save data. More...
 
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)
 Acquire specific information from the event data. More...
 
GC_API EventGetInfo (EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get the infomation from the event handle. More...
 
GC_API EventFlush (EVENT_HANDLE hEvent)
 Clear the event triggered stete if triggered. More...
 
GC_API EventKill (EVENT_HANDLE hEvent)
 Kill the event state polling process. More...
 
GC_API TLOpen (TL_HANDLE *phTL)
 Open the GenTL system module. More...
 
GC_API TLClose (TL_HANDLE hTL)
 Close the GenTL system module, which may invalid all interface handle. More...
 
GC_API TLGetInfo (TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some infomation of the system module. More...
 
GC_API TLGetNumInterfaces (TL_HANDLE hTL, uint32_t *piNumIfaces)
 Get number of interface module. More...
 
GC_API TLGetInterfaceID (TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
 Get interface module ID by index. More...
 
GC_API TLGetInterfaceInfo (TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the interface module. More...
 
GC_API TLOpenInterface (TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
 Open the interface module. More...
 
GC_API TLUpdateInterfaceList (TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
 re-Enumerate the Interface module More...
 
GC_API IFClose (IF_HANDLE hIface)
 Close the interface, all device based on this interface module should be inaccessible. More...
 
GC_API IFGetInfo (IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the Interface. More...
 
GC_API IFGetNumDevices (IF_HANDLE hIface, uint32_t *piNumDevices)
 Get number of device module. More...
 
GC_API IFGetDeviceID (IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
 get ID string of the device module More...
 
GC_API IFUpdateDeviceList (IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
 re-Enumerate the device module More...
 
GC_API IFGetDeviceInfo (IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the device module. More...
 
GC_API IFOpenDevice (IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice)
 Open the device module. More...
 
GC_API DevGetPort (DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
 Get the remote device write/read node. More...
 
GC_API DevGetNumDataStreams (DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
 Get number of device module. More...
 
GC_API DevGetDataStreamID (DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
 Get stream module ID by index. More...
 
GC_API DevOpenDataStream (DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
 Open the stream module. More...
 
GC_API DevGetInfo (DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the device. More...
 
GC_API DevClose (DEV_HANDLE hDevice)
 Close the device, all stream based on this device module should be inaccessible. More...
 
GC_API DSAnnounceBuffer (DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 Notify the GenTL stream module to use the allocated buffer for grabing stream. More...
 
GC_API DSAllocAndAnnounceBuffer (DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 Notift the GenTL stream module to allocate buffer for grabing stream. More...
 
GC_API DSFlushQueue (DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
 Clear the buffer queue which wait to be filled stream (image) data. More...
 
GC_API DSStartAcquisition (DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
 Start stream acquistion. More...
 
GC_API DSStopAcquisition (DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
 Stop the stream acquisition. More...
 
GC_API DSGetInfo (DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the stream. More...
 
GC_API DSGetBufferID (DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
 Get buffer handle by Index. More...
 
GC_API DSClose (DS_HANDLE hDataStream)
 Close the stream. More...
 
GC_API DSRevokeBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
 revoke the buffer attach to the GenTL stream module More...
 
GC_API DSQueueBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
 Let the stream-attached buffer ready for grabing stream data. More...
 
GC_API DSGetBufferInfo (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the buffer. More...
 
GC_API GCReadPortByName (PORT_HANDLE hPort, const char *varName, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Read the var of the GenTL object with var name. More...
 
GC_API GCWritePortByName (PORT_HANDLE hPort, const char *varName, INFO_DATATYPE *piType, const void *pBuffer, size_t *piSize)
 Write the var of the GenTL object with var name. More...
 
GC_API PDBufferGetInfo (BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some information of the buffer (Simplified version compared with the standard GenTL version: DSGetBufferInfo) More...
 
GC_API PDBufferGetMeta (BUFFER_HANDLE hBuffer, uint32_t index, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get stream metadata information of the buffer. More...
 
GC_API PDBufferGetMetaByName (BUFFER_HANDLE hBuffer, const char *varName, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get stream metadata information of the buffer. More...
 
GC_API PDBufferGetMetaDesc (BUFFER_HANDLE hBuffer, uint32_t index, const char **ppVarName, const char **ppDescName)
 Get name and the describe information of the metadata item. More...
 
GC_API PDBufferGetMetaNum (BUFFER_HANDLE hBuffer, size_t *pMetaItemNum)
 Get number of the metadata items. More...
 
GC_API PDBufferSave (BUFFER_HANDLE hBuffer, const char *filesName, int opt)
 Write the buffer to disk. More...
 
GC_API GCGetNumPortURLs (PORT_HANDLE hPort, uint32_t *piNumURLs)
 Get the number of usrls the GenTL object belongs to. More...
 
GC_API GCGetPortURLInfo (PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 Get some informations of the selected url the GenTL object belongs to. More...
 
GC_API GCReadPortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 A set of GCReadPort operations. More...
 
GC_API GCWritePortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 A set of GCWritePort operations. More...
 
GC_API DSGetBufferChunkData (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
 
GC_API IFGetParentTL (IF_HANDLE hIface, TL_HANDLE *phSystem)
 Get the GenTL system module which current interface is based on. More...
 
GC_API DevGetParentIF (DEV_HANDLE hDevice, IF_HANDLE *phIface)
 Get the GenTL interface module which current device is based on. More...
 
GC_API DSGetParentDev (DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
 Get the GenTL device module which current stream is based on. More...
 
GC_API DSGetNumBufferParts (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
 Get the number of parts of the buffer. More...
 
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)
 Get some information of the specific part of the buffer. More...
 
GC_API DSAnnounceCompositeBuffer (DS_HANDLE hDataStream, size_t iNumSegments, void **ppSegments, size_t *piSizes, void *pPrivate, BUFFER_HANDLE *phBuffer)
 
GC_API DSGetBufferInfoStacked (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_INFO_STACKED *pInfoStacked, size_t iNumInfos)
 
GC_API DSGetBufferPartInfoStacked (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, DS_BUFFER_PART_INFO_STACKED *pInfoStacked, size_t iNumInfos)
 
GC_API DSGetNumFlows (DS_HANDLE hDataStream, uint32_t *piNumFlows)
 
GC_API DSGetFlowInfo (DS_HANDLE hDataStream, uint32_t iFlowIndex, FLOW_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API DSGetNumBufferSegments (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumSegments)
 
GC_API DSGetBufferSegmentInfo (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iSegmentIndex, SEGMENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PPDBufferGetMetaNum (BUFFER_HANDLE hBuffer, size_t *pMetaItemNum)
 
GC_API_P() PPDBufferSave (BUFFER_HANDLE hBuffer, const char *name, int opt)
 

Variables

TL_INFO_CMD iInfoCmd
 
TL_INFO_CMD INFO_DATATYPE * piType
 
TL_INFO_CMD INFO_DATATYPE void * pBuffer
 
TL_INFO_CMD INFO_DATATYPE void size_t * piSize
 
GC_ERROR * piErrorCode
 
GC_ERROR char * sErrText
 
 void
 
PORT_HANDLE hPort
 
PORT_HANDLE uint64_t iAddress
 
PORT_HANDLE char * sURL
 
EVENTSRC_HANDLE hEventSrc
 
EVENTSRC_HANDLE EVENT_TYPE iEventID
 
EVENTSRC_HANDLE EVENT_TYPE EVENT_HANDLE * phEvent
 
EVENT_HANDLE hEvent
 
EVENT_HANDLE void size_t uint64_t iTimeout
 
EVENT_HANDLE const void * pInBuffer
 
EVENT_HANDLE const void size_t iInSize
 
EVENT_HANDLE const void size_t EVENT_DATA_INFO_CMD INFO_DATATYPE void * pOutBuffer
 
EVENT_HANDLE const void size_t EVENT_DATA_INFO_CMD INFO_DATATYPE void size_t * piOutSize
 
TL_HANDLEphTL
 
TL_HANDLE hTL
 
TL_HANDLE uint32_t * piNumIfaces
 
TL_HANDLE uint32_t iIndex
 
TL_HANDLE uint32_t char * sID
 
TL_HANDLE const char * sIfaceID
 
TL_HANDLE const char IF_HANDLEphIface
 
TL_HANDLE bool8_t * pbChanged
 
IF_HANDLE hIface
 
IF_HANDLE uint32_t * piNumDevices
 
IF_HANDLE uint32_t char * sIDeviceID
 
IF_HANDLE const char * sDeviceID
 
IF_HANDLE const char DEVICE_ACCESS_FLAGS iOpenFlag
 
IF_HANDLE const char DEVICE_ACCESS_FLAGS DEV_HANDLEphDevice
 
DEV_HANDLE hDevice
 
DEV_HANDLE PORT_HANDLEphRemoteDevice
 
DEV_HANDLE uint32_t * piNumDataStreams
 
DEV_HANDLE uint32_t char * sDataStreamID
 
DEV_HANDLE const char DS_HANDLEphDataStream
 
DS_HANDLE hDataStream
 
DS_HANDLE void size_t iSize
 
DS_HANDLE void size_t void * pPrivate
 
DS_HANDLE void size_t void BUFFER_HANDLE * phBuffer
 
DS_HANDLE ACQ_QUEUE_TYPE iOperation
 
DS_HANDLE ACQ_START_FLAGS iStartFlags
 
DS_HANDLE ACQ_START_FLAGS uint64_t iNumToAcquire
 
DS_HANDLE ACQ_STOP_FLAGS iStopFlags
 
DS_HANDLE BUFFER_HANDLE hBuffer
 
BUFFER_HANDLE uint32_t index
 
BUFFER_HANDLE uint32_t INFO_DATATYPE void * buffer
 
BUFFER_HANDLE const char * name
 
BUFFER_HANDLE uint32_t const char ** ppVarName
 
BUFFER_HANDLE uint32_t const char const char ** ppDescName
 
PORT_HANDLE uint32_t * iNumURLs
 
PORT_HANDLE uint32_t iURLIndex
 
PORT_HANDLE PORT_REGISTER_STACK_ENTRYpEntries
 
PORT_HANDLE PORT_REGISTER_STACK_ENTRY size_t * piNumEntries
 
DS_HANDLE BUFFER_HANDLE SINGLE_CHUNK_DATApChunkData
 
DS_HANDLE BUFFER_HANDLE SINGLE_CHUNK_DATA size_t * piNumChunks
 
IF_HANDLE TL_HANDLEphSystem
 
DS_HANDLE BUFFER_HANDLE uint32_t * piNumParts
 
DS_HANDLE BUFFER_HANDLE uint32_t iPartIndex
 
DS_HANDLE size_t iNumSegments
 
DS_HANDLE size_t void ** ppSegments
 
DS_HANDLE size_t void size_t * piSizes
 
DS_HANDLE BUFFER_HANDLE DS_BUFFER_INFO_STACKEDpInfoStacked
 
DS_HANDLE BUFFER_HANDLE DS_BUFFER_INFO_STACKED size_t iNumInfos
 
DS_HANDLE uint32_t * piNumFlows
 
DS_HANDLE uint32_t iFlowIndex
 
DS_HANDLE BUFFER_HANDLE uint32_t * piNumSegments
 
DS_HANDLE BUFFER_HANDLE uint32_t iSegmentIndex
 

Detailed Description

GenICam Transport Layer Client Interface.

Version
1.6
Author
GenTL Subcommittee
Date
2019
Version history
  • Version 0.1.0 First official version from the meeting in Pilsen
  • Version 0.1.1 rst (SI) 0.4.160
    • added E_INTERFACE_INFO_CMD_LIST_T enum name
    • added E_DEVICE_ACCCESS_STATUS_TYPE_T to be used with the /a IFGetDeviceInfo and DevGetInfo
    • rename of the enum value DEVICE_INFO_ACCESSMODE to DEVICE_INFO_ACCESS_STATUS which now refers to E_DEVICE_ACCCESS_STATUS_TYPE_T
    • added Timeout parameter to update interface list and device list.
  • Version 0.1.2 - change datatype of timeout parameter of TLUpdateInterfaceList and IFUpdateDeviceList to uint64_t to match with the timeout in the event object.
    • changed all enums to have a typedef to uint32_t with them to allow custom ids
    • changed type of string constants to be char * instead of gcstring
  • Version 0.1.3 rst (SI), cbi (IDS) 0.4.163
    • adjusted parameter names to be closer aligned with the standard text
    • changed typedefs for enums from uint32_t to int32_t
    • removed default parameter
    • added parameter name to DevGetPort function
  • Version 0.1.4 jb (LV)
    • fixes to align the file with standard text
    • make the file self-contained, independent on GenApi
  • Version 0.1.5 rst (SI) cbi (IDS) jb (LV) tho (MVTec)
    • Adjust it for Linux
    • Cosmetics
  • Version 1.0 rst (SI) cbi (IDS) jb (LV) tho (MVTec)
    • Adjust for Standard 1.0
    • Make it plain C compliant
    • Cosmetics
  • Version 1.2 rst (SI) jb (LV) tho (MVTec)
    • Adjust for Standard 1.2
    • adjust packing
    • Cosmetics
  • Version 1.3 (Stemmer, Leutron, Matrix Vision, MVTec, MathWorks)
    • Adjust for Standard 1.3
    • added chunk handling
    • added Mac OS X
    • Cosmetics
  • Version 1.3.1 (MathWorks)
    • Spelling corrections in comments
  • Version 1.4 GenTL Subcommittee
  • Version 1.5 GenTL Subcommittee
    • Changed namespace to GenTL
    • Changes for GenTL 1.5, Please refer to the GenTL spec for a list of changes.
  • Version 1.6 GenTL Subcommittee
    • Changes for GenTL 1.6, Please refer to the GenTL spec for a list of changes.

Typedef Documentation

◆ DEV_HANDLE

typedef void* DEV_HANDLE

Device handle, obtained through the IFOpenDevice

◆ DS_BUFFER_INFO_STACKED

Structure carrying information about a buffer info within a stacked request. Introduced in GenTL v1.6.

◆ DS_BUFFER_PART_INFO_STACKED

Structure carrying information about a buffer part info within a stacked request. Introduced in GenTL v1.6.

◆ DS_HANDLE

typedef void* DS_HANDLE

Handle to an data stream object, obtained through DevOpenDataStream

◆ EVENT_NEW_BUFFER_DATA

Structure of the data returned from a signaled "New Buffer" event.

◆ IF_HANDLE

typedef void* IF_HANDLE

Interface handle, obtained through TLOpenInterface

◆ PORT_HANDLE

typedef void* PORT_HANDLE

A Port handle is used to access the register space of a port a PORT_HANDLE can be one of the following TL_HANDLE, IF_HANDLE, DEV_HANDLE, handle to a device port, obtained through DevGetPort, DS_HANDLE, BUFFER_HANDLE

◆ PORT_REGISTER_STACK_ENTRY

Structure to be use with GCWritePortStacked and GCReadPortStacked.

◆ SEGMENT_INFO_CMD

typedef int32_t SEGMENT_INFO_CMD

GenTL v1.6

◆ SINGLE_CHUNK_DATA

Structure carrying information about a single chunk in the buffer. Introduced in GenTL v1.3.

◆ TL_HANDLE

typedef void* TL_HANDLE

Transport Layer handle, obtained through the TLOpen

Enumeration Type Documentation

◆ ACQ_QUEUE_TYPE_LIST

This enumeration commands from which to which queue/pool buffers are flushed with the GenTL::DSFlushQueue function.

Enumerator
ACQ_QUEUE_INPUT_TO_OUTPUT 

Flushes the input pool to the output queue and if necessary adds entries in the New Buffer event data queue.

ACQ_QUEUE_OUTPUT_DISCARD 

Discards all buffers in the output queue and if necessary remove the entries from the event data queue.

ACQ_QUEUE_ALL_TO_INPUT 

Puts all buffers in the input pool. Even those in the output queue and discard entries in the event data queue.

ACQ_QUEUE_UNQUEUED_TO_INPUT 

Puts all buffers that are not in the input pool or the output queue in the input pool.

ACQ_QUEUE_ALL_DISCARD 

Discards all buffers in the input pool and output queue.

ACQ_QUEUE_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ ACQ_START_FLAGS_LIST

This enumeration defines special start flags for the acquisition engine. The function used is GenTL::DSStartAcquisition.

Enumerator
ACQ_START_FLAGS_DEFAULT 

Default behavior.

ACQ_START_FLAGS_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ ACQ_STOP_FLAGS_LIST

This enumeration defines special stop flags for the acquisition engine. The function used is GenTL::DSStopAcquisition.

Enumerator
ACQ_STOP_FLAGS_DEFAULT 

Stop the acquisition engine when the currently running tasks like filling a buffer are completed (default behavior).

ACQ_STOP_FLAGS_KILL 

Stop the acquisition engine immediately and leave buffers currently being filled in the Input Buffer Pool.

ACQ_STOP_FLAGS_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ BUFFER_INFO_CMD_LIST

Enumerator
BUFFER_INFO_BASE 

PTR Base address of the buffer memory.

BUFFER_INFO_SIZE 

SIZET Size of the buffer in bytes.

BUFFER_INFO_USER_PTR 

PTR Private data pointer of the GenTL Consumer.

BUFFER_INFO_TIMESTAMP 

UINT64 Timestamp the buffer was acquired.

BUFFER_INFO_NEW_DATA 

BOOL8 Flag to indicate that the buffer contains new data since the last call.

BUFFER_INFO_IS_QUEUED 

BOOL8 Flag to indicate if the buffer is in the input pool or output queue.

BUFFER_INFO_IS_ACQUIRING 

BOOL8 Flag to indicate that the buffer is currently being filled with data.

BUFFER_INFO_IS_INCOMPLETE 

BOOL8 Flag to indicate that a buffer was filled but an error occurred during that process.

BUFFER_INFO_TLTYPE 

STRING Transport layer technology that is supported.

BUFFER_INFO_SIZE_FILLED 

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.

BUFFER_INFO_WIDTH 

SIZET Width GenTL v1.2

BUFFER_INFO_HEIGHT 

SIZET Height GenTL v1.2

BUFFER_INFO_XOFFSET 

SIZET Xoffset GenTL v1.2

BUFFER_INFO_YOFFSET 

SIZET Yoffset GenTL v1.2

BUFFER_INFO_XPADDING 

SIZET Xpadding GenTL v1.2

BUFFER_INFO_YPADDING 

SIZET Ypadding GenTL v1.2

BUFFER_INFO_FRAMEID 

UINT64 Frame ID GenTL v1.2

BUFFER_INFO_IMAGEPRESENT 

BOOL8 Image present GenTL v1.2

BUFFER_INFO_IMAGEOFFSET 

SIZET Image offset GenTL v1.2

BUFFER_INFO_PAYLOADTYPE 

SIZET Payload type GenTL v1.2

BUFFER_INFO_PIXELFORMAT 

UINT64 Pixel format GenTL v1.2

BUFFER_INFO_PIXELFORMAT_NAMESPACE 

UINT64 Pixel format namespace GenTL v1.2

BUFFER_INFO_DELIVERED_IMAGEHEIGHT 

SIZET Delivered image height GenTL v1.2

BUFFER_INFO_DELIVERED_CHUNKPAYLOADSIZE 

SIZET Delivered chunk payload size GenTL v1.2

BUFFER_INFO_CHUNKLAYOUTID 

UINT64 Chunk layout ID GenTL v1.2

BUFFER_INFO_FILENAME 

STRING File name GenTL v1.2

BUFFER_INFO_PIXEL_ENDIANNESS 

INT32 Pixel endianness GenTL v1.4

BUFFER_INFO_DATA_SIZE 

SIZET Data size GenTL v1.4

BUFFER_INFO_TIMESTAMP_NS 

UINT64 Time stamp size GenTL v1.4

BUFFER_INFO_DATA_LARGER_THAN_BUFFER 

BOOL8 Data larger than buffer GenTL v1.4

BUFFER_INFO_CONTAINS_CHUNKDATA 

BOOL8 contains chunk data GenTL v1.4

BUFFER_INFO_IS_COMPOSITE 

BOOL8 Is composite GenTL v1.6

BUFFER_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ BUFFER_PART_INFO_CMD_LIST

This enumeration defines commands to retrieve information about individual data parts in a multi-part buffer using the GenTL::DSGetBufferPartInfo function. Introduced in GenTL v1.5.

Enumerator
BUFFER_PART_INFO_BASE 

PTR Base address of the buffer part memory.

BUFFER_PART_INFO_DATA_SIZE 

SIZET Size of the buffer part in bytes.

BUFFER_PART_INFO_DATA_TYPE 

SIZET Type of the data in given part (PARTDATATYPE_ID enumeration value).

BUFFER_PART_INFO_DATA_FORMAT 

UINT64 Format of individual items (such as pixels) in the buffer part.

BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE 

UINT64 Allows interpretation of BUFFER_PART_INFO_DATA_FORMAT (PIXELFORMAT_NAMESPACE_ID enumeration value).

BUFFER_PART_INFO_WIDTH 

SIZET Width of data in the buffer part in pixels.

BUFFER_PART_INFO_HEIGHT 

SIZET Expected height of data in the buffer part in pixels .

BUFFER_PART_INFO_XOFFSET 

SIZET Horizontal offset of data in the buffer part in pixels.

BUFFER_PART_INFO_YOFFSET 

SIZET Vertical offset of data in the buffer part in pixels.

BUFFER_PART_INFO_XPADDING 

SIZET Horizontal padding of data in the buffer part in pixels.

BUFFER_PART_INFO_SOURCE_ID 

UINT64 Identifier allowing to group data parts belonging to the same source.

BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT 

SIZET Height of the data currently in the buffer part in pixels

BUFFER_PART_INFO_REGION_ID 

UINT64 Identifier allowing to group data parts belonging to the same region. GenTL v1.6

BUFFER_PART_INFO_DATA_PURPOSE_ID 

UINT64 Identifier allowing to group data parts having the same purpose. GenTL v1.6

BUFFER_PART_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ DEVICE_ACCESS_FLAGS_LIST

This enumeration defines flags of how a device is to be opened with the GenTL::IFOpenDevice function.

Enumerator
DEVICE_ACCESS_UNKNOWN 

Not used in a command. Can be used to initialize a variable to query that information.

DEVICE_ACCESS_NONE 

This either means that the device is not open because it was not opened before or the access to it was denied.

DEVICE_ACCESS_READONLY 

Open the device read only. All Port functions can only read from the device.

DEVICE_ACCESS_CONTROL 

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.

DEVICE_ACCESS_EXCLUSIVE 

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.

DEVICE_ACCESS_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ DEVICE_ACCESS_STATUS_LIST

This enumeration defines values for the accessibility of the device to be returned in the GenTL::DevGetInfo function on a device handle.

Enumerator
DEVICE_ACCESS_STATUS_UNKNOWN 

The device accessibility is not known.

DEVICE_ACCESS_STATUS_READWRITE 

The device is available for read/write access.

DEVICE_ACCESS_STATUS_READONLY 

The device is available for read only access.

DEVICE_ACCESS_STATUS_NOACCESS 

The device is not accessible.

DEVICE_ACCESS_STATUS_BUSY 

The device has already been opened by another process/host. GenTL v1.5

DEVICE_ACCESS_STATUS_OPEN_READWRITE 

The device has already been opened by this process. GenTL v1.5

DEVICE_ACCESS_STATUS_OPEN_READONLY 

The device has already been opened by this process. GenTL v1.5

DEVICE_ACCESS_STATUS_CUSTOM_ID 

Starting value for custom IDs.

◆ DEVICE_INFO_CMD_LIST

This enumeration defines commands to retrieve information with the GenTL::DevGetInfo function on a device handle.

Enumerator
DEVICE_INFO_ID 

STRING Unique ID of the device.

DEVICE_INFO_VENDOR 

STRING Device vendor name.

DEVICE_INFO_MODEL 

STRING Device model name.

DEVICE_INFO_TLTYPE 

STRING Transport layer technology that is supported.

DEVICE_INFO_DISPLAYNAME 

STRING String containing a display name for the device ( including a unique id )

DEVICE_INFO_ACCESS_STATUS 

INT32 Gets the access mode the GenTL Producer has on the opened device. (DEVICE_ACCESS_STATUS enumeration value).

DEVICE_INFO_USER_DEFINED_NAME 

STRING String containing the user defined name, GenTL v1.4

DEVICE_INFO_SERIAL_NUMBER 

STRING String containing the device's serial number, GenTL v1.4

DEVICE_INFO_VERSION 

STRING String containing the device version, GenTL v1.4

DEVICE_INFO_TIMESTAMP_FREQUENCY 

UINT64 Tick-frequency of the time stamp clock, GenTL v1.4

DEVICE_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ EVENT_DATA_INFO_CMD_LIST

Event data info command

Enumerator
EVENT_DATA_ID 

Event specific Unique Event ID (String or Number)

EVENT_DATA_VALUE 

Event specific Data

EVENT_DATA_NUMID 

UINT64 Numeric representation of the unique Event ID, GenTL v1.3.

EVENT_DATA_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ EVENT_INFO_CMD_LIST

Event info command

Enumerator
EVENT_EVENT_TYPE 

INT32 The event type of the event handle (EVENT_TYPE enum value).

EVENT_NUM_IN_QUEUE 

SIZET Number of events in the event data queue.

EVENT_NUM_FIRED 

UINT64 Number of events that were fired since the creation of the module.

EVENT_SIZE_MAX 

SIZET Max size of data carried with an event in bytes. GenTL v1.2

EVENT_INFO_DATA_SIZE_MAX 

SIZET Max size of data provided through EventGetDataInfo in bytes. GenTL v1.2

EVENT_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ EVENT_TYPE_LIST

Known event types that can be registered on certain modules with the GenTL::GCRegisterEvent function.

Enumerator
EVENT_ERROR 

Notification on module errors.

EVENT_NEW_BUFFER 

Notification on newly filled buffers.

EVENT_FEATURE_INVALIDATE 

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.

EVENT_FEATURE_CHANGE 

Notification if the GenTL Producer library wants to manually set a feature in the GenICam GenApi instance using the module.

EVENT_REMOTE_DEVICE 

Notification if the GenTL Producer wants to inform the GenICam GenApi instance of the remote device that a GenApi compatible event was fired.

EVENT_MODULE 

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

EVENT_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ FLOW_INFO_CMD_LIST

This enumeration defines commands to retrieve information about individual data stream flows using the GenTL::DSGetFlowInfo function. Introduced in GenTL v1.6.

Enumerator
FLOW_INFO_SIZE 

SIZET Size of the flow in bytes.

FLOW_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ GC_ERROR_LIST

Errors List: Return codes

Enumerator
GC_ERR_SUCCESS 

everything is ok

GC_ERR_ERROR 

unknown /unspecified error

GC_ERR_NOT_INITIALIZED 

function arg/param is not initialized

GC_ERR_NOT_IMPLEMENTED 

function has not been implemented

GC_ERR_RESOURCE_IN_USE 

resource in use

GC_ERR_ACCESS_DENIED 

access denied

GC_ERR_INVALID_HANDLE 

invalid handle

GC_ERR_INVALID_ID 

invalid id

GC_ERR_NO_DATA 

no data

GC_ERR_INVALID_PARAMETER 

invalid parameter

GC_ERR_IO 

error IO

GC_ERR_TIMEOUT 

timeout

GC_ERR_ABORT 

abort

GC_ERR_INVALID_BUFFER 

invalid buffer

GC_ERR_NOT_AVAILABLE 

not avaible

GC_ERR_INVALID_ADDRESS 

invalid address

GC_ERR_BUFFER_TOO_SMALL 

buffer is too small

GC_ERR_INVALID_INDEX 

invalid index

GC_ERR_PARSING_CHUNK_DATA 

parse chunk data

GC_ERR_INVALID_VALUE 

invalid value

GC_ERR_RESOURCE_EXHAUSTED 

resource exhausted

GC_ERR_OUT_OF_MEMORY 

out of memory

GC_ERR_BUSY 

busy

GC_ERR_AMBIGUOUS 

ambiguous

◆ INFO_DATATYPE_LIST

Defines the data type possible for the various Info functions.

Enumerator
INFO_DATATYPE_UNKNOWN 

Unknown data type

INFO_DATATYPE_STRING 

NULL-terminated C string (ASCII encoded).

INFO_DATATYPE_STRINGLIST 

Concatenated INFO_DATATYPE_STRING list. End of list is signaled with an additional NULL.

INFO_DATATYPE_INT16 

Signed 16 bit integer.

INFO_DATATYPE_UINT16 

Unsigned 16 bit integer

INFO_DATATYPE_INT32 

Signed 32 bit integer

INFO_DATATYPE_UINT32 

Unsigned 32 bit integer

INFO_DATATYPE_INT64 

Signed 64 bit integer

INFO_DATATYPE_UINT64 

Unsigned 64 bit integer

INFO_DATATYPE_FLOAT64 

Signed 64 bit floating point number.

INFO_DATATYPE_PTR 

Pointer type (void*). Size is platform dependent (32 bit on 32 bit platforms).

INFO_DATATYPE_BOOL8 

Boolean value occupying 8 bit. 0 for false and anything for true.

INFO_DATATYPE_SIZET 

Platform dependent unsigned integer (32 bit on 32 bit platforms).

INFO_DATATYPE_BUFFER 

Like a INFO_DATATYPE_STRING but with arbitrary data and no NULL termination.

INFO_DATATYPE_PTRDIFF 

Platform dependent signed integer (32 bit on 32 bit platforms). GenTL v1.3

INFO_DATATYPE_CUSTOM_ID 

Starting value for custom IDs.

◆ INTERFACE_INFO_CMD_LIST

This enumeration defines commands to retrieve information with the GenTL::IFGetInfo function from the Interface module.

Enumerator
INTERFACE_INFO_ID 

STRING Unique ID of the interface.

INTERFACE_INFO_DISPLAYNAME 

STRING User readable name of the interface.

INTERFACE_INFO_TLTYPE 

STRING Transport layer technology that is supported.

INTERFACE_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ PARTDATATYPE_IDS

Enumeration describing which data type is present in given buffer part. Introduced in GenTL v1.5

Enumerator
PART_DATATYPE_UNKNOWN 

Unknown data type

PART_DATATYPE_2D_IMAGE 

Color or monochrome 2D image.

PART_DATATYPE_2D_PLANE_BIPLANAR 

Single color plane of a planar 2D image consisting of 2 planes.

PART_DATATYPE_2D_PLANE_TRIPLANAR 

Single color plane of a planar 2D image consisting of 3 planes.

PART_DATATYPE_2D_PLANE_QUADPLANAR 

Single color plane of a planar 2D image consisting of 4 planes.

PART_DATATYPE_3D_IMAGE 

3D image (pixel coordinates).

PART_DATATYPE_3D_PLANE_BIPLANAR 

Single plane of a planar 3D image consisting of 2 planes.

PART_DATATYPE_3D_PLANE_TRIPLANAR 

Single plane of a planar 3D image consisting of 3 planes.

PART_DATATYPE_3D_PLANE_QUADPLANAR 

Single plane of a planar 3D image consisting of 4 planes.

PART_DATATYPE_CONFIDENCE_MAP 

Confidence of the individual pixel values.

PART_DATATYPE_JPEG 

JPEG compressed data. GenTL v1.6

PART_DATATYPE_JPEG2000 

JPEG 2000 compressed data. GenTL v1.6

PART_DATATYPE_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ PAYLOADTYPE_INFO_IDS

Enumeration of TLType dependent payload types. Introduced in GenTL v1.2

Enumerator
PAYLOAD_TYPE_UNKNOWN 

GenTL v1.2

PAYLOAD_TYPE_IMAGE 

GenTL v1.2

PAYLOAD_TYPE_RAW_DATA 

GenTL v1.2

PAYLOAD_TYPE_FILE 

GenTL v1.2

PAYLOAD_TYPE_CHUNK_DATA 

GenTL v1.2, Deprecated in GenTL 1.5

PAYLOAD_TYPE_JPEG 

GenTL v1.4

PAYLOAD_TYPE_JPEG2000 

GenTL v1.4

PAYLOAD_TYPE_H264 

GenTL v1.4

PAYLOAD_TYPE_CHUNK_ONLY 

GenTL v1.4

PAYLOAD_TYPE_DEVICE_SPECIFIC 

GenTL v1.4

PAYLOAD_TYPE_MULTI_PART 

GenTL v1.5

PAYLOAD_TYPE_GENDC 

GenTL v1.6

PAYLOAD_TYPE_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ PIXELENDIANNESS_IDS

Enumeration of pixel endianness values. Introduced in GenTL v1.4

Enumerator
PIXELENDIANNESS_UNKNOWN 

Unknown pixel endianness. GenTL v1.4

PIXELENDIANNESS_LITTLE 

Little endian pixel data. GenTL v1.4

PIXELENDIANNESS_BIG 

Big endian pixel data. GenTL v1.4

◆ PIXELFORMAT_NAMESPACE_IDS

Enumeration of TLType dependent pixel format namespaces introduced GenTL v1.2

Enumerator
PIXELFORMAT_NAMESPACE_UNKNOWN 

Pixel format namespace unknown, GenTL v1.2

PIXELFORMAT_NAMESPACE_GEV 

Pixel format namespace GEV, GenTL v1.2

PIXELFORMAT_NAMESPACE_IIDC 

Pixel format namespace IIDC, GenTL v1.2

PIXELFORMAT_NAMESPACE_PFNC_16BIT 

Pixel format namespace PFNC_16BIT, GenTL v1.4

PIXELFORMAT_NAMESPACE_PFNC_32BIT 

Pixel format namespace PFNC_32BIT, GenTL v1.4

PIXELFORMAT_NAMESPACE_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ PORT_INFO_CMD_LIST

This enumeration defines commands to retrieve information with the GenTL::GCGetPortInfo function on a module or remote device handle.

Enumerator
PORT_INFO_ID 

STRING Unique ID of the port.

PORT_INFO_VENDOR 

STRING Port vendor name.

PORT_INFO_MODEL 

STRING Port model name.

PORT_INFO_TLTYPE 

STRING Transport layer technology that is supported.

PORT_INFO_MODULE 

STRING GenTL Module the port refers to.

PORT_INFO_LITTLE_ENDIAN 

BOOL8 Flag indicating that the port data is little endian.

PORT_INFO_BIG_ENDIAN 

BOOL8 Flag indicating that the port data is big endian.

PORT_INFO_ACCESS_READ 

BOOL8 Port has read access.

PORT_INFO_ACCESS_WRITE 

BOOL8 Port has write access.

PORT_INFO_ACCESS_NA 

BOOL8 Port is not accessible.

PORT_INFO_ACCESS_NI 

BOOL8 Port is not implemented.

PORT_INFO_VERSION 

STRING Version of the port.

PORT_INFO_PORTNAME 

STRING Name of the port as referenced in the XML description.

PORT_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ SEGMENT_INFO_CMD_LIST

This enumeration defines commands to retrieve information about composite buffer segments using the GenTL::DSGetBufferSegmentInfo function. Introduced in GenTL v1.6.

Enumerator
SEGMENT_INFO_BASE 

PTR Based address of the buffer segment memory.

SEGMENT_INFO_SIZE 

SIZET Size of the buffer segment in bytes.

SEGMENT_INFO_IS_INCOMPLETE 

BOOL8 Flag to indicate that an error occured while filling the segment.

SEGMENT_INFO_SIZE_FILLED 

SIZET Number of bytes written into the buffer last time it has been filled.

SEGMENT_INFO_DATA_SIZE 

SIZET Size of the data intended to be written to the buffer last time it has been filled.

SEGMENT_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ STREAM_INFO_CMD_LIST

This enumeration defines commands to retrieve information with the GenTL::DSGetInfo function on a data stream handle

Enumerator
STREAM_INFO_ID 

STRING Unique ID of the data stream.

STREAM_INFO_NUM_DELIVERED 

UINT64 Number of delivered buffers since last acquisition start.

STREAM_INFO_NUM_UNDERRUN 

UINT64 Number of lost buffers due to queue underrun.

STREAM_INFO_NUM_ANNOUNCED 

SIZET Number of announced buffers.

STREAM_INFO_NUM_QUEUED 

SIZET Number of buffers in the input pool.

STREAM_INFO_NUM_AWAIT_DELIVERY 

SIZET Number of buffers in the output queue.

STREAM_INFO_NUM_STARTED 

UINT64 Number of buffers started in the acquisition engine.

STREAM_INFO_PAYLOAD_SIZE 

SIZET Size of the expected data in bytes.

STREAM_INFO_IS_GRABBING 

BOOL8 Flag indicating whether the acquisition engine is started or not.

STREAM_INFO_DEFINES_PAYLOADSIZE 

BOOL8 Flag that indicated that this data stream defines a payload size independent from the remote device.

STREAM_INFO_TLTYPE 

STRING Transport layer technology that is supported.

STREAM_INFO_NUM_CHUNKS_MAX 

SIZET Max number of chunks in a buffer, if known. GenTL v1.3

STREAM_INFO_BUF_ANNOUNCE_MIN 

SIZET Min number of buffers to announce before acq can start, if known. GenTL v1.3

STREAM_INFO_BUF_ALIGNMENT 

SIZET Buffer alignment in bytes. GenTL v1.3

STREAM_INFO_FLOW_TABLE 

BUFFER Flow mapping table in GenDC format. GenTL v1.6

STREAM_INFO_GENDC_PREFETCH_DESCRIPTOR 

BUFFER Prefetch version of GenDC descriptor. GenTL v1.6

STREAM_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

STREAM_CAM_INT_PARA 

BUFFER Intrinsic camera paras of current stream.

STREAM_CAM_EXT_PARA 

BUFFER Extrinsic camera paras of current stream.

◆ TL_CHAR_ENCODING_LIST

Defines char encoding schemes used by the producer, GenTL v1.4

Enumerator
TL_CHAR_ENCODING_ASCII 

char encoding type is ASCII.

TL_CHAR_ENCODING_UTF8 

char encoding type is UTF8.

◆ TL_INFO_CMD_LIST

System module information commands for the GenTL::TLGetInfo and GenTL::GCGetInfo functions.

Enumerator
TL_INFO_ID 

STRING Transport layer ID.

TL_INFO_VENDOR 

STRING Transport layer vendor name.

TL_INFO_MODEL 

STRING Transport layer model name.

TL_INFO_VERSION 

STRING Transport layer version.

TL_INFO_TLTYPE 

STRING Transport layer technology that is supported.

TL_INFO_NAME 

STRING File name including extension of the library.

TL_INFO_PATHNAME 

STRING Full path including file name and extension of the library.

TL_INFO_DISPLAYNAME 

STRING User readable name of the device. If this is not defined in the device this should be VENDOR MODEL (ID).

TL_INFO_CHAR_ENCODING 

INT32 Reporting the char encoding used by this Producer, GenTL v1.4

TL_INFO_GENTL_VER_MAJOR 

UINT32 Major number of the GenTL spec this producer complies with, GenTL v1.5

TL_INFO_GENTL_VER_MINOR 

UINT32 Minor number of the GenTL spec this producer complies with, GenTL v1.5

TL_INFO_CUSTOM_ID 

Starting value for custom IDs.

TL_INFO_COMMIT_ID 

STRING commiy ID.

TL_INFO_COMPILE 

STRING compile INFO dd/mm/yy compiler.

◆ URL_INFO_CMD_LIST

This enumeration defines commands to retrieve information with the GenTL::GCGetPortURLInfo function on a module or remote device handle. Introduced in GenTL v1.1

Enumerator
URL_INFO_URL 

STRING URL as defined in chapter 4.1.2 GenTL v1.1

URL_INFO_SCHEMA_VER_MAJOR 

INT32 Major version of the schema this URL refers to. GenTL v1.1

URL_INFO_SCHEMA_VER_MINOR 

INT32 Minor version of the schema this URL refers to. GenTL v1.1

URL_INFO_FILE_VER_MAJOR 

INT32 Major version of the XML-file this URL refers to. GenTL v1.1

URL_INFO_FILE_VER_MINOR 

INT32 Minor version of the XML-file this URL refers to. GenTL v1.1

URL_INFO_FILE_VER_SUBMINOR 

INT32 Subminor version of the XML-file this URL refers to. GenTL v1.1

URL_INFO_FILE_SHA1_HASH 

BUFFER 160-bit SHA1 Hash code of XML-file. GenTL v1.4

URL_INFO_FILE_REGISTER_ADDRESS 

UINT64 Register address in the device's register map. GenTL v1.5

URL_INFO_FILE_SIZE 

UINT64 File size in bytes. GenTL v1.5

URL_INFO_SCHEME 

INT32 Scheme of the URL as defined in URL_SCHEME_IDS. GenTL v1.5

URL_INFO_FILENAME 

STRING File name if the scheme of the URL is file. GenTL v1.5

URL_INFO_CUSTOM_ID 

Starting value for GenTL Producer custom IDs.

◆ URL_SCHEME_IDS

This enumeration defines enum values returned by the URL_INFO_SCHEME command. introduced in GenTL v1.5

Enumerator
URL_SCHEME_LOCAL 

The XML can be read from the local register map

URL_SCHEME_HTTP 

The XML can be downloaded from a http server

URL_SCHEME_FILE 

The XML can be read from the local hard drive

URL_SCHEME_CUSTOM_ID 

Starting value for custom scheme locations

Function Documentation

◆ DevClose()

GC_API DevClose ( DEV_HANDLE  hDevice)

Close the device, all stream based on this device module should be inaccessible.

Parameters
hDevicehandle of the GenTL device module
Returns
GC_ERR_SUCCESS or other errcode

◆ DevGetDataStreamID()

GC_API DevGetDataStreamID ( DEV_HANDLE  hDevice,
uint32_t  iIndex,
char *  sDataStreamID,
size_t *  piSize 
)

Get stream module ID by index.

Parameters
hDevicehandle of the GenTL device module
iIndexindex of the stream module
sDataStreamIDID string to be storaged
piSizesize of sID buffer, and retuen as size of the ID string. If size is insufficient, it will be size of the ID string, and the function return GC_ERR_BUFFER_TOO_SMALL.
Returns
GC_ERR_SUCCESS, GC_ERR_BUFFER_TOO_SMALL or other errcode

◆ DevGetInfo()

GC_API DevGetInfo ( DEV_HANDLE  hDevice,
DEVICE_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the device.

Parameters
hDevicehandle of the GenTL device module
iInfoCmdDEVICE_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ DevGetNumDataStreams()

GC_API DevGetNumDataStreams ( DEV_HANDLE  hDevice,
uint32_t *  piNumDataStreams 
)

Get number of device module.

Parameters
hDevicehandle of the GenTL device module
piNumDataStreamsnumber of the GenTL stream module based on this device module
Returns
GC_ERR_SUCCESS or other errcode

◆ DevGetParentIF()

GC_API DevGetParentIF ( DEV_HANDLE  hDevice,
IF_HANDLE phIface 
)

Get the GenTL interface module which current device is based on.

Parameters
hDevicehandle of the GenTL device module
phIfacehandle of the GenTL interface module
Returns
GC_ERR_SUCCESS or other errcode

◆ DevGetPort()

GC_API DevGetPort ( DEV_HANDLE  hDevice,
PORT_HANDLE phRemoteDevice 
)

Get the remote device write/read node.

Parameters
hDevicehandle of the device module
phRemoteDevicehandle of the remote device module
Returns
GC_ERR_SUCCESS or other errcode

◆ DevOpenDataStream()

GC_API DevOpenDataStream ( DEV_HANDLE  hDevice,
const char *  sDataStreamID,
DS_HANDLE phDataStream 
)

Open the stream module.

Parameters
hDevicehandle of the GenTL device module
sDataStreamIDID string of the stream module
phDataStreamhandle of the stream module
Returns
GC_ERR_SUCCESS or other errcode

◆ DSAllocAndAnnounceBuffer()

GC_API DSAllocAndAnnounceBuffer ( DS_HANDLE  hDataStream,
size_t  iSize,
void *  pPrivate,
BUFFER_HANDLE *  phBuffer 
)

Notift the GenTL stream module to allocate buffer for grabing stream.

Parameters
hDataStreamhandle of the GenTL stream module
iSizesize of the buffer should be allocated bt GenTL stream module
pPrivateser-defined data attached to the buffer
phBufferhandle of the internal buffer
Returns
GC_ERR_SUCCESS or other errcode

◆ DSAnnounceBuffer()

GC_API DSAnnounceBuffer ( DS_HANDLE  hDataStream,
void *  pBuffer,
size_t  iSize,
void *  pPrivate,
BUFFER_HANDLE *  phBuffer 
)

Notify the GenTL stream module to use the allocated buffer for grabing stream.

Parameters
hDataStreamhandle of the GenTL stream module
pBufferpoint the allocated memory
iSizesize of the buffer
pPrivateuser-defined data attached to the buffer
phBufferhandle of the buffer, when the function invoked, user can not directly access the buffer but use GenTL api with this handle.
Returns
GC_ERR_SUCCESS or other errcode

◆ DSClose()

GC_API DSClose ( DS_HANDLE  hDataStream)

Close the stream.

Parameters
hDataStreamhandle of the GenTL stream module
Returns
GC_ERR_SUCCESS or other errcode

◆ DSFlushQueue()

GC_API DSFlushQueue ( DS_HANDLE  hDataStream,
ACQ_QUEUE_TYPE  iOperation 
)

Clear the buffer queue which wait to be filled stream (image) data.

Parameters
hDataStreamhandle of the GenTL stream module
iOperationACQ_QUEUE_TYPE enum
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetBufferID()

GC_API DSGetBufferID ( DS_HANDLE  hDataStream,
uint32_t  iIndex,
BUFFER_HANDLE *  phBuffer 
)

Get buffer handle by Index.

Parameters
hDataStreamhandle of the GenTL stream module
iIndexindex of the buffer
phBufferhandle of the GenTL buffer
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetBufferInfo()

GC_API DSGetBufferInfo ( DS_HANDLE  hDataStream,
BUFFER_HANDLE  hBuffer,
BUFFER_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the buffer.

Parameters
hDataStreamhandle of the GenTL stream module
hBufferhandle of the GenTL buffer
iInfoCmdBUFFER_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetBufferPartInfo()

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 
)

Get some information of the specific part of the buffer.

Parameters
hDataStreamhandle of the GenTL stream module
hBufferhandle of the internal buffer
iPartIndexindex of the part
iInfoCmdBUFFER_PART_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetInfo()

GC_API DSGetInfo ( DS_HANDLE  hDataStream,
STREAM_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the stream.

Parameters
hDataStreamhandle of the GenTL stream module
iInfoCmdSTREAM_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetNumBufferParts()

GC_API DSGetNumBufferParts ( DS_HANDLE  hDataStream,
BUFFER_HANDLE  hBuffer,
uint32_t *  piNumParts 
)

Get the number of parts of the buffer.

Parameters
hDataStreamhandle of the GenTL stream module
hBufferhandle of the internal buffer
piNumPartsnumber of the buffer parts
Returns
GC_ERR_SUCCESS or other errcode

◆ DSGetParentDev()

GC_API DSGetParentDev ( DS_HANDLE  hDataStream,
DEV_HANDLE phDevice 
)

Get the GenTL device module which current stream is based on.

Parameters
hDataStreamhandle of the GenTL stream module
phDevicehandle of the GenTL device module
Returns
GC_API

◆ DSQueueBuffer()

GC_API DSQueueBuffer ( DS_HANDLE  hDataStream,
BUFFER_HANDLE  hBuffer 
)

Let the stream-attached buffer ready for grabing stream data.

Parameters
hDataStreamhandle of the GenTL stream module
hBufferhandle of the GenTL buffer
Returns
GC_ERR_SUCCESS or other errcode

◆ DSRevokeBuffer()

GC_API DSRevokeBuffer ( DS_HANDLE  hDataStream,
BUFFER_HANDLE  hBuffer,
void **  pBuffer,
void **  pPrivate 
)

revoke the buffer attach to the GenTL stream module

Parameters
hDataStreamhandle of the GenTL stream module
hBufferhandle of the GenTL buffer
pBufferC pointer can free (call free(pBuffer)) the buffer
pPrivateC pointer point the user defined data which attach the buffer before.
Returns
GC_ERR_SUCCESS or other errcode

◆ DSStartAcquisition()

GC_API DSStartAcquisition ( DS_HANDLE  hDataStream,
ACQ_START_FLAGS  iStartFlags,
uint64_t  iNumToAcquire 
)

Start stream acquistion.

Parameters
hDataStreamhandle of the GenTL stream module
iStartFlagsACQ_START_FLAGS enum
iNumToAcquirenumber of frame should be grabbed. Int64_t(-1) means infinite.
Returns
GC_ERR_SUCCESS or other errcode

◆ DSStopAcquisition()

GC_API DSStopAcquisition ( DS_HANDLE  hDataStream,
ACQ_STOP_FLAGS  iStopFlags 
)

Stop the stream acquisition.

Parameters
hDataStreamhandle of the GenTL stream module
iStopFlagsACQ_STOP_FLAGS enum
Returns
GC_ERR_SUCCESS or other errcode

◆ EventFlush()

GC_API EventFlush ( EVENT_HANDLE  hEvent)

Clear the event triggered stete if triggered.

Parameters
hEventthe handle of the event
Returns
GC_ERR_SUCCESS or other errcode

◆ EventGetData()

GC_API EventGetData ( EVENT_HANDLE  hEvent,
void *  pBuffer,
size_t *  piSize,
uint64_t  iTimeout 
)

Get a triggered event and then save data.

Parameters
hEventthe handle of the event
pBufferdata to be storaged
piSizesize of the valid data
iTimeoutcheck the event if trigger untill timeout or get a trigger signal
Returns
GC_ERR_SUCCESS, GC_ERR_TIMEOUT or other errcode

◆ EventGetDataInfo()

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 
)

Acquire specific information from the event data.

Parameters
hEventthe handle of the event
pInBufferdata to be extrated
iInSizesize of the data
iInfoCmdspecific part of the data want to be extracted
piTypetype of the data
pOutBufferto storage the result
piOutSizesize of the result
Returns
GC_ERR_SUCCESS or other errcode

◆ EventGetInfo()

GC_API EventGetInfo ( EVENT_HANDLE  hEvent,
EVENT_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get the infomation from the event handle.

Parameters
hEventthe handle of the event
iInfoCmdEVENT_INFO_CMD enum
piTypetype of the data
pBufferto storage the result
piSizesize of the result
Returns
GC_ERR_SUCCESS or other errcode

◆ EventKill()

GC_API EventKill ( EVENT_HANDLE  hEvent)

Kill the event state polling process.

Parameters
hEventthe handle of the event
Returns
GC_ERR_SUCCESS or other errcode

◆ GCCloseLib()

GC_API GCCloseLib ( void  )

Close the dynamic lib, tear down the intern object.

Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetInfo()

GC_API GCGetInfo ( TL_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get an infomation of the GenTL system object.

Parameters
iInfoCmdTL_INFO_CMD enum
piTypetype of the value the buffer filled
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetLastError()

GC_API GCGetLastError ( GC_ERROR *  piErrorCode,
char *  sErrText,
size_t *  piSize 
)

Get the last errcode and error message.

Parameters
piErrorCodelast errcode
sErrTexterror message
piSizesize of the error message
Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetNumPortURLs()

GC_API GCGetNumPortURLs ( PORT_HANDLE  hPort,
uint32_t *  piNumURLs 
)

Get the number of usrls the GenTL object belongs to.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
piNumURLsnumber of the URLS the GenTL object belongs to
Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetPortInfo()

GC_API GCGetPortInfo ( PORT_HANDLE  hPort,
PORT_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get the information of GenTL object.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
iInfoCmdPORT_INFO_CMD enum
piTypetype of the value the buffer filled
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetPortURL()

GC_API GCGetPortURL ( PORT_HANDLE  hPort,
char *  sURL,
size_t *  piSize 
)

Get the url of description file which describe the GenTL object.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
sURLthe buffer resverd to be filled with the url string, 128 bytes is recommended.
piSizethe url length
Returns
GC_ERR_SUCCESS or other errcode

◆ GCGetPortURLInfo()

GC_API GCGetPortURLInfo ( PORT_HANDLE  hPort,
uint32_t  iURLIndex,
URL_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some informations of the selected url the GenTL object belongs to.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
iURLIndexindex of the URL
iInfoCmdURL_INFO_CMD enum
piTypetype of the value the buffer filled
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ GCInitLib()

GC_API GCInitLib ( void  )

Init the dynamic lib.

Returns
GC_ERR_SUCCESS or other errcode

◆ GCReadPort()

GC_API GCReadPort ( PORT_HANDLE  hPort,
uint64_t  iAddress,
void *  pBuffer,
size_t *  piSize 
)

Read the register of the GenTL object. Notice that address of one GenTL object is independent coded.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
iAddressaddress of the rigester to be read
pBufferdata to be storaged
piSizesize of the data to be read
Returns
GC_ERR_SUCCESS or other errcode

◆ GCReadPortByName()

GC_API GCReadPortByName ( PORT_HANDLE  hPort,
const char *  varName,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Read the var of the GenTL object with var name.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
varNamename of the specific register
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled
Returns
GC_ERR_SUCCESS or other errcode

◆ GCReadPortStacked()

GC_API GCReadPortStacked ( PORT_HANDLE  hPort,
PORT_REGISTER_STACK_ENTRY pEntries,
size_t *  piNumEntries 
)

A set of GCReadPort operations.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
pEntriesentries of the GCReadPort arguments
piNumEntriesnumber of operations
Returns
GC_ERR_SUCCESS or other errcode

◆ GCRegisterEvent()

GC_API GCRegisterEvent ( EVENTSRC_HANDLE  hEventSrc,
EVENT_TYPE  iEventID,
EVENT_HANDLE *  phEvent 
)

Enable event tigger func of a GenTL object.

Parameters
hEventSrca GenTL object which can trigger the event
iEventIDspecific envent type the GenTL object should trigger, like EVENT_NEW_BUFFER
phEventhandle to the event, which can be use to check the event was triggered.
Returns
GC_ERR_SUCCESS or other errcode

◆ GCUnregisterEvent()

GC_API GCUnregisterEvent ( EVENTSRC_HANDLE  hEventSrc,
EVENT_TYPE  iEventID 
)

Disable event tigger func of a GenTL object, cooperate with the GCRegisterEvent function.

Parameters
hEventSrca GenTL object which can trigger the event
iEventIDspecific envent type the GenTL object should disable, like EVENT_NEW_BUFFER
Returns
GC_ERR_SUCCESS or other errcode

◆ GCWritePort()

GC_API GCWritePort ( PORT_HANDLE  hPort,
uint64_t  iAddress,
const void *  pBuffer,
size_t *  piSize 
)

Write the register of the GenTL object. Notice that address of one GenTL object is independent coded.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
iAddressaddress of the rigester to be written
pBufferthe data ready to be written
piSizesize of the data to be written
Returns
GC_ERR_SUCCESS or other errcode

◆ GCWritePortByName()

GC_API GCWritePortByName ( PORT_HANDLE  hPort,
const char *  varName,
INFO_DATATYPE *  piType,
const void *  pBuffer,
size_t *  piSize 
)

Write the var of the GenTL object with var name.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
varNamename of the specific register
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled
Returns
GC_ERR_SUCCESS or other errcode

◆ GCWritePortStacked()

GC_API GCWritePortStacked ( PORT_HANDLE  hPort,
PORT_REGISTER_STACK_ENTRY pEntries,
size_t *  piNumEntries 
)

A set of GCWritePort operations.

Parameters
hPorthandle of the GenTL object,such as system/interface/device/stream, notice that buffer is not implemented as common GenTL module
pEntriesentries of the GCReadPort arguments
piNumEntriesnumber of operations
Returns
GC_ERR_SUCCESS or other errcode

◆ IFClose()

GC_API IFClose ( IF_HANDLE  hIface)

Close the interface, all device based on this interface module should be inaccessible.

Parameters
hIfacehandle of the GenTL interface module
Returns
GC_ERR_SUCCESS or other errcode

◆ IFGetDeviceID()

GC_API IFGetDeviceID ( IF_HANDLE  hIface,
uint32_t  iIndex,
char *  sIDeviceID,
size_t *  piSize 
)

get ID string of the device module

Parameters
hIfacehandle of the GenTL interface module
iIndexindex of the device module
sIDeviceIDID string to be storaged
piSizesize of sID buffer, and retuen as size of the ID string. If size is insufficient, it will be size of the ID string, and the function return GC_ERR_BUFFER_TOO_SMALL.
Returns
GC_ERR_SUCCESS, GC_ERR_BUFFER_TOO_SMALL or other errcode
GC_API

◆ IFGetDeviceInfo()

GC_API IFGetDeviceInfo ( IF_HANDLE  hIface,
const char *  sDeviceID,
DEVICE_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the device module.

Parameters
hIfacehandle of the GenTL interface module
sDeviceIDID string of the device module
iInfoCmdDEVICE_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ IFGetInfo()

GC_API IFGetInfo ( IF_HANDLE  hIface,
INTERFACE_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the Interface.

Parameters
hIfacehandle of the GenTL interface module
iInfoCmdINTERFACE_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ IFGetNumDevices()

GC_API IFGetNumDevices ( IF_HANDLE  hIface,
uint32_t *  piNumDevices 
)

Get number of device module.

Parameters
hIfacehandle of the GenTL interface module
piNumDevicesnumber of the GenTL device module based on this system module
Returns
GC_ERR_SUCCESS or other errcode

◆ IFGetParentTL()

GC_API IFGetParentTL ( IF_HANDLE  hIface,
TL_HANDLE phSystem 
)

Get the GenTL system module which current interface is based on.

Parameters
hIfacehandle of the GenTL interface module
phSystemhandle of the GenTL system module
Returns
GC_ERR_SUCCESS or other errcode

◆ IFOpenDevice()

GC_API IFOpenDevice ( IF_HANDLE  hIface,
const char *  sDeviceID,
DEVICE_ACCESS_FLAGS  iOpenFlag,
DEV_HANDLE phDevice 
)

Open the device module.

Parameters
hIfacehandle of the GenTL interface module
sDeviceIDID string of the device module
iOpenFlagDEVICE_ACCESS_FLAGS enum
phDevicehandle of the device module
Returns
GC_ERR_SUCCESS or other errcode

◆ IFUpdateDeviceList()

GC_API IFUpdateDeviceList ( IF_HANDLE  hIface,
bool8_t *  pbChanged,
uint64_t  iTimeout 
)

re-Enumerate the device module

Parameters
hIfacehandle of the GenTL interface module
pbChangedif device module list is changed
iTimeoutre-Enumerate untill timeout or get a valid result
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferGetInfo()

GC_API PDBufferGetInfo ( BUFFER_HANDLE  hBuffer,
BUFFER_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the buffer (Simplified version compared with the standard GenTL version: DSGetBufferInfo)

Parameters
hBufferhandle of the GenTL buffer
iInfoCmdBUFFER_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferGetMeta()

GC_API PDBufferGetMeta ( BUFFER_HANDLE  hBuffer,
uint32_t  index,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get stream metadata information of the buffer.

Parameters
hBufferhandle of the GenTL buffer
indexindex of the metadata item
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferGetMetaByName()

GC_API PDBufferGetMetaByName ( BUFFER_HANDLE  hBuffer,
const char *  varName,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get stream metadata information of the buffer.

Parameters
hBufferhandle of the GenTL buffer
varNamename of the specific metadata var
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferGetMetaDesc()

GC_API PDBufferGetMetaDesc ( BUFFER_HANDLE  hBuffer,
uint32_t  index,
const char **  ppVarName,
const char **  ppDescName 
)

Get name and the describe information of the metadata item.

Parameters
hBufferhandle of the GenTL buffer
indexindex of the metadata item
ppVarNamepointer will be assigned to point to the name of the metadata item
ppDescNamepointer will be assigned to point to the description of the metadata item
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferGetMetaNum()

GC_API PDBufferGetMetaNum ( BUFFER_HANDLE  hBuffer,
size_t *  pMetaItemNum 
)

Get number of the metadata items.

Parameters
hBufferhandle of the GenTL buffer
pMetaItemNumnumber of the metadata items
Returns
GC_ERR_SUCCESS or other errcode

◆ PDBufferSave()

GC_API PDBufferSave ( BUFFER_HANDLE  hBuffer,
const char *  filesName,
int  opt 
)

Write the buffer to disk.

Parameters
hBufferhandle of the GenTL buffer
filesNamesave as filesName.suffix, suffix is determined by SDK. Nullptr is also accepted, and then name will be constructed by SDK itself.
opt0: save part buffers; 1: save ply with color if color exist; 2: save ply patch with color if color exist; others: reserved
Returns
GC_ERR_SUCCESS or other errcode

◆ TLClose()

GC_API TLClose ( TL_HANDLE  hTL)

Close the GenTL system module, which may invalid all interface handle.

Parameters
hTLhandle of the GenTL system module
Returns
GC_ERR_SUCCESS or other errcode

◆ TLGetInfo()

GC_API TLGetInfo ( TL_HANDLE  hTL,
TL_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some infomation of the system module.

Parameters
hTLhandle of the GenTL system module
iInfoCmdTL_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ TLGetInterfaceID()

GC_API TLGetInterfaceID ( TL_HANDLE  hTL,
uint32_t  iIndex,
char *  sID,
size_t *  piSize 
)

Get interface module ID by index.

Parameters
hTLhandle of the GenTL system module
iIndexindex of the interface module
sIDID string to be storaged
piSizesize of sID buffer, and retuen as size of the ID string. If size is insufficient, it will be size of the ID string, and the function return GC_ERR_BUFFER_TOO_SMALL.
Returns
GC_ERR_SUCCESS, GC_ERR_BUFFER_TOO_SMALL or other errcode

◆ TLGetInterfaceInfo()

GC_API TLGetInterfaceInfo ( TL_HANDLE  hTL,
const char *  sIfaceID,
INTERFACE_INFO_CMD  iInfoCmd,
INFO_DATATYPE *  piType,
void *  pBuffer,
size_t *  piSize 
)

Get some information of the interface module.

Parameters
hTLhandle of the GenTL system module
sIfaceIDID string of the interface module
iInfoCmdINTERFACE_INFO_CMD enum
piTypetype of the data
pBufferdata storaged
piSizesize of the data filled, if pBuffer eauqals null, that means the samllet buffer size should be provided
Returns
GC_ERR_SUCCESS or other errcode

◆ TLGetNumInterfaces()

GC_API TLGetNumInterfaces ( TL_HANDLE  hTL,
uint32_t *  piNumIfaces 
)

Get number of interface module.

Parameters
hTLhandle of the GenTL system module
piNumIfacesnumber of the GenTL interface module based on this system module
Returns
GC_ERR_SUCCESS or other errcode

◆ TLOpen()

GC_API TLOpen ( TL_HANDLE phTL)

Open the GenTL system module.

Parameters
phTLhandle of the GenTL system module
Returns
GC_ERR_SUCCESS or other errcode

◆ TLOpenInterface()

GC_API TLOpenInterface ( TL_HANDLE  hTL,
const char *  sIfaceID,
IF_HANDLE phIface 
)

Open the interface module.

Parameters
hTLhandle of the GenTL system module
sIfaceIDID string of the interface module
phIfacehandle of the interface module
Returns
GC_ERR_SUCCESS or other errcode

◆ TLUpdateInterfaceList()

GC_API TLUpdateInterfaceList ( TL_HANDLE  hTL,
bool8_t *  pbChanged,
uint64_t  iTimeout 
)

re-Enumerate the Interface module

Parameters
hTLhandle of the GenTL system module
pbChangedif interface module list is changed
iTimeoutre-Enumerate untill timeout or get a valid result
Returns
GC_ERR_SUCCESS or other errcode