All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
gentl_wrapper.h
Go to the documentation of this file.
1 /*
2  * This file is part of the rc_genicam_api package.
3  *
4  * Copyright (c) 2017 Roboception GmbH
5  * All rights reserved
6  *
7  * Author: Heiko Hirschmueller
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright notice,
13  * this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright notice,
16  * this list of conditions and the following disclaimer in the documentation
17  * and/or other materials provided with the distribution.
18  *
19  * 3. Neither the name of the copyright holder nor the names of its contributors
20  * may be used to endorse or promote products derived from this software without
21  * specific prior written permission.
22  *
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
27  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33  * POSSIBILITY OF SUCH DAMAGE.
34  */
35 
36 #ifndef RC_GENICAM_API_GENTL_WRAPPER
37 #define RC_GENICAM_API_GENTL_WRAPPER
38 
39 #include <GenTL/GenTL_v1_6.h>
40 
41 #include <string>
42 #include <vector>
43 
44 namespace rcg
45 {
46 
56 std::vector<std::string> getAvailableGenTLs(const char *paths);
57 
63 {
64  public:
65 
66  /*
67  Loads a shared lib and tries to resolve all functions that are defined in
68  GenTL Version 1.5.
69 
70  NOTE: An object of this class should only be instantiated by System for
71  internal usage.
72 
73  NOTE: An exception is thrown if the lib cannot be loaded or if not all
74  symbols can be resolved.
75 
76  @param filename Path and name of GenTL shared library.
77  */
78 
79  GenTLWrapper(const std::string &filename);
80  ~GenTLWrapper();
81 
82  // C interface functions of GenTL
83 
92 
115 
122 
134 
135  // GenTL v1.1
136 
141 
142  // GenTL v1.3
143 
145 
146  // GenTL v1.4
147 
151 
152  // GenTL v1.5
153 
156 
157  private:
158 
159  GenTLWrapper(const GenTLWrapper &); // forbidden
160  GenTLWrapper &operator=(const GenTLWrapper &); // forbidden
161 
162  void *lib;
163 };
164 
165 }
166 
167 #endif
PIFOpenDevice
GC_API_P() PIFOpenDevice(IF_HANDLE hIface, const char *sDeviceID, DEVICE_ACCESS_FLAGS iOpenFlag, DEV_HANDLE *phDevice)
rcg::getAvailableGenTLs
std::vector< std::string > getAvailableGenTLs(const char *paths)
The function uses the given list files of paths that is separated by colons or semicolons,...
Definition: gentl_wrapper_linux.cc:50
rcg::GenTLWrapper::DSClose
GenTL::PDSClose DSClose
Definition: gentl_wrapper.h:130
rcg::GenTLWrapper::TLClose
GenTL::PTLClose TLClose
Definition: gentl_wrapper.h:101
PTLGetInfo
GC_API_P() PTLGetInfo(TL_HANDLE hTL, TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::GCInitLib
GenTL::PGCInitLib GCInitLib
Definition: gentl_wrapper.h:86
PDevGetInfo
GC_API_P() PDevGetInfo(DEV_HANDLE hDevice, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PTLOpenInterface
GC_API_P() PTLOpenInterface(TL_HANDLE hTL, const char *sIfaceID, IF_HANDLE *phIface)
PDSAllocAndAnnounceBuffer
GC_API_P() PDSAllocAndAnnounceBuffer(DS_HANDLE hDataStream, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
PDSGetParentDev
GC_API_P() PDSGetParentDev(DS_HANDLE hDataStream, DEV_HANDLE *phDevice)
rcg::GenTLWrapper::DSGetBufferPartInfo
GenTL::PDSGetBufferPartInfo DSGetBufferPartInfo
Definition: gentl_wrapper.h:155
PDSAnnounceBuffer
GC_API_P() PDSAnnounceBuffer(DS_HANDLE hDataStream, void *pBuffer, size_t iSize, void *pPrivate, BUFFER_HANDLE *phBuffer)
PDevClose
GC_API_P() PDevClose(DEV_HANDLE hDevice)
PDevGetParentIF
GC_API_P() PDevGetParentIF(DEV_HANDLE hDevice, IF_HANDLE *phIface)
PIFGetDeviceID
GC_API_P() PIFGetDeviceID(IF_HANDLE hIface, uint32_t iIndex, char *sIDeviceID, size_t *piSize)
PDevGetDataStreamID
GC_API_P() PDevGetDataStreamID(DEV_HANDLE hDevice, uint32_t iIndex, char *sDataStreamID, size_t *piSize)
PIFGetDeviceInfo
GC_API_P() PIFGetDeviceInfo(IF_HANDLE hIface, const char *sDeviceID, DEVICE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PDSGetBufferInfo
GC_API_P() PDSGetBufferInfo(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, BUFFER_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PDSGetBufferPartInfo
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)
rcg::GenTLWrapper::EventGetInfo
GenTL::PEventGetInfo EventGetInfo
Definition: gentl_wrapper.h:97
rcg::GenTLWrapper::DSGetParentDev
GenTL::PDSGetParentDev DSGetParentDev
Definition: gentl_wrapper.h:150
PGCGetPortURLInfo
GC_API_P() PGCGetPortURLInfo(PORT_HANDLE hPort, uint32_t iURLIndex, URL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::GCRegisterEvent
GenTL::PGCRegisterEvent GCRegisterEvent
Definition: gentl_wrapper.h:93
rcg::GenTLWrapper::DevClose
GenTL::PDevClose DevClose
Definition: gentl_wrapper.h:121
rcg::GenTLWrapper::TLGetInfo
GenTL::PTLGetInfo TLGetInfo
Definition: gentl_wrapper.h:102
rcg::GenTLWrapper::lib
void * lib
Definition: gentl_wrapper.h:162
PDSRevokeBuffer
GC_API_P() PDSRevokeBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, void **pBuffer, void **pPrivate)
PGCGetLastError
GC_API_P() PGCGetLastError(GC_ERROR *piErrorCode, char *sErrText, size_t *piSize)
rcg::GenTLWrapper::DSGetBufferInfo
GenTL::PDSGetBufferInfo DSGetBufferInfo
Definition: gentl_wrapper.h:133
rcg::GenTLWrapper::TLGetInterfaceID
GenTL::PTLGetInterfaceID TLGetInterfaceID
Definition: gentl_wrapper.h:104
PIFGetParentTL
GC_API_P() PIFGetParentTL(IF_HANDLE hIface, TL_HANDLE *phSystem)
rcg
Definition: buffer.cc:47
rcg::GenTLWrapper::EventKill
GenTL::PEventKill EventKill
Definition: gentl_wrapper.h:99
PIFClose
GC_API_P() PIFClose(IF_HANDLE hIface)
PDSStartAcquisition
GC_API_P() PDSStartAcquisition(DS_HANDLE hDataStream, ACQ_START_FLAGS iStartFlags, uint64_t iNumToAcquire)
rcg::GenTLWrapper::DevOpenDataStream
GenTL::PDevOpenDataStream DevOpenDataStream
Definition: gentl_wrapper.h:119
rcg::GenTLWrapper::GCCloseLib
GenTL::PGCCloseLib GCCloseLib
Definition: gentl_wrapper.h:87
PGCGetNumPortURLs
GC_API_P() PGCGetNumPortURLs(PORT_HANDLE hPort, uint32_t *iNumURLs)
rcg::GenTLWrapper::DSGetBufferID
GenTL::PDSGetBufferID DSGetBufferID
Definition: gentl_wrapper.h:129
rcg::GenTLWrapper::IFClose
GenTL::PIFClose IFClose
Definition: gentl_wrapper.h:108
PDSFlushQueue
GC_API_P() PDSFlushQueue(DS_HANDLE hDataStream, ACQ_QUEUE_TYPE iOperation)
PIFGetNumDevices
GC_API_P() PIFGetNumDevices(IF_HANDLE hIface, uint32_t *piNumDevices)
rcg::GenTLWrapper::GCWritePortStacked
GenTL::PGCWritePortStacked GCWritePortStacked
Definition: gentl_wrapper.h:140
rcg::GenTLWrapper
Wrapper for dynamically loaded GenICam transport layers.
Definition: gentl_wrapper.h:62
PGCWritePort
GC_API_P() PGCWritePort(PORT_HANDLE hPort, uint64_t iAddress, const void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::IFGetDeviceInfo
GenTL::PIFGetDeviceInfo IFGetDeviceInfo
Definition: gentl_wrapper.h:113
rcg::GenTLWrapper::GCUnregisterEvent
GenTL::PGCUnregisterEvent GCUnregisterEvent
Definition: gentl_wrapper.h:94
rcg::GenTLWrapper::DSRevokeBuffer
GenTL::PDSRevokeBuffer DSRevokeBuffer
Definition: gentl_wrapper.h:131
PGCCloseLib
GC_API_P() PGCCloseLib(void)
rcg::GenTLWrapper::DevGetDataStreamID
GenTL::PDevGetDataStreamID DevGetDataStreamID
Definition: gentl_wrapper.h:118
rcg::GenTLWrapper::GCReadPort
GenTL::PGCReadPort GCReadPort
Definition: gentl_wrapper.h:88
PEventKill
GC_API_P() PEventKill(EVENT_HANDLE hEvent)
rcg::GenTLWrapper::EventFlush
GenTL::PEventFlush EventFlush
Definition: gentl_wrapper.h:98
PGCReadPort
GC_API_P() PGCReadPort(PORT_HANDLE hPort, uint64_t iAddress, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::GCGetPortInfo
GenTL::PGCGetPortInfo GCGetPortInfo
Definition: gentl_wrapper.h:91
rcg::GenTLWrapper::EventGetData
GenTL::PEventGetData EventGetData
Definition: gentl_wrapper.h:95
rcg::GenTLWrapper::GCWritePort
GenTL::PGCWritePort GCWritePort
Definition: gentl_wrapper.h:89
PIFUpdateDeviceList
GC_API_P() PIFUpdateDeviceList(IF_HANDLE hIface, bool8_t *pbChanged, uint64_t iTimeout)
PGCGetPortURL
GC_API_P() PGCGetPortURL(PORT_HANDLE hPort, char *sURL, size_t *piSize)
PTLGetInterfaceID
GC_API_P() PTLGetInterfaceID(TL_HANDLE hTL, uint32_t iIndex, char *sID, size_t *piSize)
rcg::GenTLWrapper::TLOpenInterface
GenTL::PTLOpenInterface TLOpenInterface
Definition: gentl_wrapper.h:106
rcg::GenTLWrapper::GCReadPortStacked
GenTL::PGCReadPortStacked GCReadPortStacked
Definition: gentl_wrapper.h:139
rcg::GenTLWrapper::TLGetInterfaceInfo
GenTL::PTLGetInterfaceInfo TLGetInterfaceInfo
Definition: gentl_wrapper.h:105
PDSGetInfo
GC_API_P() PDSGetInfo(DS_HANDLE hDataStream, STREAM_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PIFGetInfo
GC_API_P() PIFGetInfo(IF_HANDLE hIface, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::DSGetNumBufferParts
GenTL::PDSGetNumBufferParts DSGetNumBufferParts
Definition: gentl_wrapper.h:154
PTLGetNumInterfaces
GC_API_P() PTLGetNumInterfaces(TL_HANDLE hTL, uint32_t *piNumIfaces)
GenTL_v1_6.h
rcg::GenTLWrapper::DSGetInfo
GenTL::PDSGetInfo DSGetInfo
Definition: gentl_wrapper.h:128
rcg::GenTLWrapper::IFGetNumDevices
GenTL::PIFGetNumDevices IFGetNumDevices
Definition: gentl_wrapper.h:110
PDSClose
GC_API_P() PDSClose(DS_HANDLE hDataStream)
rcg::GenTLWrapper::GCGetPortURL
GenTL::PGCGetPortURL GCGetPortURL
Definition: gentl_wrapper.h:90
PDSGetBufferChunkData
GC_API_P() PDSGetBufferChunkData(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, SINGLE_CHUNK_DATA *pChunkData, size_t *piNumChunks)
rcg::GenTLWrapper::GCGetInfo
GenTL::PGCGetInfo GCGetInfo
Definition: gentl_wrapper.h:84
PGCUnregisterEvent
GC_API_P() PGCUnregisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID)
PDSGetBufferID
GC_API_P() PDSGetBufferID(DS_HANDLE hDataStream, uint32_t iIndex, BUFFER_HANDLE *phBuffer)
rcg::GenTLWrapper::DSGetBufferChunkData
GenTL::PDSGetBufferChunkData DSGetBufferChunkData
Definition: gentl_wrapper.h:144
PGCRegisterEvent
GC_API_P() PGCRegisterEvent(EVENTSRC_HANDLE hEventSrc, EVENT_TYPE iEventID, EVENT_HANDLE *phEvent)
rcg::GenTLWrapper::GCGetPortURLInfo
GenTL::PGCGetPortURLInfo GCGetPortURLInfo
Definition: gentl_wrapper.h:138
rcg::GenTLWrapper::DevGetPort
GenTL::PDevGetPort DevGetPort
Definition: gentl_wrapper.h:116
rcg::GenTLWrapper::DSFlushQueue
GenTL::PDSFlushQueue DSFlushQueue
Definition: gentl_wrapper.h:125
rcg::GenTLWrapper::DevGetNumDataStreams
GenTL::PDevGetNumDataStreams DevGetNumDataStreams
Definition: gentl_wrapper.h:117
rcg::GenTLWrapper::DevGetInfo
GenTL::PDevGetInfo DevGetInfo
Definition: gentl_wrapper.h:120
rcg::GenTLWrapper::GCGetLastError
GenTL::PGCGetLastError GCGetLastError
Definition: gentl_wrapper.h:85
PEventGetData
GC_API_P() PEventGetData(EVENT_HANDLE hEvent, void *pBuffer, size_t *piSize, uint64_t iTimeout)
PDSGetNumBufferParts
GC_API_P() PDSGetNumBufferParts(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer, uint32_t *piNumParts)
PDevGetPort
GC_API_P() PDevGetPort(DEV_HANDLE hDevice, PORT_HANDLE *phRemoteDevice)
PTLGetInterfaceInfo
GC_API_P() PTLGetInterfaceInfo(TL_HANDLE hTL, const char *sIfaceID, INTERFACE_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::IFGetParentTL
GenTL::PIFGetParentTL IFGetParentTL
Definition: gentl_wrapper.h:148
PDSQueueBuffer
GC_API_P() PDSQueueBuffer(DS_HANDLE hDataStream, BUFFER_HANDLE hBuffer)
PDevGetNumDataStreams
GC_API_P() PDevGetNumDataStreams(DEV_HANDLE hDevice, uint32_t *piNumDataStreams)
rcg::GenTLWrapper::~GenTLWrapper
~GenTLWrapper()
Definition: gentl_wrapper_linux.cc:202
rcg::GenTLWrapper::DSAllocAndAnnounceBuffer
GenTL::PDSAllocAndAnnounceBuffer DSAllocAndAnnounceBuffer
Definition: gentl_wrapper.h:124
PEventGetInfo
GC_API_P() PEventGetInfo(EVENT_HANDLE hEvent, EVENT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
rcg::GenTLWrapper::DSQueueBuffer
GenTL::PDSQueueBuffer DSQueueBuffer
Definition: gentl_wrapper.h:132
rcg::GenTLWrapper::TLUpdateInterfaceList
GenTL::PTLUpdateInterfaceList TLUpdateInterfaceList
Definition: gentl_wrapper.h:107
PEventFlush
GC_API_P() PEventFlush(EVENT_HANDLE hEvent)
rcg::GenTLWrapper::TLOpen
GenTL::PTLOpen TLOpen
Definition: gentl_wrapper.h:100
PTLOpen
GC_API_P() PTLOpen(TL_HANDLE *phTL)
PGCReadPortStacked
GC_API_P() PGCReadPortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
PGCGetPortInfo
GC_API_P() PGCGetPortInfo(PORT_HANDLE hPort, PORT_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PDevOpenDataStream
GC_API_P() PDevOpenDataStream(DEV_HANDLE hDevice, const char *sDataStreamID, DS_HANDLE *phDataStream)
rcg::GenTLWrapper::TLGetNumInterfaces
GenTL::PTLGetNumInterfaces TLGetNumInterfaces
Definition: gentl_wrapper.h:103
rcg::GenTLWrapper::IFOpenDevice
GenTL::PIFOpenDevice IFOpenDevice
Definition: gentl_wrapper.h:114
rcg::GenTLWrapper::GCGetNumPortURLs
GenTL::PGCGetNumPortURLs GCGetNumPortURLs
Definition: gentl_wrapper.h:137
rcg::GenTLWrapper::IFGetDeviceID
GenTL::PIFGetDeviceID IFGetDeviceID
Definition: gentl_wrapper.h:111
rcg::GenTLWrapper::DSStartAcquisition
GenTL::PDSStartAcquisition DSStartAcquisition
Definition: gentl_wrapper.h:126
PGCWritePortStacked
GC_API_P() PGCWritePortStacked(PORT_HANDLE hPort, PORT_REGISTER_STACK_ENTRY *pEntries, size_t *piNumEntries)
rcg::GenTLWrapper::GenTLWrapper
GenTLWrapper(const std::string &filename)
Definition: gentl_wrapper_linux.cc:104
rcg::GenTLWrapper::DevGetParentIF
GenTL::PDevGetParentIF DevGetParentIF
Definition: gentl_wrapper.h:149
PTLUpdateInterfaceList
GC_API_P() PTLUpdateInterfaceList(TL_HANDLE hTL, bool8_t *pbChanged, uint64_t iTimeout)
PTLClose
GC_API_P() PTLClose(TL_HANDLE hTL)
PGCGetInfo
GC_API_P() PGCGetInfo(TL_INFO_CMD iInfoCmd, INFO_DATATYPE *piType, void *pBuffer, size_t *piSize)
PGCInitLib
GC_API_P() PGCInitLib(void)
rcg::GenTLWrapper::IFGetInfo
GenTL::PIFGetInfo IFGetInfo
Definition: gentl_wrapper.h:109
rcg::GenTLWrapper::EventGetDataInfo
GenTL::PEventGetDataInfo EventGetDataInfo
Definition: gentl_wrapper.h:96
rcg::GenTLWrapper::DSAnnounceBuffer
GenTL::PDSAnnounceBuffer DSAnnounceBuffer
Definition: gentl_wrapper.h:123
rcg::GenTLWrapper::operator=
GenTLWrapper & operator=(const GenTLWrapper &)
PEventGetDataInfo
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)
rcg::GenTLWrapper::IFUpdateDeviceList
GenTL::PIFUpdateDeviceList IFUpdateDeviceList
Definition: gentl_wrapper.h:112
rcg::GenTLWrapper::DSStopAcquisition
GenTL::PDSStopAcquisition DSStopAcquisition
Definition: gentl_wrapper.h:127
PDSStopAcquisition
GC_API_P() PDSStopAcquisition(DS_HANDLE hDataStream, ACQ_STOP_FLAGS iStopFlags)


rc_genicam_api
Author(s): Heiko Hirschmueller
autogenerated on Wed Dec 4 2024 03:10:11