gencp_defines.h
Go to the documentation of this file.
1 //-----------------------------------------------------------------------------
2 // (c) 2011 by Teledyne DALSA
3 // Section: Digital Imaging
4 // Project: GenCP
5 // Author: Eric Bourbonnais
6 //
7 // License: This file is published under the license of the EMVA GenICam Standard Group.
8 // A text file describing the legal terms is included in your installation as 'GenICam_license.pdf'.
9 // If for some reason you are missing this file please contact the EMVA or visit the website
10 // (http://www.genicam.org) for a full copy.
11 //
12 // THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
13 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
14 // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
16 // OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
17 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
18 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
19 // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
20 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
22 // POSSIBILITY OF SUCH DAMAGE.
23 //-----------------------------------------------------------------------------
24 //
25 // Description:
26 // This file contains the defines required by GenCP protocol
27 //
29 #ifndef GENCP_DEFINES_H__
30 #define GENCP_DEFINES_H__
31 
32 #if defined(WIN32)
33  #include <stdlib.h>
34 #else
35  #include <sys/types.h>
36  #include <netinet/in.h>
37 #endif
38 
39 #if defined(WIN32)
40  #pragma intrinsic(_byteswap_ushort)
41  #pragma intrinsic(_byteswap_ulong)
42  #pragma intrinsic(_byteswap_uint64)
43  #define bswap_16(s) _byteswap_ushort(s)
44  #define bswap_32(s) _byteswap_ulong(s)
45  #define bswap_64(s) _byteswap_uint64(s)
46 #else
47  #define bswap_16(s) ((((s) << 8) & 0xff00U) | (((s) >> 8) & 0x00ffU))
48  #define bswap_32(l) ((((l) << 24) & 0xff000000) | (((l) << 8) & 0x00ff0000) | (((l) >> 8) & 0x0000ff00) | (((l) >> 24) & 0x000000ff))
49  #define bswap_64(ll) ( \
50  (((ll) << 56) & 0xff00000000000000LL) | \
51  (((ll) << 40) & 0x00ff000000000000LL) | \
52  (((ll) << 24) & 0x0000ff0000000000LL) | \
53  (((ll) << 8) & 0x000000ff00000000LL) | \
54  (((ll) >> 8) & 0x00000000ff000000LL) | \
55  (((ll) >> 24) & 0x0000000000ff0000LL) | \
56  (((ll) >> 40) & 0x000000000000ff00LL) | \
57  (((ll) >> 56) & 0x00000000000000ffLL))
58 #endif
59 
61 #define SET_QWORD( p, o, v ) \
62  (*( CLINT64* )( ( (char *)(p) ) + o ) = bswap_64(v))
63 
65 #define GET_QWORD( p, o ) \
66  (bswap_64( *(( CLINT64* )( ( (char *)(p) ) + o ) ) ) )
67 
69 #define SET_DWORD( p, o, v ) \
70  (*( CLUINT32 * )( ( (char *)(p) ) + o ) = bswap_32(v))
71 
73 #define GET_DWORD( p, o ) \
74  (bswap_32( *( CLUINT32 * )( ( (char *)(p) ) + o ) ))
75 
77 #define SET_WORD( p, o, v ) \
78  (*( UINT16 * )( ( (char *)(p) ) + o ) = bswap_16(v))
79 
81 #define GET_WORD( p, o ) \
82  (bswap_16( *( UINT16 * )( ( (char *)(p) ) + o ) ))
83 
85 #define SET_BYTE( p, o, v ) \
86  (*( char * )( ( (char *)(p) ) + o ) = (v))
87 
89 #define GET_BYTE( p, o ) \
90  ( *( char * )( ( (char *)(p) ) + o ) )
91 
93 #define GET_PTR( p, o ) \
94  ( ( char * )( ( (char *)(p) ) + o ) )
95 
97 // Prefix
98 
99 #ifdef CAMERA_LINK_HS
100 # define GENCP_PREFIX_PREAMBLE_SIZE sizeof(UINT16)
101 # define GENCP_PREFIX_CHANNEL_ID_SIZE sizeof(UINT16)
102 # define GENCP_PREFIX_SIZE ( GENCP_PREFIX_PREAMBLE_SIZE + GENCP_PREFIX_CHANNEL_ID_SIZE )
103 
104 # define GENCP_PREFIX_PREAMBLE_OFFSET 0
105 # define GENCP_PREFIX_CHANNEL_ID_OFFSET ( GENCP_PREFIX_PREAMBLE_OFFSET + GENCP_PREFIX_PREAMBLE_SIZE )
106 
107 # define GENCP_POSTFIX_CRC_SIZE sizeof(UINT16)
108 # define GENCP_POSTFIX_RESERVED_SIZE sizeof(UINT16)
109 # define GENCP_POSTFIX_SIZE ( GENCP_POSTFIX_CRC_SIZE + GENCP_POSTFIX_RESERVED_SIZE )
110 # define GENCP_POSTFIX_CRC_OFFSET 0
111 # define GENCP_POSTFIX_RESERVED_OFFSET ( GENCP_POSTFIX_CRC_OFFSET + GENCP_POSTFIX_CRC_SIZE )
112 # define GENCP_MAX_PACKET_SIZE 0xFFFF
113 #elif defined(CAMERA_LINK)
114 # define GENCP_PREFIX_PREAMBLE 0x0100
115 # define GENCP_PREFIX_PREAMBLE_LENGTH sizeof(UINT16)
116 # define GENCP_PREFIX_HEADER_SUM_LENGTH sizeof(UINT16)
117 # define GENCP_PREFIX_FRAME_SUM_LENGTH sizeof(UINT16)
118 # define GENCP_PREFIX_CHANNEL_LENGTH sizeof(UINT16)
119 
120 # define GENCP_PREFIX_PREAMBLE_OFFSET 0
121 # define GENCP_PREFIX_HEADER_SUM_OFFSET ( GENCP_PREFIX_PREAMBLE_OFFSET + GENCP_PREFIX_PREAMBLE_LENGTH)
122 # define GENCP_PREFIX_FRAME_SUM_OFFSET ( GENCP_PREFIX_HEADER_SUM_OFFSET + GENCP_PREFIX_HEADER_SUM_LENGTH)
123 # define GENCP_PREFIX_CHANNEL_OFFSET ( GENCP_PREFIX_FRAME_SUM_OFFSET + GENCP_PREFIX_FRAME_SUM_LENGTH)
124 
125 # define GENCP_PREFIX_SIZE 8
126 # define GENCP_POSTFIX_SIZE 0
127 # define GENCP_MAX_PACKET_SIZE ( (1000+8+8) + GENCP_PREFIX_SIZE + GENCP_POSTFIX_SIZE)
128 # define GENCP_PREFIX_CHANNEL_DEFAULT 0
129 #else
130 # define GENCP_PREFIX_SIZE 0
131 # define GENCP_POSTFIX_SIZE 0
132 # define GENCP_MAX_PACKET_SIZE 0xFFFF
133 #endif
134 
135 #define GENCP_VERSION_ALPHA 0x00000005
136 #define GENCP_VERSION_RELEASE_1 0x00010000
137 #define GENCP_VERSION_RELEASE_1_1 0x00010001
138 #ifndef GENCP_VERSION_CURRENT
139 # define GENCP_VERSION_CURRENT GENCP_VERSION_RELEASE_1_1
140 #endif
141 
142 typedef UINT16 GENCP_STATUS;
144 // Common Command Section Header
145 #define GENCP_CCD_STATUS_LENGTH sizeof(UINT16)
146 #define GENCP_CCD_FLAG_LENGTH sizeof(UINT16)
147 #define GENCP_CCD_COMMAND_LENGTH sizeof(UINT16)
148 #define GENCP_CCD_LENGTH_LENGTH sizeof(UINT16)
149 #define GENCP_CCD_REQ_ID_LENGTH sizeof(UINT16)
150 
151 #define GENCP_CCD_STATUS_OFFSET 0
152 #define GENCP_CCD_FLAGS_OFFSET 0
153 #define GENCP_CCD_COMMAND_OFFSET ( GENCP_CCD_FLAGS_OFFSET + GENCP_CCD_FLAG_LENGTH)
154 #define GENCP_CCD_LENGTH_OFFSET ( GENCP_CCD_COMMAND_OFFSET + GENCP_CCD_COMMAND_LENGTH)
155 #define GENCP_CCD_REQID_OFFSET ( GENCP_CCD_LENGTH_OFFSET + GENCP_CCD_LENGTH_LENGTH)
156 #define GENCP_CCD_SIZE ( GENCP_CCD_REQID_OFFSET + GENCP_CCD_REQ_ID_LENGTH)
157 
159 // Command Command Section Fields
160 
161 // Flags
162 #define GENCP_CCD_FLAG_ACK_REQUEST (1<<14)
163 #define GENCP_CCD_FLAG_RESEND (1<<15)
164 
165 // Commands
166 #define GENCP_CCD_COMMAND_READMEM_REQ 0x0800
167 #define GENCP_CCD_COMMAND_READMEM_ACK 0x0801
168 #define GENCP_CCD_COMMAND_WRITEMEM_REQ 0x0802
169 #define GENCP_CCD_COMMAND_WRITEMEM_ACK 0x0803
170 #define GENCP_CCD_COMMAND_PENDING_ACK 0x0805
171 #define GENCP_CCD_COMMAND_EVENT_REQ 0x0C00
172 #define GENCP_CCD_COMMAND_EVENT_ACK 0x0C01
173 
174 // Status Code
175 #define GENCP_CCD_STATUS_SUCCESS 0x0000
176 #define GENCP_CCD_STATUS_NOT_IMPLEMENTED 0x8001
177 #define GENCP_CCD_STATUS_INVALID_PARAMETER 0x8002
178 #define GENCP_CCD_STATUS_INVALID_ADDRESS 0x8003
179 #define GENCP_CCD_STATUS_WRITE_PROTECT 0x8004
180 #define GENCP_CCD_STATUS_BAD_ALIGNMENT 0x8005
181 #define GENCP_CCD_STATUS_ACCESS_DENIED 0x8006
182 #define GENCP_CCD_STATUS_BUSY 0x8007
183 #define GENCP_CCD_STATUS_LOCAL_PROBLEM 0x8008
184 #define GENCP_CCD_STATUS_MISMATCH 0x8009
185 #define GENCP_CCD_STATUS_INVALID_PROTOCOL 0x800A
186 #define GENCP_CCD_STATUS_MSG_TIMEOUT 0x800B
187 #define GENCP_CCD_STATUS_INVALID_HEADER 0x800E
188 #define GENCP_CCD_STATUS_WRONG_CONFIG 0x800F
189 #define GENCP_CCD_STATUS_GENERIC_ERROR 0x8FFF
190 
191 #define GENCP_LIB_STATUS_SUCCESS 0
192 #define GENCP_LIB_STATUS_BAD_PACKET_SIZE -20500
193 #define GENCP_LIB_STATUS_BAD_DATA_PACKET_SIZE -20501
194 #define GENCP_LIB_STATUS_INVALID_PACKET -20502
195 #define GENCP_LIB_STATUS_INVALID_ANSWER -20503
196 #define GENCP_LIB_STATUS_INVALID_REQ_ID -20504
197 #define GENCP_LIB_STATUS_INSUFFICENT_RESOURCE -20505
198 #define GENCP_LIB_STATUS_INCOMPATIBLE_PROTOCOL -20506
199 #define GENCP_LIB_STATUS_BAD_REGISTER_SIZE -20507
200 #define GENCP_LIB_STATUS_NO_TRANSACTION_PENDING -20508
201 #define GENCP_LIB_STATUS_UNZIPED_FAILED -20509
202 
204 // Specific Command Section Header
205 #define GENCP_MAX_SCD_SIZE ( GENCP_MAX_PACKET_SIZE - GENCP_CCD_SIZE)
206 #define GENCP_SCD_ADDR_SIZE ( sizeof(CLINT64) )
207 #define GENCP_SCD_READMEM_RESERVE_SIZE ( sizeof(UINT16) )
208 #define GENCP_SCD_READMEM_LENGTH_SIZE ( sizeof(UINT16) )
209 
210 #define GENCP_SCD_ADDR_OFFSET ( GENCP_CCD_SIZE )
211 #define GENCP_SCD_READMEM_DATA_OFFSET ( GENCP_CCD_SIZE )
212 #define GENCP_SCD_READMEM_RESERVE_OFFSET ( GENCP_SCD_ADDR_OFFSET + GENCP_SCD_ADDR_SIZE )
213 #define GENCP_SCD_READMEM_LENGTH_OFFSET ( GENCP_SCD_READMEM_RESERVE_OFFSET + GENCP_SCD_READMEM_RESERVE_SIZE )
214 
215 #define GENCP_SCD_WRITEMEM_DATA_OFFSET ( GENCP_SCD_ADDR_OFFSET + GENCP_SCD_ADDR_SIZE )
216 
217 #define GENCP_SCD_WRITEMEM_ACK_RESERVE_SIZE ( sizeof(UINT16) )
218 #define GENCP_SCD_WRITEMEM_ACK_WRITTEN_SIZE ( sizeof(UINT16) )
219 
220 #define GENCP_SCD_READMEM_REQ_SIZE ( GENCP_SCD_READMEM_LENGTH_OFFSET + GENCP_SCD_READMEM_LENGTH_SIZE )
221 #define GENCP_SCD_WRITEMEM_ACK_SIZE ( GENCP_CCD_SIZE + GENCP_SCD_WRITEMEM_ACK_RESERVE_SIZE + GENCP_SCD_WRITEMEM_ACK_WRITTEN_SIZE )
222 #define GENCP_SCD_READMEM_MAX_DATA_SIZE ( GENCP_MAX_SCD_SIZE )
223 #define GENCP_SCD_WRITEMEM_MAX_DATA_SIZE ( GENCP_MAX_SCD_SIZE - GENCP_SCD_ADDR_SIZE )
224 
225 // Pending
226 #define GENCP_SCD_PENDING_RESERVE_SIZE ( sizeof(UINT16) )
227 #define GENCP_SCD_PENDING_TIMEOUT_SIZE ( sizeof(UINT16) )
228 #define GENCP_SCD_PENDING_RESERVE_OFFSET ( GENCP_CCD_SIZE )
229 #define GENCP_SCD_PENDING_TIMEOUT_OFFSET ( GENCP_CCD_SIZE + GENCP_SCD_PENDING_RESERVE_SIZE )
230 #define GENCP_SCD_PENDING_ACK_SIZE ( GENCP_SCD_PENDING_TIMEOUT_OFFSET + GENCP_SCD_PENDING_TIMEOUT_SIZE )
231 
232 // Event
233 #define GENCP_SCD_EVENT_RESERVED_SIZE ( sizeof(UINT16) )
234 #define GENCP_SCD_EVENTID_SIZE ( sizeof(UINT16) )
235 #define GENCP_SCD_TIMESTAMP_SIZE ( sizeof(UINT64) )
236 #define GENCP_SCD_EVENT_EVENTID_OFFSET ( GENCP_CCD_SIZE + GENCP_SCD_EVENT_RESERVED_SIZE)
237 #define GENCP_SCD_EVENT_TIMESTAMP_OFFSET ( GENCP_SCD_EVENT_EVENTID_OFFSET + GENCP_SCD_EVENTID_SIZE)
238 #define GENCP_SCD_EVENT_DATA_OFFSET ( GENCP_SCD_EVENT_TIMESTAMP_OFFSET + GENCP_SCD_TIMESTAMP_SIZE)
239 
241 // Boot Strap Registers
242 #if GENCP_VERSION_CURRENT >= 0x00010000
243 #define _GENCP_COMPATIBILITY_OFFSET 64
244 #else
245 #define _GENCP_COMPATIBILITY_OFFSET 0
246 #endif
247 
248 #define PROTOCOL_VERSION_OFFSET 0x0000
249 #define MANUFACTURER_NAME_OFFSET 0x0004
250 #define DEVICE_MODEL_OFFSET 0x0044
251 #define DEVICE_FAMILY_OFFSET 0x0084
252 #define DEVICE_VERSION_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0084)
253 #define MANUFACTURER_INFO_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x00C4)
254 #define SERIAL_NUMBER_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0104)
255 #define USER_DEFINED_NAME_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0144)
256 #define DEVICE_CAPABILITY_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0184)
257 #define MAX_DEVICE_RESPONSE_TIME_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x018C)
258 #define MANIFEST_TABLE_ADDR_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0190)
259 #define SBRM_ADDR_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x0198)
260 #define DEVICE_CONFIGURATION_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01A0)
261 #define HEARTBEAT_TIMEOUT_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01A8)
262 #define MESSAGE_CHANNEL_ID_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01AC)
263 #define TIMESTAMP_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01B0)
264 #define TIMESTAMP_LATCH_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01B8)
265 #define TIMESTAMP_INCR_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01BC)
266 #define ACCESS_PRIVILEGE_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01C4)
267 #define PROTOCOL_ENDIANESS_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01C8)
268 #define IMPLEMENTATION_ENDIANESS_OFFSET (_GENCP_COMPATIBILITY_OFFSET + 0x01CC)
269 
270 #define PROTOCOL_VERSION_SIZE 4
271 #define MANUFACTURER_NAME_SIZE 64
272 #define DEVICE_MODEL_SIZE 64
273 #define DEVICE_FAMILY_SIZE 64
274 #define DEVICE_VERSION_SIZE 64
275 #define MANUFACTURER_INFO_SIZE 64
276 #define SERIAL_NUMBER_SIZE 64
277 #define USER_DEFINED_NAME_SIZE 64
278 #define DEVICE_CAPABILITY_SIZE 8
279 #define MAX_DEVICE_RESPONSE_TIME_SIZE 4
280 #define MANIFEST_TABLE_ADDR_SIZE 8
281 #define SBRM_ADDR_SIZE 8
282 #define DEVICE_CONFIGURATION_SIZE 8
283 #define HEARTBEAT_TIMEOUT_SIZE 4
284 #define MESSAGE_CHANNEL_ID_SIZE 4
285 #define TIMESTAMP_SIZE 8
286 #define TIMESTAMP_LATCH_SIZE 4
287 #define TIMESTAMP_INCR_SIZE 8
288 #define ACCESS_PRIVILEGE_SIZE 4
289 #define PROTOCOL_ENDIANESS_SIZE 4
290 #define IMPLEMENTATION_ENDIANESS_SIZE 4
291 
292 #define CAPABILITY_USER_NAME_AVAILABLE 0x0000000000000001ull
293 #define CAPABILITY_ACCESS_PRIVILEGE_AVAILABLE 0x0000000000000002ull
294 #define CAPABILITY_MESSAGE_CHANNEL_SUPPORTED 0x0000000000000004ull
295 #define CAPABILITY_TIMESTAMP_SUPPORTED 0x0000000000000008ull
296 #define CAPABILITY_STRING_ENCODING 0x00000000000000F0ull
297 #define CAPABILITY_FAMILY_REGISTER_AVAILABLE 0x0000000000000100ull
298 #define CAPABILITY_SBRM_SUPPORTED 0x0000000000000200ull
299 #define CAPABILITY_ENDIANESS_REGISTER_SUPPORTED 0x0000000000000400ull
300 #define CAPABILITY_WRITTEN_LENGTH_SUPPORTED 0x0000000000000800ull
301 #define CAPABILITY_MULTIEVENT_SUPPORTED 0x0000000000001000ull
302 
303 #define CONFIGURATION_HEARTBEAT_ENABLE 0x0000000000000001ull
304 #define CONFIGURATION_MULTIEVENT_ENABLE 0x0000000000000002ull
305 
306 #define ACCESS_PRIVILEGE_MASK 0x00000007l
307 #define ACCESS_PRIVILEGE_AVAILABLE 0
308 #define ACCESS_PRIVILEGE_EXCLUSIVE 1
309 
310 #define CL_SERIAL_BITRATEX_AVAILABLE_OFFSET ( SBRM_OFFSET )
311 #define CL_SERIAL_BITRATE_AVAILABLE 4
312 #define CL_SERIAL_BITRATEX_OFFSET ( CL_SERIAL_BITRATEX_AVAILABLE_OFFSET + CL_SERIAL_BITRATE_AVAILABLE )
313 #define CL_SERIAL_BITRATE_SIZE 4
314 
315 #define MANIFEST_ENTRY_FILE_INFO_INDEX 0
316 #define MANIFEST_ENTRY_FILE_VERSION_MAJOR_INDEX 0
317 #define MANIFEST_ENTRY_FILE_VERSION_MINOR_INDEX 1
318 #define MANIFEST_ENTRY_FILE_VERSION_SUBMINOR_INDEX 2
319 #define MANIFEST_ENTRY_FILE_GEN_VERSION_MAJOR_INDEX 4
320 #define MANIFEST_ENTRY_FILE_GEN_VERSION_MINOR_INDEX 5
321 #define MANIFEST_ENTRY_FILE_TYPE_INDEX 6
322 #define MANIFEST_ENTRY_FILE_ADDR_INDEX 8
323 #define MANIFEST_ENTRY_FILE_SIZE_INDEX 16
324 #define MANIFEST_ENTRY_RESERVED_INDEX 24
325 
326 #define MANIFEST_ENTRY_COUNT_OFFSET MANIFEST_OFFSET
327 #define MANIFEST_ENTRY_COUNT_SIZE 8
328 #define MANIFEST_ENTRY_SIZE 24
329 #define MANIFEST_ENTRY_MAX_SIZE_SIZE 64
330 #define MANIFEST_ENTRYX_OFFSET(X) ( MANIFEST_ENTRY_COUNT_OFFSET + MANIFEST_ENTRY_COUNT_SIZE + ( X * MANIFEST_ENTRY_MAX_SIZE_SIZE ) )
331 #define MANIFEST_ENTRYX_INFO_OFFSET(X) ( MANIFEST_ENTRYX_OFFSET(X) + MANIFEST_ENTRY_FILE_INFO_INDEX )
332 #define MANIFEST_ENTRYX_FILE_ADDR_OFFSET(X) ( MANIFEST_ENTRYX_OFFSET(X) + MANIFEST_ENTRY_FILE_ADDR_INDEX )
333 #define MANIFEST_ENTRYX_FILE_SIZE_OFFSET(X) ( MANIFEST_ENTRYX_OFFSET(X) + MANIFEST_ENTRY_FILE_SIZE_INDEX )
334 #define MANIFEST_ENTRYX_RESERVED_OFFSET(X) ( MANIFEST_ENTRYX_OFFSET(X) + MANIFEST_ENTRY_RESERVED_INDEX )
335 //#define MANIFEST_URL_SIZE 256
336 
337 #endif //GENCP_DEFINES_H__
UINT16 GENCP_STATUS


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