eGrabber Reference  24.04.0.8
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
GenTL_v1_5.h File Reference

GenICam Transport Layer Client Interface. More...

#include <stdint.h>
#include <stddef.h>

Go to the source code of this file.

Classes

struct  S_EVENT_NEW_BUFFER
 Structure of the data returned from a signaled "New Buffer" event. More...
 
struct  S_PORT_REGISTER_STACK_ENTRY
 Structure to be use with GCWritePortStacked and GCReadPortStacked. More...
 
struct  S_SINGLE_CHUNK_DATA
 Structure carrying information about a single chunk in the buffer. More...
 

Namespaces

 GenTL
 

Macros

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

Typedefs

typedef bool bool8_t
 
typedef int32_t GC_ERROR
 
typedef void * TL_HANDLE
 Transport Layer handle, obtained through the TLOpen. More...
 
typedef void * IF_HANDLE
 Interface handle, obtained through TLOpenInterface. More...
 
typedef void * DEV_HANDLE
 Device Handle, obtained through the IFOpenDevice. More...
 
typedef void * DS_HANDLE
 Handle to an image stream object, obtained through DevOpenDataStream. More...
 
typedef void * PORT_HANDLE
 A Port handle is used to access the register space of a port. More...
 
typedef void * BUFFER_HANDLE
 BufferHandle, obtained through the DSAnnounceBuffer function. More...
 
typedef void * EVENTSRC_HANDLE
 A Event source handle is used to register a OS Event and to retrieve a GenTL event handle. More...
 
typedef void * EVENT_HANDLE
 Event Handle. More...
 
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 struct GenTL::S_EVENT_NEW_BUFFER EVENT_NEW_BUFFER_DATA
 Structure of the data returned from a signaled "New Buffer" event. More...
 
typedef struct GenTL::S_PORT_REGISTER_STACK_ENTRY PORT_REGISTER_STACK_ENTRY
 Structure to be use with GCWritePortStacked and GCReadPortStacked. More...
 
typedef struct GenTL::S_SINGLE_CHUNK_DATA SINGLE_CHUNK_DATA
 Structure carrying information about a single chunk in the buffer. More...
 

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_CUSTOM_ID = -10000
}
 Errors. More...
 
enum  INFO_DATATYPE_LIST {
  INFO_DATATYPE_UNKNOWN = 0, INFO_DATATYPE_STRING = 1, INFO_DATATYPE_STRINGLIST = 2, 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
}
 Defines the data type possible for the various Info functions. More...
 
enum  TL_CHAR_ENCODING_LIST { TL_CHAR_ENCODING_ASCII = 0, TL_CHAR_ENCODING_UTF8 = 1 }
 Defines char encoding schemes used by the producer. More...
 
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 = 9, TL_INFO_GENTL_VER_MINOR = 10, TL_INFO_CUSTOM_ID = 1000
}
 System module information commands for the GenICam::TL::Client::TLGetInfo and GenICam::TL::Client::GCGetInfo functions. More...
 
enum  INTERFACE_INFO_CMD_LIST { INTERFACE_INFO_ID = 0, INTERFACE_INFO_DISPLAYNAME = 1, INTERFACE_INFO_TLTYPE = 2, INTERFACE_INFO_CUSTOM_ID = 1000 }
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::IFGetInfo function from the Interface module. More...
 
enum  DEVICE_ACCESS_FLAGS_LIST {
  DEVICE_ACCESS_UNKNOWN = 0, DEVICE_ACCESS_NONE = 1, DEVICE_ACCESS_READONLY = 2, DEVICE_ACCESS_CONTROL = 3,
  DEVICE_ACCESS_EXCLUSIVE = 4, DEVICE_ACCESS_CUSTOM_ID = 1000
}
 This enumeration defines flags of how a device is to be opened with the GenICam::TL::Client::IFOpenDevice function. More...
 
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
}
 This enumeration defines values for the accessibility of the device to be returned in the GenICam::TL::Client::DevGetInfo function on a device handle. More...
 
enum  DEVICE_INFO_CMD_LIST {
  DEVICE_INFO_ID = 0, DEVICE_INFO_VENDOR = 1, DEVICE_INFO_MODEL = 2, DEVICE_INFO_TLTYPE = 3,
  DEVICE_INFO_DISPLAYNAME = 4, 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
}
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::DevGetInfo function on a device handle. More...
 
enum  ACQ_STOP_FLAGS_LIST { ACQ_STOP_FLAGS_DEFAULT = 0, ACQ_STOP_FLAGS_KILL = 1, ACQ_STOP_FLAGS_CUSTOM_ID = 1000 }
 This enumeration defines special stop flags for the acquisition engine. More...
 
enum  ACQ_START_FLAGS_LIST { ACQ_START_FLAGS_DEFAULT = 0, ACQ_START_FLAGS_CUSTOM_ID = 1000 }
 This enumeration defines special start flags for the acquisition engine. More...
 
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 = 3,
  ACQ_QUEUE_ALL_DISCARD = 4, ACQ_QUEUE_CUSTOM_ID = 1000
}
 This enumeration commands from which to which queue/pool buffers are flushed with the GenICam::TL::Client::DSFlushQueue function. More...
 
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 = 8, STREAM_INFO_DEFINES_PAYLOADSIZE = 9, STREAM_INFO_TLTYPE = 10, STREAM_INFO_NUM_CHUNKS_MAX = 11,
  STREAM_INFO_BUF_ANNOUNCE_MIN = 12, STREAM_INFO_BUF_ALIGNMENT = 13, STREAM_INFO_CUSTOM_ID = 1000
}
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::DSGetInfo function on a data stream handle. More...
 
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 = 4, BUFFER_INFO_IS_QUEUED = 5, BUFFER_INFO_IS_ACQUIRING = 6, BUFFER_INFO_IS_INCOMPLETE = 7,
  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_CUSTOM_ID = 1000
}
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::DSGetBufferInfo function on a buffer handle. More...
 
enum  BUFFER_PART_INFO_CMD_LIST {
  BUFFER_PART_INFO_BASE = 0, BUFFER_PART_INFO_DATA_SIZE = 1, BUFFER_PART_INFO_DATA_TYPE = 2, BUFFER_PART_INFO_DATA_FORMAT = 3,
  BUFFER_PART_INFO_DATA_FORMAT_NAMESPACE = 4, 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 = 10, BUFFER_PART_INFO_DELIVERED_IMAGEHEIGHT = 11,
  BUFFER_PART_INFO_CUSTOM_ID = 1000
}
 This enumeration defines commands to retrieve information about individual data parts in a multi-part buffer using the GenICam::TL::Client::DSGetBufferPartInfo function. More...
 
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_CUSTOM_ID = 1000
}
 Enumeration of TLType dependent payload types. More...
 
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
}
 Enumeration of TLType dependent pixel format namespaces. More...
 
enum  PIXELENDIANNESS_IDS { PIXELENDIANNESS_UNKNOWN = 0, PIXELENDIANNESS_LITTLE = 1, PIXELENDIANNESS_BIG = 2 }
 Enumeration of pixel endianness values. More...
 
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_CUSTOM_ID = 1000
}
 Enumeration describing which data type is present in given buffer part. More...
 
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
}
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::GCGetPortInfo function on a module or remote device handle. More...
 
enum  URL_SCHEME_IDS { URL_SCHEME_LOCAL = 0, URL_SCHEME_HTTP = 1, URL_SCHEME_FILE = 2, URL_SCHEME_CUSTOM_ID = 1000 }
 This enumeration defines enum values returned by the URL_INFO_SCHEME command. More...
 
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 = 5, 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
}
 This enumeration defines commands to retrieve information with the GenICam::TL::Client::GCGetPortURLInfo function on a module or remote device handle. More...
 
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
}
 Known event types that can be registered on certain modules with the GenICam::TL::Client::GCRegisterEvent function. More...
 
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 = 4, EVENT_INFO_CUSTOM_ID = 1000
}
 Event info command. More...
 
enum  EVENT_DATA_INFO_CMD_LIST { EVENT_DATA_ID = 0, EVENT_DATA_VALUE = 1, EVENT_DATA_NUMID = 2, EVENT_DATA_CUSTOM_ID = 1000 }
 Event data info command. More...
 

Functions

GC_API GCGetInfo (TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API GCGetLastError (GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
 
GC_API GCInitLib (void)
 
GC_API GCCloseLib (void)
 
GC_API GCReadPort (PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
 
GC_API GCWritePort (PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
 
GC_API GCGetPortURL (PORT_HANDLE hPort, char *sURL, size_t *piSize)
 
GC_API GCGetPortInfo (PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API GCRegisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
 
GC_API GCUnregisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
 
GC_API EventGetData (EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
 
GC_API EventGetDataInfo (EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize)
 
GC_API EventGetInfo (EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API EventFlush (EVENT_HANDLE hEvent)
 
GC_API EventKill (EVENT_HANDLE hEvent)
 
GC_API TLOpen (TL_HANDLE *phTL)
 
GC_API TLClose (TL_HANDLE hTL)
 
GC_API TLGetInfo (TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API TLGetNumInterfaces (TL_HANDLE hTL, uint32_t *piNumIfaces)
 
GC_API TLGetInterfaceID (TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
 
GC_API TLGetInterfaceInfo (TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API TLOpenInterface (TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
 
GC_API TLUpdateInterfaceList (TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
 
GC_API IFClose (IF_HANDLE hIface)
 
GC_API IFGetInfo (IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API IFGetNumDevices (IF_HANDLE hIface, uint32_t *piNumDevices)
 
GC_API IFGetDeviceID (IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
 
GC_API IFUpdateDeviceList (IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
 
GC_API IFGetDeviceInfo (IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API IFOpenDevice (IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice)
 
GC_API DevGetPort (DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
 
GC_API DevGetNumDataStreams (DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
 
GC_API DevGetDataStreamID (DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
 
GC_API DevOpenDataStream (DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
 
GC_API DevGetInfo (DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API DevClose (DEV_HANDLE hDevice)
 
GC_API DSAnnounceBuffer (DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 
GC_API DSAllocAndAnnounceBuffer (DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 
GC_API DSFlushQueue (DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
 
GC_API DSStartAcquisition (DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
 
GC_API DSStopAcquisition (DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
 
GC_API DSGetInfo (DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API DSGetBufferID (DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
 
GC_API DSClose (DS_HANDLE hDataStream)
 
GC_API DSRevokeBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
 
GC_API DSQueueBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
 
GC_API DSGetBufferInfo (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API GCGetNumPortURLs (PORT_HANDLE hPort, uint32_t *piNumURLs)
 
GC_API GCGetPortURLInfo (PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API GCReadPortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 
GC_API GCWritePortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 
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)
 
GC_API DevGetParentIF (DEV_HANDLE hDevice, IF_HANDLE *phIface)
 
GC_API DSGetParentDev (DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
 
GC_API DSGetNumBufferParts (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
 
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)
 
GC_API_P() PGCGetInfo (TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PGCGetLastError (GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
 
GC_API_P() PGCInitLib (void)
 
GC_API_P() PGCCloseLib (void)
 
GC_API_P() PGCReadPort (PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
 
GC_API_P() PGCWritePort (PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
 
GC_API_P() PGCGetPortURL (PORT_HANDLE hPort, char *sURL, size_t *piSize)
 
GC_API_P() PGCGetPortInfo (PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PGCRegisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
 
GC_API_P() PGCUnregisterEvent (EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
 
GC_API_P() PEventGetData (EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
 
GC_API_P() PEventGetDataInfo (EVENT_HANDLE hEvent, const void *pInBuffer, size_t iInSize, EVENT_DATA_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pOutBuffer, size_t *piOutSize)
 
GC_API_P() PEventGetInfo (EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PEventFlush (EVENT_HANDLE hEvent)
 
GC_API_P() PEventKill (EVENT_HANDLE hEvent)
 
GC_API_P() PTLOpen (TL_HANDLE *phTL)
 
GC_API_P() PTLClose (TL_HANDLE hTL)
 
GC_API_P() PTLGetInfo (TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PTLGetNumInterfaces (TL_HANDLE hTL, uint32_t *piNumIfaces)
 
GC_API_P() PTLGetInterfaceID (TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
 
GC_API_P() PTLGetInterfaceInfo (TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PTLOpenInterface (TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
 
GC_API_P() PTLUpdateInterfaceList (TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
 
GC_API_P() PIFClose (IF_HANDLE hIface)
 
GC_API_P() PIFGetInfo (IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PIFGetNumDevices (IF_HANDLE hIface, uint32_t *piNumDevices)
 
GC_API_P() PIFGetDeviceID (IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
 
GC_API_P() PIFUpdateDeviceList (IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
 
GC_API_P() PIFGetDeviceInfo (IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PIFOpenDevice (IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlags, DEV_HANDLE *phDevice)
 
GC_API_P() PDevGetPort (DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
 
GC_API_P() PDevGetNumDataStreams (DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
 
GC_API_P() PDevGetDataStreamID (DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
 
GC_API_P() PDevOpenDataStream (DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
 
GC_API_P() PDevGetInfo (DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PDevClose (DEV_HANDLE hDevice)
 
GC_API_P() PDSAnnounceBuffer (DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 
GC_API_P() PDSAllocAndAnnounceBuffer (DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
 
GC_API_P() PDSFlushQueue (DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
 
GC_API_P() PDSStartAcquisition (DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
 
GC_API_P() PDSStopAcquisition (DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)
 
GC_API_P() PDSGetInfo (DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PDSGetBufferID (DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
 
GC_API_P() PDSClose (DS_HANDLE hDataStream)
 
GC_API_P() PDSRevokeBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
 
GC_API_P() PDSQueueBuffer (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
 
GC_API_P() PDSGetBufferInfo (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PGCGetNumPortURLs (PORT_HANDLE hPort, uint32_t *iNumURLs)
 
GC_API_P() PGCGetPortURLInfo (PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 
GC_API_P() PGCReadPortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 
GC_API_P() PGCWritePortStacked (PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
 
GC_API_P() PDSGetBufferChunkData (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
 
GC_API_P() PIFGetParentTL (IF_HANDLE hIface, TL_HANDLE *phSystem)
 
GC_API_P() PDevGetParentIF (DEV_HANDLE hDevice, IF_HANDLE *phIface)
 
GC_API_P() PDSGetParentDev (DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
 
GC_API_P() PDSGetNumBufferParts (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
 
GC_API_P() PDSGetBufferPartInfo (DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t iPartIndex, BUFFER_PART_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
 

Detailed Description

GenICam Transport Layer Client Interface.

(c) 2004-2015 by GenICam GenTL Subcommittee

License: This file is published under the license of the EMVA GenICam Standard Group. A text file describing the legal terms is included in your installation as 'license.txt'. If for some reason you are missing this file please contact the EMVA or visit the website (http://www.genicam.org) for a full copy.

THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Version
1.5
Author
GenTL Subcommittee
Date
2015
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.

Class Documentation

◆ GenTL::S_EVENT_NEW_BUFFER

struct GenTL::S_EVENT_NEW_BUFFER

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

Class Members
BUFFER_HANDLE BufferHandle Buffer handle which contains new data.
void * pUserPointer User pointer provided at announcement of the buffer.

◆ GenTL::S_PORT_REGISTER_STACK_ENTRY

struct GenTL::S_PORT_REGISTER_STACK_ENTRY

Structure to be use with GCWritePortStacked and GCReadPortStacked.

Class Members
uint64_t Address Address of the register.
void * pBuffer Pointer to the buffer containing the data.
size_t Size Number of bytes to read write.

◆ GenTL::S_SINGLE_CHUNK_DATA

struct GenTL::S_SINGLE_CHUNK_DATA

Structure carrying information about a single chunk in the buffer.

Class Members
uint64_t ChunkID Numeric representation of ChunkID.
ptrdiff_t ChunkOffset Chunk offset in the buffer.
size_t ChunkLength Size of the chunk data.

Macro Definition Documentation

◆ GenTLMajorVersion

#define GenTLMajorVersion   1

defines the major version of the GenICam GenTL standard version this header is based on

◆ GenTLMinorVersion

#define GenTLMinorVersion   5

defines the minor version of the GenICam GenTL standard version this header is based on

◆ GenTLSubMinorVersion

#define GenTLSubMinorVersion   0

defines the sub minor version of the GenICam GenTL standard version this header is based on

◆ GC_GENTL_HEADER_VERSION_CODE

#define GC_GENTL_HEADER_VERSION_CODE (   major,
  minor,
  subminor 
)    (((major)<<24)+((minor)<<16)+(subminor))

◆ GC_GENTL_HEADER_VERSION

◆ TLTypeMixedName

#define TLTypeMixedName   "Mixed"

Type to use for several supported technologies.

◆ TLTypeCustomName

#define TLTypeCustomName   "Custom"

Type to use for custom technologies.

◆ TLTypeGEVName

#define TLTypeGEVName   "GEV"

Type to use for GigE Vision technology.

◆ TLTypeCLName

#define TLTypeCLName   "CL"

Type to use for Camera Link technology.

◆ TLTypeIIDCName

#define TLTypeIIDCName   "IIDC"

Type to use for IIDC 1394 technology.

◆ TLTypeUVCName

#define TLTypeUVCName   "UVC"

Type to use for USB video class devices.

◆ TLTypeCXPName

#define TLTypeCXPName   "CXP"

Type to use for CoaXPress.

◆ TLTypeCLHSName

#define TLTypeCLHSName   "CLHS"

Type to use for Camera Link HS.

◆ TLTypeU3VName

#define TLTypeU3VName   "U3V"

Type to use for USB3 Vision Standard.

◆ TLTypeETHERNETName

#define TLTypeETHERNETName   "Ethernet"

Type to use for Ethernet devices.

◆ TLTypePCIName

#define TLTypePCIName   "PCI"

Type to use for PCI/PCIe devices.

◆ TLSystemModuleName

#define TLSystemModuleName   "TLSystem"

Name to identify a system module.

◆ TLInterfaceModuleName

#define TLInterfaceModuleName   "TLInterface"

Name to identify a interface module.

◆ TLDeviceModuleName

#define TLDeviceModuleName   "TLDevice"

Name to identify a device module.

◆ TLDataStreamModuleName

#define TLDataStreamModuleName   "TLDataStream"

Name to identify a data stream module.

◆ TLBufferModuleName

#define TLBufferModuleName   "TLBuffer"

Name to identify a buffer module.

◆ TLRemoteDeviceModuleName

#define TLRemoteDeviceModuleName   "Device"

Name to identify a remote device module.

◆ GENTL_INVALID_HANDLE

#define GENTL_INVALID_HANDLE   NULL

Invalid handle value.

◆ GENTL_INFINITE

#define GENTL_INFINITE   0xFFFFFFFFFFFFFFFFULL

Infinite value to be used in various function calls.

◆ GC_API

#define GC_API   GC_IMPORT_EXPORT GC_ERROR GC_CALLTYPE

◆ GC_API_P

#define GC_API_P (   function)    typedef GC_ERROR( GC_CALLTYPE *function )

Typedef Documentation

◆ bool8_t

typedef bool bool8_t