Completed
Pull Request — master (#380)
by
unknown
03:38
created

UC480_CAPTURE_ERROR_INFO   A

Complexity

Total Complexity 0

Size/Duplication

Total Lines 9
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 9
rs 10
c 1
b 0
f 0
wmc 0
1
"""
2
.. module: uc480.uc480_h
3
   :platform: Windows, Linux
4
.. moduleauthor:: Daniel Dietze <[email protected]>
5
6
Thorlabs' uc480 header file translated to python.
7
8
..
9
10
   The uc480 python module is free software: you can redistribute it and/or modify
11
   it under the terms of the GNU General Public License as published by
12
   the Free Software Foundation, either version 3 of the License, or
13
   (at your option) any later version.
14
15
   The uc480 python module is distributed in the hope that it will be useful,
16
   but WITHOUT ANY WARRANTY; without even the implied warranty of
17
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
   GNU General Public License for more details.
19
20
   You should have received a copy of the GNU General Public License
21
   along with the uc480 python module. If not, see <http://www.gnu.org/licenses/>.
22
23
   Copyright 2015 Daniel Dietze <[email protected]>.
24
"""
25
import platform
26
import ctypes
27
28
if platform.system() == "Windows":
29
    import ctypes.wintypes as wt
30
else:
31
    import wintypes_linux as wt
32
33
#  ----------------------------------------------------------------------------
34
#  Color modes
35
#  ----------------------------------------------------------------------------
36
IS_COLORMODE_INVALID      =          0
37
IS_COLORMODE_MONOCHROME   =          1
38
IS_COLORMODE_BAYER        =          2
39
IS_COLORMODE_CBYCRY       =          4
40
41
#  ----------------------------------------------------------------------------
42
#   Sensor Types
43
#  ----------------------------------------------------------------------------
44
IS_SENSOR_INVALID  = 0x0000
45
46
#  CMOS sensors
47
IS_SENSOR_C0640R13M = 0x0001 #  cmos, 0640x0480, rolling, 1/3", mono,
48
IS_SENSOR_C0640R13C = 0x0002 #  cmos, 0640x0480, rolling, 1/3", color,
49
IS_SENSOR_C1280R23M = 0x0003 #  cmos, 1280x1024, rolling, 1/1.8", mono,
50
IS_SENSOR_C1280R23C = 0x0004 #  cmos, 1280x1024, rolling, 1/1.8", color,
51
52
IS_SENSOR_C1600R12C = 0x0008 #  cmos, 1600x1200, rolling, 1/2", color,
53
54
IS_SENSOR_C2048R12C = 0x000A #  cmos, 2048x1536, rolling, 1/2", color,
55
IS_SENSOR_C2592R12M = 0x000B #  cmos, 2592x1944, rolling, 1/2", mono
56
IS_SENSOR_C2592R12C = 0x000C #  cmos, 2592x1944, rolling, 1/2", color
57
58
IS_SENSOR_C0640G12M = 0x0010 #  cmos, 0640x0480, global,  1/2", mono,
59
IS_SENSOR_C0640G12C = 0x0011 #  cmos, 0640x0480, global,  1/2", color,
60
IS_SENSOR_C0752G13M = 0x0012 #  cmos, 0752x0480, global,  1/3", mono,
61
IS_SENSOR_C0752G13C = 0x0013 #  cmos, 0752x0480, global,  1/3", color,
62
63
IS_SENSOR_C1282R13C = 0x0015 #  cmos, 1280x1024, rolling, 1/3", color,
64
65
IS_SENSOR_C1601R13C = 0x0017 #  cmos, 1600x1200, rolling, 1/3.2", color,
66
67
IS_SENSOR_C0753G13M = 0x0018 #  cmos, 0752x0480, global,  1/3", mono,
68
IS_SENSOR_C0753G13C = 0x0019 #  cmos, 0752x0480, global,  1/3", color,
69
70
IS_SENSOR_C0754G13M = 0x0022 #  cmos, 0752x0480, global,  1/3", mono, single board (LE)
71
IS_SENSOR_C0754G13C = 0x0023 #  cmos, 0752x0480, global,  1/3", color, single board (LE)
72
73
IS_SENSOR_C1284R13C = 0x0025 #  cmos, 1280x1024, rolling, 1/3", color, single board (LE))
74
IS_SENSOR_C1604R13C = 0x0027 #  cmos, 1600x1200, rolling, 1/3.2", color, single board (LE)
75
IS_SENSOR_C1285R12M = 0x0028 #  cmos, 1280x1024, rolling, 1/2", mono,  single board
76
IS_SENSOR_C1285R12C = 0x0029 #  cmos, 1280x1024, rolling, 1/2", color, single board
77
IS_SENSOR_C1605R12C = 0x002B #  cmos, 1600x1200, rolling, 1/2", color, single board
78
IS_SENSOR_C2055R12C = 0x002D #  cmos, 2048x1536, rolling, 1/2", color, single board
79
IS_SENSOR_C2595R12M = 0x002E #  cmos, 2592x1944, rolling, 1/2", mono,  single board
80
IS_SENSOR_C2595R12C = 0x002F #  cmos, 2592x1944, rolling, 1/2", color, single board
81
82
IS_SENSOR_C1280R12M = 0x0030 #  cmos, 1280x1024, rolling, 1/2", mono,
83
IS_SENSOR_C1280R12C = 0x0031 #  cmos, 1280x1024, rolling, 1/2", color,
84
85
IS_SENSOR_C1283R12M = 0x0032 #  cmos, 1280x1024, rolling, 1/2", mono, single board
86
IS_SENSOR_C1283R12C = 0x0033 #  cmos, 1280x1024, rolling, 1/2", color, single board
87
88
IS_SENSOR_C1603R12M = 0x0034 #  cmos, 1600x1200, rolling, 1/2", mono, single board
89
IS_SENSOR_C1603R12C = 0x0035 #  cmos, 1600x1200, rolling, 1/2", color, single board
90
IS_SENSOR_C2053R12C = 0x0037 #  cmos, 2048x1536, rolling, 1/2", color, single board
91
IS_SENSOR_C2593R12M = 0x0038 #  cmos, 2592x1944, rolling, 1/2", mono,  single board
92
IS_SENSOR_C2593R12C = 0x0039 #  cmos, 2592x1944, rolling, 1/2", color, single board
93
94
IS_SENSOR_C1286R12M = 0x003A #  cmos, 1280x1024, rolling, 1/2", mono, single board
95
IS_SENSOR_C1286R12C = 0x003B #  cmos, 1280x1024, rolling, 1/2", color, single board
96
97
IS_SENSOR_C1287R12M_WO = 0x003C #  cmos, 1280x1024, rolling, 1/2", color, USB board
98
IS_SENSOR_C1287R12C_WO = 0x003D #  cmos, 1280x1024, rolling, 1/2", color, USB board
99
100
IS_SENSOR_C3840R12M = 0x003E #  cmos, 3840x2760, rolling, 1/2.5", mono
101
IS_SENSOR_C3840R12C = 0x003F #  cmos, 3840x2760, rolling, 1/2.5", color
102
103
IS_SENSOR_C3845R12M = 0x0040 #  cmos, 3840x2760, rolling, 1/2.5", mono,  single board
104
IS_SENSOR_C3845R12C = 0x0041 #  cmos, 3840x2760, rolling, 1/2.5", color, single board
105
106
IS_SENSOR_C0768R12M = 0x004A #  cmos, 0768x0576, rolling, HDR sensor, 1/2", mono
107
IS_SENSOR_C0768R12C = 0x004B #  cmos, 0768x0576, rolling, HDR sensor, 1/2", color
108
109
IS_SENSOR_C2057R12M_WO = 0x0044 #  cmos, 2048x1536, rolling, 1/2", mono,  USB board (special version WO)
110
IS_SENSOR_C2057R12C_WO = 0x0045 #  cmos, 2048x1536, rolling, 1/2", color, USB board (special version WO)
111
112
IS_SENSOR_C2597R12M = 0x0048 #  cmos, 2592x1944, rolling, 1/2", mono,  USB board (special version WO)
113
IS_SENSOR_C2597R12C = 0x0049 #  cmos, 2592x1944, rolling, 1/2", color, WO board (special version WO)
114
115
IS_SENSOR_C1280G12M = 0x0050 #  cmos, 1280x1024, global, 1/2", mono
116
IS_SENSOR_C1280G12C = 0x0051 #  cmos, 1280x1024, global, 1/2", color
117
118
#  CCD sensors
119
IS_SENSOR_D1024G13M = 0x0080 #  ccd, 1024x0768, global, 1/3", mono,
120
IS_SENSOR_D1024G13C = 0x0081 #  ccd, 1024x0768, global, 1/3", color,
121
122
IS_SENSOR_D0640G13M = 0x0082 #  ccd, 0640x0480, global, 1/3", mono
123
IS_SENSOR_D0640G13C = 0x0083 #  ccd, 0640x0480, global, 1/3", color
124
125
IS_SENSOR_D1281G12M = 0x0084 #  ccd, 1280x1024, global, 1/2", mono
126
IS_SENSOR_D1281G12C = 0x0085 #  ccd, 1280x1024, global, 1/2", color
127
128
IS_SENSOR_D0640G12M = 0x0088 #  ccd, 0640x0480, global, 1/2", mono,
129
IS_SENSOR_D0640G12C = 0x0089 #  ccd, 0640x0480, global, 1/2", color,
130
131
IS_SENSOR_D0640G14M = 0x0090 #  ccd, 0640x0480, global, 1/4", mono,
132
IS_SENSOR_D0640G14C = 0x0091 #  ccd, 0640x0480, global, 1/4", color,
133
134
IS_SENSOR_D0768G12M = 0x0092 #  ccd, 0768x0582, global, 1/2", mono,
135
IS_SENSOR_D0768G12C = 0x0093 #  ccd, 0768x0582, global, 1/2", color,
136
137
IS_SENSOR_D1280G12M = 0x0096 #  ccd, 1280x1024, global, 1/2", mono,
138
IS_SENSOR_D1280G12C = 0x0097 #  ccd, 1280x1024, global, 1/2", color,
139
140
IS_SENSOR_D1600G12M = 0x0098 #  ccd, 1600x1200, global, 1/1.8", mono,
141
IS_SENSOR_D1600G12C = 0x0099 #  ccd, 1600x1200, global, 1/1.8", color,
142
143
IS_SENSOR_D1280G13M = 0x009A #  ccd, 1280x960, global, 1/3", mono,
144
IS_SENSOR_D1280G13C = 0x009B #  ccd, 1280x960, global, 1/3", color,
145
146
147
#  ----------------------------------------------------------------------------
148
#  error codes
149
#  ----------------------------------------------------------------------------
150
IS_NO_SUCCESS                 =        -1  #  function call failed
151
IS_SUCCESS                    =        0   #  function call succeeded
152
IS_INVALID_CAMERA_HANDLE      =        1   #  camera handle is not valid or zero
153
IS_INVALID_HANDLE             =        1   #  a handle other than the camera handle is invalid
154
155
IS_IO_REQUEST_FAILED          =        2   #  an io request to the driver failed
156
IS_CANT_OPEN_DEVICE           =        3   #  returned by is_InitCamera
157
IS_CANT_CLOSE_DEVICE          =        4
158
IS_CANT_SETUP_MEMORY          =        5
159
IS_NO_HWND_FOR_ERROR_REPORT   =        6
160
IS_ERROR_MESSAGE_NOT_CREATED  =        7
161
IS_ERROR_STRING_NOT_FOUND     =        8
162
IS_HOOK_NOT_CREATED           =        9
163
IS_TIMER_NOT_CREATED          =       10
164
IS_CANT_OPEN_REGISTRY         =       11
165
IS_CANT_READ_REGISTRY         =       12
166
IS_CANT_VALIDATE_BOARD        =       13
167
IS_CANT_GIVE_BOARD_ACCESS     =       14
168
IS_NO_IMAGE_MEM_ALLOCATED     =       15
169
IS_CANT_CLEANUP_MEMORY        =       16
170
IS_CANT_COMMUNICATE_WITH_DRIVER =     17
171
IS_FUNCTION_NOT_SUPPORTED_YET   =     18
172
IS_OPERATING_SYSTEM_NOT_SUPPORTED =   19
173
174
IS_INVALID_VIDEO_IN       =           20
175
IS_INVALID_IMG_SIZE       =           21
176
IS_INVALID_ADDRESS        =           22
177
IS_INVALID_VIDEO_MODE     =           23
178
IS_INVALID_AGC_MODE       =           24
179
IS_INVALID_GAMMA_MODE     =           25
180
IS_INVALID_SYNC_LEVEL     =           26
181
IS_INVALID_CBARS_MODE     =           27
182
IS_INVALID_COLOR_MODE     =           28
183
IS_INVALID_SCALE_FACTOR   =           29
184
IS_INVALID_IMAGE_SIZE     =           30
185
IS_INVALID_IMAGE_POS      =           31
186
IS_INVALID_CAPTURE_MODE   =           32
187
IS_INVALID_RISC_PROGRAM   =           33
188
IS_INVALID_BRIGHTNESS     =           34
189
IS_INVALID_CONTRAST       =           35
190
IS_INVALID_SATURATION_U   =           36
191
IS_INVALID_SATURATION_V   =           37
192
IS_INVALID_HUE            =           38
193
IS_INVALID_HOR_FILTER_STEP  =         39
194
IS_INVALID_VERT_FILTER_STEP  =        40
195
IS_INVALID_EEPROM_READ_ADDRESS =      41
196
IS_INVALID_EEPROM_WRITE_ADDRESS  =    42
197
IS_INVALID_EEPROM_READ_LENGTH    =    43
198
IS_INVALID_EEPROM_WRITE_LENGTH   =    44
199
IS_INVALID_BOARD_INFO_POINTER    =    45
200
IS_INVALID_DISPLAY_MODE          =    46
201
IS_INVALID_ERR_REP_MODE          =    47
202
IS_INVALID_BITS_PIXEL            =    48
203
IS_INVALID_MEMORY_POINTER        =    49
204
205
IS_FILE_WRITE_OPEN_ERROR          =   50
206
IS_FILE_READ_OPEN_ERROR           =   51
207
IS_FILE_READ_INVALID_BMP_ID       =   52
208
IS_FILE_READ_INVALID_BMP_SIZE     =   53
209
IS_FILE_READ_INVALID_BIT_COUNT    =   54
210
IS_WRONG_KERNEL_VERSION           =   55
211
212
IS_RISC_INVALID_XLENGTH      =        60
213
IS_RISC_INVALID_YLENGTH      =        61
214
IS_RISC_EXCEED_IMG_SIZE      =        62
215
216
#  DirectDraw Mode errors
217
IS_DD_MAIN_FAILED              =      70
218
IS_DD_PRIMSURFACE_FAILED       =      71
219
IS_DD_SCRN_SIZE_NOT_SUPPORTED  =      72
220
IS_DD_CLIPPER_FAILED           =      73
221
IS_DD_CLIPPER_HWND_FAILED      =      74
222
IS_DD_CLIPPER_CONNECT_FAILED   =      75
223
IS_DD_BACKSURFACE_FAILED       =      76
224
IS_DD_BACKSURFACE_IN_SYSMEM    =      77
225
IS_DD_MDL_MALLOC_ERR           =      78
226
IS_DD_MDL_SIZE_ERR             =      79
227
IS_DD_CLIP_NO_CHANGE           =      80
228
IS_DD_PRIMMEM_NULL             =      81
229
IS_DD_BACKMEM_NULL             =      82
230
IS_DD_BACKOVLMEM_NULL          =      83
231
IS_DD_OVERLAYSURFACE_FAILED    =      84
232
IS_DD_OVERLAYSURFACE_IN_SYSMEM =      85
233
IS_DD_OVERLAY_NOT_ALLOWED      =      86
234
IS_DD_OVERLAY_COLKEY_ERR       =      87
235
IS_DD_OVERLAY_NOT_ENABLED      =      88
236
IS_DD_GET_DC_ERROR             =      89
237
IS_DD_DDRAW_DLL_NOT_LOADED     =      90
238
IS_DD_THREAD_NOT_CREATED       =      91
239
IS_DD_CANT_GET_CAPS            =      92
240
IS_DD_NO_OVERLAYSURFACE        =      93
241
IS_DD_NO_OVERLAYSTRETCH        =      94
242
IS_DD_CANT_CREATE_OVERLAYSURFACE =    95
243
IS_DD_CANT_UPDATE_OVERLAYSURFACE =    96
244
IS_DD_INVALID_STRETCH            =    97
245
246
IS_EV_INVALID_EVENT_NUMBER    =      100
247
IS_INVALID_MODE               =      101
248
IS_CANT_FIND_FALCHOOK         =      102
249
IS_CANT_FIND_HOOK             =      102
250
IS_CANT_GET_HOOK_PROC_ADDR    =      103
251
IS_CANT_CHAIN_HOOK_PROC       =      104
252
IS_CANT_SETUP_WND_PROC        =      105
253
IS_HWND_NULL                  =      106
254
IS_INVALID_UPDATE_MODE        =      107
255
IS_NO_ACTIVE_IMG_MEM          =      108
256
IS_CANT_INIT_EVENT            =      109
257
IS_FUNC_NOT_AVAIL_IN_OS       =      110
258
IS_CAMERA_NOT_CONNECTED       =      111
259
IS_SEQUENCE_LIST_EMPTY        =      112
260
IS_CANT_ADD_TO_SEQUENCE       =      113
261
IS_LOW_OF_SEQUENCE_RISC_MEM   =      114
262
IS_IMGMEM2FREE_USED_IN_SEQ    =      115
263
IS_IMGMEM_NOT_IN_SEQUENCE_LIST=      116
264
IS_SEQUENCE_BUF_ALREADY_LOCKED=      117
265
IS_INVALID_DEVICE_ID          =      118
266
IS_INVALID_BOARD_ID           =      119
267
IS_ALL_DEVICES_BUSY           =      120
268
IS_HOOK_BUSY                  =      121
269
IS_TIMED_OUT                  =      122
270
IS_NULL_POINTER               =      123
271
IS_WRONG_HOOK_VERSION         =      124
272
IS_INVALID_PARAMETER          =      125   #  a parameter specified was invalid
273
IS_NOT_ALLOWED                =      126
274
IS_OUT_OF_MEMORY              =      127
275
IS_INVALID_WHILE_LIVE         =      128
276
IS_ACCESS_VIOLATION           =      129   #  an internal exception occurred
277
IS_UNKNOWN_ROP_EFFECT         =      130
278
IS_INVALID_RENDER_MODE        =      131
279
IS_INVALID_THREAD_CONTEXT     =      132
280
IS_NO_HARDWARE_INSTALLED      =      133
281
IS_INVALID_WATCHDOG_TIME      =      134
282
IS_INVALID_WATCHDOG_MODE      =      135
283
IS_INVALID_PASSTHROUGH_IN     =      136
284
IS_ERROR_SETTING_PASSTHROUGH_IN =    137
285
IS_FAILURE_ON_SETTING_WATCHDOG  =    138
286
IS_NO_USB20                     =    139   #  the usb port doesnt support usb 2.0
287
IS_CAPTURE_RUNNING              =    140   #  there is already a capture running
288
289
IS_MEMORY_BOARD_ACTIVATED      =     141   #  operation could not execute while mboard is enabled
290
IS_MEMORY_BOARD_DEACTIVATED    =     142   #  operation could not execute while mboard is disabled
291
IS_NO_MEMORY_BOARD_CONNECTED   =     143   #  no memory board connected
292
IS_TOO_LESS_MEMORY             =     144   #  image size is above memory capacity
293
IS_IMAGE_NOT_PRESENT           =     145   #  requested image is no longer present in the camera
294
IS_MEMORY_MODE_RUNNING         =     146
295
IS_MEMORYBOARD_DISABLED        =     147
296
297
IS_TRIGGER_ACTIVATED         =       148   #  operation could not execute while trigger is enabled
298
IS_WRONG_KEY                 =       150
299
IS_CRC_ERROR                 =       151
300
IS_NOT_YET_RELEASED          =       152   #  this feature is not available yet
301
IS_NOT_CALIBRATED            =       153   #  the camera is not calibrated
302
IS_WAITING_FOR_KERNEL        =       154   #  a request to the kernel exceeded
303
IS_NOT_SUPPORTED             =       155   #  operation mode is not supported
304
IS_TRIGGER_NOT_ACTIVATED     =       156   #  operation could not execute while trigger is disabled
305
IS_OPERATION_ABORTED         =       157
306
IS_BAD_STRUCTURE_SIZE        =       158
307
IS_INVALID_BUFFER_SIZE       =       159
308
IS_INVALID_PIXEL_CLOCK       =       160
309
IS_INVALID_EXPOSURE_TIME     =       161
310
IS_AUTO_EXPOSURE_RUNNING     =       162
311
IS_CANNOT_CREATE_BB_SURF     =       163   #  error creating backbuffer surface
312
IS_CANNOT_CREATE_BB_MIX      =       164   #  backbuffer mixer surfaces can not be created
313
IS_BB_OVLMEM_NULL            =       165   #  backbuffer overlay mem could not be locked
314
IS_CANNOT_CREATE_BB_OVL      =       166   #  backbuffer overlay mem could not be created
315
IS_NOT_SUPP_IN_OVL_SURF_MODE =       167   #  function not supported in overlay surface mode
316
IS_INVALID_SURFACE           =       168   #  surface invalid
317
IS_SURFACE_LOST              =       169   #  surface has been lost
318
IS_RELEASE_BB_OVL_DC         =       170   #  error releasing backbuffer overlay DC
319
IS_BB_TIMER_NOT_CREATED      =       171   #  backbuffer timer could not be created
320
IS_BB_OVL_NOT_EN             =       172   #  backbuffer overlay has not been enabled
321
IS_ONLY_IN_BB_MODE           =       173   #  only possible in backbuffer mode
322
IS_INVALID_COLOR_FORMAT      =       174   #  invalid color format
323
IS_INVALID_WB_BINNING_MODE   =       175   #  invalid binning mode for AWB
324
IS_INVALID_I2C_DEVICE_ADDRESS =      176   #  invalid I2C device address
325
IS_COULD_NOT_CONVERT          =      177   #  current image couldn't be converted
326
IS_TRANSFER_ERROR             =      178   #  transfer failed
327
IS_PARAMETER_SET_NOT_PRESENT  =      179   #  the parameter set is not present
328
IS_INVALID_CAMERA_TYPE        =      180   #  the camera type in the ini file doesn't match
329
IS_INVALID_HOST_IP_HIBYTE     =      181   #  HIBYTE of host address is invalid
330
IS_CM_NOT_SUPP_IN_CURR_DISPLAYMODE = 182   #  color mode is not supported in the current display mode
331
IS_NO_IR_FILTER                   =  183
332
IS_STARTER_FW_UPLOAD_NEEDED       =  184   #  device starter firmware is not compatible
333
334
IS_DR_LIBRARY_NOT_FOUND          =       185   #  the DirectRender library could not be found
335
IS_DR_DEVICE_OUT_OF_MEMORY       =       186   #  insufficient graphics adapter video memory
336
IS_DR_CANNOT_CREATE_SURFACE      =       187   #  the image or overlay surface could not be created
337
IS_DR_CANNOT_CREATE_VERTEX_BUFFER =      188   #  the vertex buffer could not be created
338
IS_DR_CANNOT_CREATE_TEXTURE       =      189   #  the texture could not be created
339
IS_DR_CANNOT_LOCK_OVERLAY_SURFACE =      190   #  the overlay surface could not be locked
340
IS_DR_CANNOT_UNLOCK_OVERLAY_SURFACE =    191   #  the overlay surface could not be unlocked
341
IS_DR_CANNOT_GET_OVERLAY_DC         =    192   #  cannot get the overlay surface DC
342
IS_DR_CANNOT_RELEASE_OVERLAY_DC     =    193   #  cannot release the overlay surface DC
343
IS_DR_DEVICE_CAPS_INSUFFICIENT      =    194   #  insufficient graphics adapter capabilities
344
IS_INCOMPATIBLE_SETTING             =    195   #  Operation is not possible because of another incompatible setting
345
IS_DR_NOT_ALLOWED_WHILE_DC_IS_ACTIVE =   196   #  user App still has DC handle.
346
IS_DEVICE_ALREADY_PAIRED             =   197   #  The device is already paired
347
IS_SUBNETMASK_MISMATCH               =   198   #  The subnetmasks of the device and the adapter differ
348
IS_SUBNET_MISMATCH                   =   199   #  The subnets of the device and the adapter differ
349
IS_INVALID_IP_CONFIGURATION          =   200   #  The IP configuation of the device is invalid
350
IS_DEVICE_NOT_COMPATIBLE             =   201   #  The device is incompatible to the driver
351
IS_NETWORK_FRAME_SIZE_INCOMPATIBLE   =   202   #  The frame size settings of the device and the network adapter are incompatible
352
IS_NETWORK_CONFIGURATION_INVALID     =   203   #  The network adapter configuration is invalid
353
IS_ERROR_CPU_IDLE_STATES_CONFIGURATION = 204   #  The setting of the CPU idle state configuration failed
354
IS_DEVICE_BUSY                        =  205   #  The device is busy. The operation must be executed again later.
355
356
357
#  ----------------------------------------------------------------------------
358
#  common definitions
359
#  ----------------------------------------------------------------------------
360
IS_OFF                      =        0
361
IS_ON                       =        1
362
IS_IGNORE_PARAMETER         =        -1
363
364
365
#  ----------------------------------------------------------------------------
366
#   device enumeration
367
#  ----------------------------------------------------------------------------
368
IS_USE_DEVICE_ID             =       0x8000
369
IS_ALLOW_STARTER_FW_UPLOAD   =       0x10000
370
371
#  ----------------------------------------------------------------------------
372
#  AutoExit enable/disable
373
#  ----------------------------------------------------------------------------
374
IS_GET_AUTO_EXIT_ENABLED      =      0x8000
375
IS_DISABLE_AUTO_EXIT          =      0
376
IS_ENABLE_AUTO_EXIT           =      1
377
378
379
#  ----------------------------------------------------------------------------
380
#  live/freeze parameters
381
#  ----------------------------------------------------------------------------
382
IS_GET_LIVE                   =      0x8000
383
384
IS_WAIT                      =       0x0001
385
IS_DONT_WAIT                 =       0x0000
386
IS_FORCE_VIDEO_STOP          =       0x4000
387
IS_FORCE_VIDEO_START         =       0x4000
388
IS_USE_NEXT_MEM              =       0x8000
389
390
391
#  ----------------------------------------------------------------------------
392
#  video finish constants
393
#  ----------------------------------------------------------------------------
394
IS_VIDEO_NOT_FINISH         =        0
395
IS_VIDEO_FINISH             =        1
396
397
398
#  ----------------------------------------------------------------------------
399
#  bitmap render modes
400
#  ----------------------------------------------------------------------------
401
IS_GET_RENDER_MODE           =       0x8000
402
403
IS_RENDER_DISABLED           =       0x0000
404
IS_RENDER_NORMAL             =       0x0001
405
IS_RENDER_FIT_TO_WINDOW      =       0x0002
406
IS_RENDER_DOWNSCALE_1_2      =       0x0004
407
IS_RENDER_MIRROR_UPDOWN      =       0x0010
408
IS_RENDER_DOUBLE_HEIGHT      =       0x0020
409
IS_RENDER_HALF_HEIGHT        =       0x0040
410
411
IS_RENDER_PLANAR_COLOR_RED    =      0x0080
412
IS_RENDER_PLANAR_COLOR_GREEN  =      0x0100
413
IS_RENDER_PLANAR_COLOR_BLUE   =      0x0200
414
415
IS_RENDER_PLANAR_MONO_RED      =     0x0400
416
IS_RENDER_PLANAR_MONO_GREEN    =     0x0800
417
IS_RENDER_PLANAR_MONO_BLUE     =     0x1000
418
419
IS_USE_AS_DC_STRUCTURE         =     0x4000
420
IS_USE_AS_DC_HANDLE            =     0x8000
421
422
#  ----------------------------------------------------------------------------
423
#  external trigger modes
424
#  ----------------------------------------------------------------------------
425
IS_GET_EXTERNALTRIGGER       =       0x8000
426
IS_GET_TRIGGER_STATUS        =       0x8001
427
IS_GET_TRIGGER_MASK          =       0x8002
428
IS_GET_TRIGGER_INPUTS        =       0x8003
429
IS_GET_SUPPORTED_TRIGGER_MODE  =     0x8004
430
IS_GET_TRIGGER_COUNTER         =     0x8000
431
432
#  old defines for compatibility
433
IS_SET_TRIG_OFF            =         0x0000
434
IS_SET_TRIG_HI_LO          =         0x0001
435
IS_SET_TRIG_LO_HI          =         0x0002
436
IS_SET_TRIG_SOFTWARE       =         0x0008
437
IS_SET_TRIG_HI_LO_SYNC     =         0x0010
438
IS_SET_TRIG_LO_HI_SYNC     =         0x0020
439
440
IS_SET_TRIG_MASK           =         0x0100
441
442
#  New defines
443
IS_SET_TRIGGER_CONTINUOUS     =      0x1000
444
IS_SET_TRIGGER_OFF            =      IS_SET_TRIG_OFF
445
IS_SET_TRIGGER_HI_LO          =      (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_HI_LO)
446
IS_SET_TRIGGER_LO_HI          =      (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_LO_HI)
447
IS_SET_TRIGGER_SOFTWARE       =      (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_SOFTWARE)
448
IS_SET_TRIGGER_HI_LO_SYNC     =      IS_SET_TRIG_HI_LO_SYNC
449
IS_SET_TRIGGER_LO_HI_SYNC     =      IS_SET_TRIG_LO_HI_SYNC
450
IS_SET_TRIGGER_PRE_HI_LO      =      (IS_SET_TRIGGER_CONTINUOUS | 0x0040)
451
IS_SET_TRIGGER_PRE_LO_HI      =      (IS_SET_TRIGGER_CONTINUOUS | 0x0080)
452
453
IS_GET_TRIGGER_DELAY          =      0x8000
454
IS_GET_MIN_TRIGGER_DELAY      =      0x8001
455
IS_GET_MAX_TRIGGER_DELAY      =      0x8002
456
IS_GET_TRIGGER_DELAY_GRANULARITY  =  0x8003
457
458
459
#  ----------------------------------------------------------------------------
460
#  Timing
461
#  ----------------------------------------------------------------------------
462
#  pixelclock
463
IS_GET_PIXEL_CLOCK           =       0x8000
464
IS_GET_DEFAULT_PIXEL_CLK     =       0x8001
465
IS_GET_PIXEL_CLOCK_INC       =       0x8005
466
467
#  frame rate
468
IS_GET_FRAMERATE              =      0x8000
469
IS_GET_DEFAULT_FRAMERATE      =      0x8001
470
#  exposure
471
IS_GET_EXPOSURE_TIME          =      0x8000
472
IS_GET_DEFAULT_EXPOSURE       =      0x8001
473
IS_GET_EXPOSURE_MIN_VALUE     =      0x8002
474
IS_GET_EXPOSURE_MAX_VALUE     =      0x8003
475
IS_GET_EXPOSURE_INCREMENT     =      0x8004
476
IS_GET_EXPOSURE_FINE_INCREMENT =     0x8005
477
478
479
#  ----------------------------------------------------------------------------
480
#  Gain definitions
481
#  ----------------------------------------------------------------------------
482
IS_GET_MASTER_GAIN          =        0x8000
483
IS_GET_RED_GAIN             =        0x8001
484
IS_GET_GREEN_GAIN           =        0x8002
485
IS_GET_BLUE_GAIN            =        0x8003
486
IS_GET_DEFAULT_MASTER       =        0x8004
487
IS_GET_DEFAULT_RED          =        0x8005
488
IS_GET_DEFAULT_GREEN        =        0x8006
489
IS_GET_DEFAULT_BLUE         =        0x8007
490
IS_GET_GAINBOOST            =        0x8008
491
IS_SET_GAINBOOST_ON         =        0x0001
492
IS_SET_GAINBOOST_OFF        =        0x0000
493
IS_GET_SUPPORTED_GAINBOOST  =        0x0002
494
IS_MIN_GAIN                 =        0
495
IS_MAX_GAIN                 =        100
496
497
498
#  ----------------------------------------------------------------------------
499
#  Gain factor definitions
500
#  ----------------------------------------------------------------------------
501
IS_GET_MASTER_GAIN_FACTOR   =        0x8000
502
IS_GET_RED_GAIN_FACTOR      =        0x8001
503
IS_GET_GREEN_GAIN_FACTOR    =        0x8002
504
IS_GET_BLUE_GAIN_FACTOR     =        0x8003
505
IS_SET_MASTER_GAIN_FACTOR   =        0x8004
506
IS_SET_RED_GAIN_FACTOR      =        0x8005
507
IS_SET_GREEN_GAIN_FACTOR    =        0x8006
508
IS_SET_BLUE_GAIN_FACTOR     =        0x8007
509
IS_GET_DEFAULT_MASTER_GAIN_FACTOR =  0x8008
510
IS_GET_DEFAULT_RED_GAIN_FACTOR    =  0x8009
511
IS_GET_DEFAULT_GREEN_GAIN_FACTOR  =  0x800a
512
IS_GET_DEFAULT_BLUE_GAIN_FACTOR   =  0x800b
513
IS_INQUIRE_MASTER_GAIN_FACTOR     =  0x800c
514
IS_INQUIRE_RED_GAIN_FACTOR        =  0x800d
515
IS_INQUIRE_GREEN_GAIN_FACTOR      =  0x800e
516
IS_INQUIRE_BLUE_GAIN_FACTOR       =  0x800f
517
518
519
#  ----------------------------------------------------------------------------
520
#  Global Shutter definitions
521
#  ----------------------------------------------------------------------------
522
IS_SET_GLOBAL_SHUTTER_ON       =     0x0001
523
IS_SET_GLOBAL_SHUTTER_OFF      =     0x0000
524
IS_GET_GLOBAL_SHUTTER          =     0x0010
525
IS_GET_SUPPORTED_GLOBAL_SHUTTER  =   0x0020
526
527
528
#  ----------------------------------------------------------------------------
529
#  Black level definitions
530
#  ----------------------------------------------------------------------------
531
IS_GET_BL_COMPENSATION         =     0x8000
532
IS_GET_BL_OFFSET               =     0x8001
533
IS_GET_BL_DEFAULT_MODE         =     0x8002
534
IS_GET_BL_DEFAULT_OFFSET       =     0x8003
535
IS_GET_BL_SUPPORTED_MODE       =     0x8004
536
537
IS_BL_COMPENSATION_DISABLE     =     0
538
IS_BL_COMPENSATION_ENABLE      =     1
539
IS_BL_COMPENSATION_OFFSET      =     32
540
541
IS_MIN_BL_OFFSET               =     0
542
IS_MAX_BL_OFFSET               =     255
543
544
#  ----------------------------------------------------------------------------
545
#  hardware gamma definitions
546
#  ----------------------------------------------------------------------------
547
IS_GET_HW_GAMMA                =     0x8000
548
IS_GET_HW_SUPPORTED_GAMMA      =     0x8001
549
550
IS_SET_HW_GAMMA_OFF            =     0x0000
551
IS_SET_HW_GAMMA_ON             =     0x0001
552
553
#  ----------------------------------------------------------------------------
554
#  camera LUT
555
#  ----------------------------------------------------------------------------
556
IS_ENABLE_CAMERA_LUT           =         0x0001
557
IS_SET_CAMERA_LUT_VALUES       =         0x0002
558
IS_ENABLE_RGB_GRAYSCALE        =         0x0004
559
IS_GET_CAMERA_LUT_USER         =         0x0008
560
IS_GET_CAMERA_LUT_COMPLETE     =         0x0010
561
IS_GET_CAMERA_LUT_SUPPORTED_CHANNELS =   0x0020
562
563
#  ----------------------------------------------------------------------------
564
#  camera LUT presets
565
#  ----------------------------------------------------------------------------
566
IS_CAMERA_LUT_IDENTITY        =      0x00000100
567
IS_CAMERA_LUT_NEGATIV         =      0x00000200
568
IS_CAMERA_LUT_GLOW1           =      0x00000400
569
IS_CAMERA_LUT_GLOW2           =      0x00000800
570
IS_CAMERA_LUT_ASTRO1          =      0x00001000
571
IS_CAMERA_LUT_RAINBOW1        =      0x00002000
572
IS_CAMERA_LUT_MAP1            =      0x00004000
573
IS_CAMERA_LUT_COLD_HOT        =      0x00008000
574
IS_CAMERA_LUT_SEPIC           =      0x00010000
575
IS_CAMERA_LUT_ONLY_RED        =      0x00020000
576
IS_CAMERA_LUT_ONLY_GREEN      =      0x00040000
577
IS_CAMERA_LUT_ONLY_BLUE       =      0x00080000
578
579
IS_CAMERA_LUT_64              =      64
580
IS_CAMERA_LUT_128             =      128
581
582
583
#  ----------------------------------------------------------------------------
584
#  image parameters
585
#  ----------------------------------------------------------------------------
586
#  brightness
587
IS_GET_BRIGHTNESS           =        0x8000
588
IS_MIN_BRIGHTNESS           =        0
589
IS_MAX_BRIGHTNESS           =        255
590
IS_DEFAULT_BRIGHTNESS       =        -1
591
#  contrast
592
IS_GET_CONTRAST             =        0x8000
593
IS_MIN_CONTRAST             =        0
594
IS_MAX_CONTRAST             =        511
595
IS_DEFAULT_CONTRAST         =        -1
596
#  gamma
597
IS_GET_GAMMA                =        0x8000
598
IS_MIN_GAMMA                =        1
599
IS_MAX_GAMMA                =        1000
600
IS_DEFAULT_GAMMA            =        -1
601
#  saturation   (Falcon)
602
IS_GET_SATURATION_U         =        0x8000
603
IS_MIN_SATURATION_U         =        0
604
IS_MAX_SATURATION_U         =        200
605
IS_DEFAULT_SATURATION_U     =        100
606
IS_GET_SATURATION_V         =        0x8001
607
IS_MIN_SATURATION_V         =        0
608
IS_MAX_SATURATION_V         =        200
609
IS_DEFAULT_SATURATION_V     =        100
610
#  hue  (Falcon)
611
IS_GET_HUE                  =        0x8000
612
IS_MIN_HUE                  =        0
613
IS_MAX_HUE                  =        255
614
IS_DEFAULT_HUE              =        128
615
616
617
#  ----------------------------------------------------------------------------
618
#  Image position and size
619
#  ----------------------------------------------------------------------------
620
621
#  deprecated defines
622
IS_GET_IMAGE_SIZE_X         =        0x8000
623
IS_GET_IMAGE_SIZE_Y         =        0x8001
624
IS_GET_IMAGE_SIZE_X_INC     =        0x8002
625
IS_GET_IMAGE_SIZE_Y_INC     =        0x8003
626
IS_GET_IMAGE_SIZE_X_MIN     =        0x8004
627
IS_GET_IMAGE_SIZE_Y_MIN     =        0x8005
628
IS_GET_IMAGE_SIZE_X_MAX     =        0x8006
629
IS_GET_IMAGE_SIZE_Y_MAX     =        0x8007
630
631
IS_GET_IMAGE_POS_X          =        0x8001
632
IS_GET_IMAGE_POS_Y          =        0x8002
633
IS_GET_IMAGE_POS_X_ABS      =        0xC001
634
IS_GET_IMAGE_POS_Y_ABS      =        0xC002
635
IS_GET_IMAGE_POS_X_INC      =        0xC003
636
IS_GET_IMAGE_POS_Y_INC      =        0xC004
637
IS_GET_IMAGE_POS_X_MIN      =        0xC005
638
IS_GET_IMAGE_POS_Y_MIN      =        0xC006
639
IS_GET_IMAGE_POS_X_MAX      =        0xC007
640
IS_GET_IMAGE_POS_Y_MAX      =        0xC008
641
642
IS_SET_IMAGE_POS_X_ABS      =        0x00010000
643
IS_SET_IMAGE_POS_Y_ABS      =        0x00010000
644
IS_SET_IMAGEPOS_X_ABS       =        0x8000
645
IS_SET_IMAGEPOS_Y_ABS       =        0x8000
646
647
648
#  Valid defines
649
650
#  Image
651
IS_AOI_IMAGE_SET_AOI        =        0x0001
652
IS_AOI_IMAGE_GET_AOI        =        0x0002
653
IS_AOI_IMAGE_SET_POS        =        0x0003
654
IS_AOI_IMAGE_GET_POS        =        0x0004
655
IS_AOI_IMAGE_SET_SIZE       =        0x0005
656
IS_AOI_IMAGE_GET_SIZE       =        0x0006
657
IS_AOI_IMAGE_GET_POS_MIN    =        0x0007
658
IS_AOI_IMAGE_GET_SIZE_MIN   =        0x0008
659
IS_AOI_IMAGE_GET_POS_MAX    =        0x0009
660
IS_AOI_IMAGE_GET_SIZE_MAX   =        0x0010
661
IS_AOI_IMAGE_GET_POS_INC    =        0x0011
662
IS_AOI_IMAGE_GET_SIZE_INC   =        0x0012
663
IS_AOI_IMAGE_GET_POS_X_ABS  =        0x0013
664
IS_AOI_IMAGE_GET_POS_Y_ABS  =        0x0014
665
IS_AOI_IMAGE_GET_ORIGINAL_AOI =      0x0015
666
667
IS_AOI_IMAGE_POS_ABSOLUTE  =         0x10000000
668
669
#  Fast move
670
IS_AOI_IMAGE_SET_POS_FAST   =        0x0020
671
IS_AOI_IMAGE_SET_POS_FAST_SUPPORTED = 0x0021
672
673
#  Auto features
674
IS_AOI_AUTO_BRIGHTNESS_SET_AOI   =   0x0030
675
IS_AOI_AUTO_BRIGHTNESS_GET_AOI   =   0x0031
676
IS_AOI_AUTO_WHITEBALANCE_SET_AOI =   0x0032
677
IS_AOI_AUTO_WHITEBALANCE_GET_AOI =   0x0033
678
679
#  Multi AOI
680
IS_AOI_MULTI_GET_SUPPORTED_MODES =   0x0100
681
IS_AOI_MULTI_SET_AOI             =   0x0200
682
IS_AOI_MULTI_GET_AOI             =   0x0400
683
IS_AOI_MULTI_DISABLE_AOI         =   0x0800
684
IS_AOI_MULTI_MODE_AXES           =   0x0001
685
IS_AOI_MULTI_MODE_X_Y_AXES       =   0x0001
686
IS_AOI_MULTI_MODE_Y_AXES         =   0x0002
687
688
#  AOI sequence
689
IS_AOI_SEQUENCE_GET_SUPPORTED    =   0x0050
690
IS_AOI_SEQUENCE_SET_PARAMS       =   0x0051
691
IS_AOI_SEQUENCE_GET_PARAMS       =   0x0052
692
IS_AOI_SEQUENCE_SET_ENABLE       =   0x0053
693
IS_AOI_SEQUENCE_GET_ENABLE       =   0x0054
694
695
IS_AOI_SEQUENCE_INDEX_AOI_1     =    0
696
IS_AOI_SEQUENCE_INDEX_AOI_2     =    1
697
IS_AOI_SEQUENCE_INDEX_AOI_3     =    2
698
IS_AOI_SEQUENCE_INDEX_AOI_4     =    4
699
700
#  ----------------------------------------------------------------------------
701
#  ROP effect constants
702
#  ----------------------------------------------------------------------------
703
IS_GET_ROP_EFFECT               =    0x8000
704
IS_GET_SUPPORTED_ROP_EFFECT     =    0x8001
705
706
IS_SET_ROP_NONE                 =    0
707
IS_SET_ROP_MIRROR_UPDOWN        =    8
708
IS_SET_ROP_MIRROR_UPDOWN_ODD    =    16
709
IS_SET_ROP_MIRROR_UPDOWN_EVEN   =    32
710
IS_SET_ROP_MIRROR_LEFTRIGHT     =    64
711
712
713
#  ----------------------------------------------------------------------------
714
#  Subsampling
715
#  ----------------------------------------------------------------------------
716
IS_GET_SUBSAMPLING               =       0x8000
717
IS_GET_SUPPORTED_SUBSAMPLING     =       0x8001
718
IS_GET_SUBSAMPLING_TYPE          =       0x8002
719
IS_GET_SUBSAMPLING_FACTOR_HORIZONTAL =   0x8004
720
IS_GET_SUBSAMPLING_FACTOR_VERTICAL  =    0x8008
721
722
IS_SUBSAMPLING_DISABLE              =    0x00
723
724
IS_SUBSAMPLING_2X_VERTICAL       =       0x0001
725
IS_SUBSAMPLING_2X_HORIZONTAL     =       0x0002
726
IS_SUBSAMPLING_4X_VERTICAL       =       0x0004
727
IS_SUBSAMPLING_4X_HORIZONTAL     =       0x0008
728
IS_SUBSAMPLING_3X_VERTICAL       =       0x0010
729
IS_SUBSAMPLING_3X_HORIZONTAL     =       0x0020
730
IS_SUBSAMPLING_5X_VERTICAL       =       0x0040
731
IS_SUBSAMPLING_5X_HORIZONTAL     =       0x0080
732
IS_SUBSAMPLING_6X_VERTICAL       =       0x0100
733
IS_SUBSAMPLING_6X_HORIZONTAL     =       0x0200
734
IS_SUBSAMPLING_8X_VERTICAL       =       0x0400
735
IS_SUBSAMPLING_8X_HORIZONTAL     =       0x0800
736
IS_SUBSAMPLING_16X_VERTICAL      =       0x1000
737
IS_SUBSAMPLING_16X_HORIZONTAL    =       0x2000
738
739
IS_SUBSAMPLING_COLOR             =       0x01
740
IS_SUBSAMPLING_MONO              =       0x02
741
742
IS_SUBSAMPLING_MASK_VERTICAL      =      (IS_SUBSAMPLING_2X_VERTICAL | IS_SUBSAMPLING_4X_VERTICAL | IS_SUBSAMPLING_3X_VERTICAL | IS_SUBSAMPLING_5X_VERTICAL | IS_SUBSAMPLING_6X_VERTICAL | IS_SUBSAMPLING_8X_VERTICAL | IS_SUBSAMPLING_16X_VERTICAL)
743
IS_SUBSAMPLING_MASK_HORIZONTAL    =      (IS_SUBSAMPLING_2X_HORIZONTAL | IS_SUBSAMPLING_4X_HORIZONTAL | IS_SUBSAMPLING_3X_HORIZONTAL | IS_SUBSAMPLING_5X_HORIZONTAL | IS_SUBSAMPLING_6X_HORIZONTAL | IS_SUBSAMPLING_8X_HORIZONTAL | IS_SUBSAMPLING_16X_HORIZONTAL)
744
745
#  Compatibility
746
IS_SUBSAMPLING_VERT             =        IS_SUBSAMPLING_2X_VERTICAL
747
IS_SUBSAMPLING_HOR              =        IS_SUBSAMPLING_2X_HORIZONTAL
748
749
750
#  ----------------------------------------------------------------------------
751
#  Binning
752
#  ----------------------------------------------------------------------------
753
IS_GET_BINNING                  =    0x8000
754
IS_GET_SUPPORTED_BINNING        =    0x8001
755
IS_GET_BINNING_TYPE             =    0x8002
756
IS_GET_BINNING_FACTOR_HORIZONTAL=    0x8004
757
IS_GET_BINNING_FACTOR_VERTICAL  =    0x8008
758
759
IS_BINNING_DISABLE              =    0x00
760
761
IS_BINNING_2X_VERTICAL          =    0x0001
762
IS_BINNING_2X_HORIZONTAL        =    0x0002
763
IS_BINNING_4X_VERTICAL          =    0x0004
764
IS_BINNING_4X_HORIZONTAL        =    0x0008
765
IS_BINNING_3X_VERTICAL          =    0x0010
766
IS_BINNING_3X_HORIZONTAL        =    0x0020
767
IS_BINNING_5X_VERTICAL          =    0x0040
768
IS_BINNING_5X_HORIZONTAL        =    0x0080
769
IS_BINNING_6X_VERTICAL          =    0x0100
770
IS_BINNING_6X_HORIZONTAL        =    0x0200
771
IS_BINNING_8X_VERTICAL          =    0x0400
772
IS_BINNING_8X_HORIZONTAL        =    0x0800
773
IS_BINNING_16X_VERTICAL         =    0x1000
774
IS_BINNING_16X_HORIZONTAL       =    0x2000
775
776
IS_BINNING_COLOR                =    0x01
777
IS_BINNING_MONO                 =    0x02
778
779
IS_BINNING_MASK_VERTICAL        =    (IS_BINNING_2X_VERTICAL | IS_BINNING_3X_VERTICAL | IS_BINNING_4X_VERTICAL | IS_BINNING_5X_VERTICAL | IS_BINNING_6X_VERTICAL | IS_BINNING_8X_VERTICAL | IS_BINNING_16X_VERTICAL)
780
IS_BINNING_MASK_HORIZONTAL      =    (IS_BINNING_2X_HORIZONTAL | IS_BINNING_3X_HORIZONTAL | IS_BINNING_4X_HORIZONTAL | IS_BINNING_5X_HORIZONTAL | IS_BINNING_6X_HORIZONTAL | IS_BINNING_8X_HORIZONTAL | IS_BINNING_16X_HORIZONTAL)
781
782
#  Compatibility
783
IS_BINNING_VERT                =     IS_BINNING_2X_VERTICAL
784
IS_BINNING_HOR                 =     IS_BINNING_2X_HORIZONTAL
785
786
#  ----------------------------------------------------------------------------
787
#  Auto Control Parameter
788
#  ----------------------------------------------------------------------------
789
IS_SET_ENABLE_AUTO_GAIN         =    0x8800
790
IS_GET_ENABLE_AUTO_GAIN         =    0x8801
791
IS_SET_ENABLE_AUTO_SHUTTER      =    0x8802
792
IS_GET_ENABLE_AUTO_SHUTTER      =    0x8803
793
IS_SET_ENABLE_AUTO_WHITEBALANCE =    0x8804
794
IS_GET_ENABLE_AUTO_WHITEBALANCE =    0x8805
795
IS_SET_ENABLE_AUTO_FRAMERATE    =    0x8806
796
IS_GET_ENABLE_AUTO_FRAMERATE    =    0x8807
797
IS_SET_ENABLE_AUTO_SENSOR_GAIN  =    0x8808
798
IS_GET_ENABLE_AUTO_SENSOR_GAIN  =    0x8809
799
IS_SET_ENABLE_AUTO_SENSOR_SHUTTER =  0x8810
800
IS_GET_ENABLE_AUTO_SENSOR_SHUTTER =  0x8811
801
IS_SET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER = 0x8812
802
IS_GET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER = 0x8813
803
IS_SET_ENABLE_AUTO_SENSOR_FRAMERATE    = 0x8814
804
IS_GET_ENABLE_AUTO_SENSOR_FRAMERATE    = 0x8815
805
IS_SET_ENABLE_AUTO_SENSOR_WHITEBALANCE = 0x8816
806
IS_GET_ENABLE_AUTO_SENSOR_WHITEBALANCE = 0x8817
807
808
809
IS_SET_AUTO_REFERENCE        =       0x8000
810
IS_GET_AUTO_REFERENCE        =       0x8001
811
IS_SET_AUTO_GAIN_MAX         =       0x8002
812
IS_GET_AUTO_GAIN_MAX         =       0x8003
813
IS_SET_AUTO_SHUTTER_MAX      =       0x8004
814
IS_GET_AUTO_SHUTTER_MAX      =       0x8005
815
IS_SET_AUTO_SPEED            =       0x8006
816
IS_GET_AUTO_SPEED            =       0x8007
817
IS_SET_AUTO_WB_OFFSET        =       0x8008
818
IS_GET_AUTO_WB_OFFSET        =       0x8009
819
IS_SET_AUTO_WB_GAIN_RANGE    =       0x800A
820
IS_GET_AUTO_WB_GAIN_RANGE    =       0x800B
821
IS_SET_AUTO_WB_SPEED         =       0x800C
822
IS_GET_AUTO_WB_SPEED         =       0x800D
823
IS_SET_AUTO_WB_ONCE          =       0x800E
824
IS_GET_AUTO_WB_ONCE          =       0x800F
825
IS_SET_AUTO_BRIGHTNESS_ONCE  =       0x8010
826
IS_GET_AUTO_BRIGHTNESS_ONCE  =       0x8011
827
IS_SET_AUTO_HYSTERESIS       =       0x8012
828
IS_GET_AUTO_HYSTERESIS       =       0x8013
829
IS_GET_AUTO_HYSTERESIS_RANGE =       0x8014
830
IS_SET_AUTO_WB_HYSTERESIS    =       0x8015
831
IS_GET_AUTO_WB_HYSTERESIS    =       0x8016
832
IS_GET_AUTO_WB_HYSTERESIS_RANGE =    0x8017
833
IS_SET_AUTO_SKIPFRAMES       =       0x8018
834
IS_GET_AUTO_SKIPFRAMES       =       0x8019
835
IS_GET_AUTO_SKIPFRAMES_RANGE =       0x801A
836
IS_SET_AUTO_WB_SKIPFRAMES    =       0x801B
837
IS_GET_AUTO_WB_SKIPFRAMES    =       0x801C
838
IS_GET_AUTO_WB_SKIPFRAMES_RANGE  =   0x801D
839
IS_SET_SENS_AUTO_SHUTTER_PHOTOM  =           0x801E
840
IS_SET_SENS_AUTO_GAIN_PHOTOM     =           0x801F
841
IS_GET_SENS_AUTO_SHUTTER_PHOTOM  =           0x8020
842
IS_GET_SENS_AUTO_GAIN_PHOTOM     =           0x8021
843
IS_GET_SENS_AUTO_SHUTTER_PHOTOM_DEF   =      0x8022
844
IS_GET_SENS_AUTO_GAIN_PHOTOM_DEF      =      0x8023
845
IS_SET_SENS_AUTO_CONTRAST_CORRECTION  =      0x8024
846
IS_GET_SENS_AUTO_CONTRAST_CORRECTION  =      0x8025
847
IS_GET_SENS_AUTO_CONTRAST_CORRECTION_RANGE = 0x8026
848
IS_GET_SENS_AUTO_CONTRAST_CORRECTION_INC   = 0x8027
849
IS_GET_SENS_AUTO_CONTRAST_CORRECTION_DEF   = 0x8028
850
IS_SET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE   = 0x8029
851
IS_GET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE   = 0x8030
852
IS_SET_SENS_AUTO_BACKLIGHT_COMP            = 0x8031
853
IS_GET_SENS_AUTO_BACKLIGHT_COMP            = 0x8032
854
IS_GET_SENS_AUTO_BACKLIGHT_COMP_RANGE      = 0x8033
855
IS_GET_SENS_AUTO_BACKLIGHT_COMP_INC        = 0x8034
856
IS_GET_SENS_AUTO_BACKLIGHT_COMP_DEF        = 0x8035
857
IS_SET_ANTI_FLICKER_MODE                   = 0x8036
858
IS_GET_ANTI_FLICKER_MODE                   = 0x8037
859
IS_GET_ANTI_FLICKER_MODE_DEF               = 0x8038
860
861
#  ----------------------------------------------------------------------------
862
#  Auto Control definitions
863
#  ----------------------------------------------------------------------------
864
IS_MIN_AUTO_BRIGHT_REFERENCE    =      0
865
IS_MAX_AUTO_BRIGHT_REFERENCE    =    255
866
IS_DEFAULT_AUTO_BRIGHT_REFERENCE =   128
867
IS_MIN_AUTO_SPEED                =     0
868
IS_MAX_AUTO_SPEED                =   100
869
IS_DEFAULT_AUTO_SPEED            =    50
870
871
IS_DEFAULT_AUTO_WB_OFFSET     =        0
872
IS_MIN_AUTO_WB_OFFSET         =      -50
873
IS_MAX_AUTO_WB_OFFSET         =       50
874
IS_DEFAULT_AUTO_WB_SPEED      =       50
875
IS_MIN_AUTO_WB_SPEED          =        0
876
IS_MAX_AUTO_WB_SPEED          =      100
877
IS_MIN_AUTO_WB_REFERENCE      =        0
878
IS_MAX_AUTO_WB_REFERENCE      =      255
879
880
881
#  ----------------------------------------------------------------------------
882
#  AOI types to set/get
883
#  ----------------------------------------------------------------------------
884
IS_SET_AUTO_BRIGHT_AOI      =        0x8000
885
IS_GET_AUTO_BRIGHT_AOI      =        0x8001
886
IS_SET_IMAGE_AOI            =        0x8002
887
IS_GET_IMAGE_AOI            =        0x8003
888
IS_SET_AUTO_WB_AOI          =        0x8004
889
IS_GET_AUTO_WB_AOI          =        0x8005
890
891
892
#  ----------------------------------------------------------------------------
893
#  color modes
894
#  ----------------------------------------------------------------------------
895
IS_GET_COLOR_MODE       =            0x8000
896
897
IS_SET_CM_RGB32        =             0
898
IS_SET_CM_RGB24        =             1
899
IS_SET_CM_RGB16        =             2
900
IS_SET_CM_RGB15        =             3
901
IS_SET_CM_Y8           =             6
902
IS_SET_CM_RGB8         =             7
903
IS_SET_CM_BAYER        =             11
904
IS_SET_CM_UYVY         =             12
905
IS_SET_CM_UYVY_MONO    =             13
906
IS_SET_CM_UYVY_BAYER   =             14
907
IS_SET_CM_CBYCRY       =             23
908
909
IS_SET_CM_RGBY         =             24
910
IS_SET_CM_RGB30        =             25
911
IS_SET_CM_Y12          =             26
912
IS_SET_CM_BAYER12      =             27
913
IS_SET_CM_Y16          =             28
914
IS_SET_CM_BAYER16      =             29
915
916
IS_CM_MODE_MASK        =             0x007F
917
918
#  planar vs packed format
919
IS_CM_FORMAT_PACKED        =         0x0000
920
IS_CM_FORMAT_PLANAR        =         0x2000
921
IS_CM_FORMAT_MASK          =         0x2000
922
923
#  BGR vs. RGB order
924
IS_CM_ORDER_BGR          =           0x0000
925
IS_CM_ORDER_RGB          =           0x0080
926
IS_CM_ORDER_MASK          =          0x0080
927
928
929
#  define compliant color format names
930
IS_CM_MONO8          =       IS_SET_CM_Y8                                              #  occupies 8 Bit
931
IS_CM_MONO12         =       IS_SET_CM_Y12                                             #  occupies 16 Bit
932
IS_CM_MONO16         =       IS_SET_CM_Y16                                             #  occupies 16 Bit
933
934
IS_CM_BAYER_RG8      =       IS_SET_CM_BAYER                                           #  occupies 8 Bit
935
IS_CM_BAYER_RG12     =       IS_SET_CM_BAYER12                                         #  occupies 16 Bit
936
IS_CM_BAYER_RG16     =       IS_SET_CM_BAYER16                                         #  occupies 16 Bit
937
938
IS_CM_SENSOR_RAW8    =       IS_SET_CM_BAYER                                           #  occupies 8 Bit
939
IS_CM_SENSOR_RAW12   =       IS_SET_CM_BAYER12                                         #  occupies 16 Bit
940
IS_CM_SENSOR_RAW16   =       IS_SET_CM_BAYER16                                         #  occupies 16 Bit
941
942
IS_CM_BGR5_PACKED     =      (IS_SET_CM_RGB15 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 16 Bit
943
IS_CM_BGR555_PACKED   =      (IS_SET_CM_RGB15 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 16 Bit
944
IS_CM_BGR565_PACKED   =      (IS_SET_CM_RGB16 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 16 Bit
945
946
IS_CM_RGB8_PACKED     =      (IS_SET_CM_RGB24 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED) #  occupies 24 Bit
947
IS_CM_BGR8_PACKED     =      (IS_SET_CM_RGB24 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 24 Bit
948
IS_CM_RGBA8_PACKED    =      (IS_SET_CM_RGB32 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
949
IS_CM_BGRA8_PACKED    =      (IS_SET_CM_RGB32 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
950
IS_CM_RGBY8_PACKED    =      (IS_SET_CM_RGBY  | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
951
IS_CM_BGRY8_PACKED    =      (IS_SET_CM_RGBY  | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
952
IS_CM_RGB10V2_PACKED  =      (IS_SET_CM_RGB30 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
953
IS_CM_BGR10V2_PACKED  =      (IS_SET_CM_RGB30 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED) #  occupies 32 Bit
954
955
IS_CM_RGB10_PACKED    =      (25 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED)
956
IS_CM_BGR10_PACKED    =      (25 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED)
957
958
IS_CM_RGB12_PACKED    =      (30 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED)              #  occupies 48 Bit
959
IS_CM_BGR12_PACKED    =      (30 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED)              #  occupies 48 Bit
960
IS_CM_RGBA12_PACKED   =      (31 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED)              #  occupies 64 Bit
961
IS_CM_BGRA12_PACKED   =      (31 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED)              #  occupies 64 Bit
962
963
IS_CM_YUV422_PACKED    =     1 # no compliant version
964
IS_CM_UYVY_PACKED      =     (IS_SET_CM_UYVY | IS_CM_FORMAT_PACKED)                    #  occupies 16 Bit
965
IS_CM_UYVY_MONO_PACKED =     (IS_SET_CM_UYVY_MONO | IS_CM_FORMAT_PACKED)
966
IS_CM_UYVY_BAYER_PACKED=     (IS_SET_CM_UYVY_BAYER | IS_CM_FORMAT_PACKED)
967
IS_CM_CBYCRY_PACKED    =     (IS_SET_CM_CBYCRY | IS_CM_FORMAT_PACKED)                  #  occupies 16 Bit
968
969
IS_CM_RGB8_PLANAR      =     (1 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PLANAR)
970
IS_CM_RGB12_PLANAR     =     1 # no compliant version
971
IS_CM_RGB16_PLANAR     =     1 # no compliant version
972
973
974
IS_CM_ALL_POSSIBLE      =    0xFFFF
975
IS_CM_MODE_MASK         =    0x007F
976
977
#  ----------------------------------------------------------------------------
978
#  Hotpixel correction
979
#  ----------------------------------------------------------------------------
980
981
#  Deprecated defines
982
IS_GET_BPC_MODE               =       0x8000
983
IS_GET_BPC_THRESHOLD          =       0x8001
984
IS_GET_BPC_SUPPORTED_MODE     =       0x8002
985
986
IS_BPC_DISABLE            =           0
987
IS_BPC_ENABLE_LEVEL_1     =           1
988
IS_BPC_ENABLE_LEVEL_2     =           2
989
IS_BPC_ENABLE_USER        =           4
990
IS_BPC_ENABLE_SOFTWARE    =      IS_BPC_ENABLE_LEVEL_2
991
IS_BPC_ENABLE_HARDWARE    =      IS_BPC_ENABLE_LEVEL_1
992
993
IS_SET_BADPIXEL_LIST      =           0x01
994
IS_GET_BADPIXEL_LIST      =           0x02
995
IS_GET_LIST_SIZE          =           0x03
996
997
998
#  Valid defines
999
IS_HOTPIXEL_DISABLE_CORRECTION              =    0x0000
1000
IS_HOTPIXEL_ENABLE_SENSOR_CORRECTION        =    0x0001
1001
IS_HOTPIXEL_ENABLE_CAMERA_CORRECTION        =    0x0002
1002
IS_HOTPIXEL_ENABLE_SOFTWARE_USER_CORRECTION =    0x0004
1003
1004
IS_HOTPIXEL_GET_CORRECTION_MODE             =    0x8000
1005
IS_HOTPIXEL_GET_SUPPORTED_CORRECTION_MODES  =    0x8001
1006
1007
IS_HOTPIXEL_GET_SOFTWARE_USER_LIST_EXISTS   =    0x8100
1008
IS_HOTPIXEL_GET_SOFTWARE_USER_LIST_NUMBER   =    0x8101
1009
IS_HOTPIXEL_GET_SOFTWARE_USER_LIST          =    0x8102
1010
IS_HOTPIXEL_SET_SOFTWARE_USER_LIST          =    0x8103
1011
IS_HOTPIXEL_SAVE_SOFTWARE_USER_LIST         =    0x8104
1012
IS_HOTPIXEL_LOAD_SOFTWARE_USER_LIST         =    0x8105
1013
1014
IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST_EXISTS  =    0x8106
1015
IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST_NUMBER  =    0x8107
1016
IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST         =    0x8108
1017
1018
IS_HOTPIXEL_GET_CAMERA_USER_LIST_EXISTS     =    0x8109
1019
IS_HOTPIXEL_GET_CAMERA_USER_LIST_NUMBER     =    0x810A
1020
IS_HOTPIXEL_GET_CAMERA_USER_LIST            =    0x810B
1021
IS_HOTPIXEL_SET_CAMERA_USER_LIST            =    0x810C
1022
IS_HOTPIXEL_GET_CAMERA_USER_LIST_MAX_NUMBER =    0x810D
1023
IS_HOTPIXEL_DELETE_CAMERA_USER_LIST         =    0x810E
1024
1025
IS_HOTPIXEL_GET_MERGED_CAMERA_LIST_NUMBER   =    0x810F
1026
IS_HOTPIXEL_GET_MERGED_CAMERA_LIST          =    0x8110
1027
1028
IS_HOTPIXEL_SAVE_SOFTWARE_USER_LIST_UNICODE =    0x8111
1029
IS_HOTPIXEL_LOAD_SOFTWARE_USER_LIST_UNICODE =    0x8112
1030
1031
#  ----------------------------------------------------------------------------
1032
#  color correction definitions
1033
#  ----------------------------------------------------------------------------
1034
IS_GET_CCOR_MODE              =      0x8000
1035
IS_GET_SUPPORTED_CCOR_MODE    =      0x8001
1036
IS_GET_DEFAULT_CCOR_MODE      =      0x8002
1037
IS_GET_CCOR_FACTOR            =      0x8003
1038
IS_GET_CCOR_FACTOR_MIN        =      0x8004
1039
IS_GET_CCOR_FACTOR_MAX        =      0x8005
1040
IS_GET_CCOR_FACTOR_DEFAULT    =      0x8006
1041
1042
IS_CCOR_DISABLE               =      0x0000
1043
IS_CCOR_ENABLE                =      0x0001
1044
IS_CCOR_ENABLE_NORMAL         =  IS_CCOR_ENABLE
1045
IS_CCOR_ENABLE_BG40_ENHANCED  =      0x0002
1046
IS_CCOR_ENABLE_HQ_ENHANCED    =      0x0004
1047
IS_CCOR_SET_IR_AUTOMATIC      =      0x0080
1048
IS_CCOR_FACTOR                =      0x0100
1049
1050
IS_CCOR_ENABLE_MASK          =   (IS_CCOR_ENABLE_NORMAL | IS_CCOR_ENABLE_BG40_ENHANCED | IS_CCOR_ENABLE_HQ_ENHANCED)
1051
1052
1053
#  ----------------------------------------------------------------------------
1054
#  bayer algorithm modes
1055
#  ----------------------------------------------------------------------------
1056
IS_GET_BAYER_CV_MODE         =       0x8000
1057
1058
IS_SET_BAYER_CV_NORMAL        =      0x0000
1059
IS_SET_BAYER_CV_BETTER       =       0x0001
1060
IS_SET_BAYER_CV_BEST        =        0x0002
1061
1062
1063
#  ----------------------------------------------------------------------------
1064
#  color converter modes
1065
#  ----------------------------------------------------------------------------
1066
IS_CONV_MODE_NONE           =        0x0000
1067
IS_CONV_MODE_SOFTWARE       =        0x0001
1068
IS_CONV_MODE_SOFTWARE_3X3   =        0x0002
1069
IS_CONV_MODE_SOFTWARE_5X5   =        0x0004
1070
IS_CONV_MODE_HARDWARE_3X3   =        0x0008
1071
IS_CONV_MODE_OPENCL_3X3     =        0x0020
1072
IS_CONV_MODE_OPENCL_5X5     =        0x0040
1073
1074
#  ----------------------------------------------------------------------------
1075
#  Edge enhancement
1076
#  ----------------------------------------------------------------------------
1077
IS_GET_EDGE_ENHANCEMENT     =        0x8000
1078
1079
IS_EDGE_EN_DISABLE          =        0
1080
IS_EDGE_EN_STRONG           =        1
1081
IS_EDGE_EN_WEAK             =        2
1082
1083
1084
#  ----------------------------------------------------------------------------
1085
#  white balance modes
1086
#  ----------------------------------------------------------------------------
1087
IS_GET_WB_MODE              =        0x8000
1088
1089
IS_SET_WB_DISABLE           =        0x0000
1090
IS_SET_WB_USER              =        0x0001
1091
IS_SET_WB_AUTO_ENABLE       =        0x0002
1092
IS_SET_WB_AUTO_ENABLE_ONCE  =        0x0004
1093
1094
IS_SET_WB_DAYLIGHT_65       =        0x0101
1095
IS_SET_WB_COOL_WHITE        =        0x0102
1096
IS_SET_WB_U30               =        0x0103
1097
IS_SET_WB_ILLUMINANT_A      =        0x0104
1098
IS_SET_WB_HORIZON           =        0x0105
1099
1100
1101
#  ----------------------------------------------------------------------------
1102
#  flash strobe constants
1103
#  ----------------------------------------------------------------------------
1104
IS_GET_FLASHSTROBE_MODE         =    0x8000
1105
IS_GET_FLASHSTROBE_LINE         =    0x8001
1106
IS_GET_SUPPORTED_FLASH_IO_PORTS =    0x8002
1107
1108
IS_SET_FLASH_OFF         =           0
1109
IS_SET_FLASH_ON          =           1
1110
IS_SET_FLASH_LO_ACTIVE   =       IS_SET_FLASH_ON
1111
IS_SET_FLASH_HI_ACTIVE   =           2
1112
IS_SET_FLASH_HIGH        =           3
1113
IS_SET_FLASH_LOW         =           4
1114
IS_SET_FLASH_LO_ACTIVE_FREERUN  =    5
1115
IS_SET_FLASH_HI_ACTIVE_FREERUN  =    6
1116
IS_SET_FLASH_IO_1        =           0x0010
1117
IS_SET_FLASH_IO_2        =           0x0020
1118
IS_SET_FLASH_IO_3        =           0x0040
1119
IS_SET_FLASH_IO_4        =           0x0080
1120
IS_FLASH_IO_PORT_MASK    =       (IS_SET_FLASH_IO_1 | IS_SET_FLASH_IO_2 | IS_SET_FLASH_IO_3 | IS_SET_FLASH_IO_4)
1121
1122
IS_GET_FLASH_DELAY        =          -1
1123
IS_GET_FLASH_DURATION     =          -2
1124
IS_GET_MAX_FLASH_DELAY    =          -3
1125
IS_GET_MAX_FLASH_DURATION =          -4
1126
IS_GET_MIN_FLASH_DELAY    =          -5
1127
IS_GET_MIN_FLASH_DURATION =          -6
1128
IS_GET_FLASH_DELAY_GRANULARITY =     -7
1129
IS_GET_FLASH_DURATION_GRANULARITY =  -8
1130
1131
#  ----------------------------------------------------------------------------
1132
#  Digital IO constants
1133
#  ----------------------------------------------------------------------------
1134
IS_GET_IO                   =        0x8000
1135
IS_GET_IO_MASK              =        0x8000
1136
IS_GET_INPUT_MASK           =        0x8001
1137
IS_GET_OUTPUT_MASK          =        0x8002
1138
IS_GET_SUPPORTED_IO_PORTS   =        0x8004
1139
1140
1141
#  ----------------------------------------------------------------------------
1142
#  EEPROM defines
1143
#  ----------------------------------------------------------------------------
1144
IS_EEPROM_MIN_USER_ADDRESS    =      0
1145
IS_EEPROM_MAX_USER_ADDRESS    =      63
1146
IS_EEPROM_MAX_USER_SPACE      =      64
1147
1148
1149
#  ----------------------------------------------------------------------------
1150
#  error report modes
1151
#  ----------------------------------------------------------------------------
1152
IS_GET_ERR_REP_MODE         =        0x8000
1153
IS_ENABLE_ERR_REP           =        1
1154
IS_DISABLE_ERR_REP          =        0
1155
1156
1157
#  ----------------------------------------------------------------------------
1158
#  display mode selectors
1159
#  ----------------------------------------------------------------------------
1160
IS_GET_DISPLAY_MODE         =        0x8000
1161
IS_GET_DISPLAY_SIZE_X       =        0x8000
1162
IS_GET_DISPLAY_SIZE_Y       =        0x8001
1163
IS_GET_DISPLAY_POS_X        =        0x8000
1164
IS_GET_DISPLAY_POS_Y        =        0x8001
1165
1166
IS_SET_DM_DIB               =        1
1167
IS_SET_DM_DIRECTDRAW        =        2
1168
IS_SET_DM_DIRECT3D          =        4
1169
IS_SET_DM_OPENGL            =        8
1170
1171
IS_SET_DM_ALLOW_SYSMEM      =        0x40
1172
IS_SET_DM_ALLOW_PRIMARY     =        0x80
1173
1174
#  -- overlay display mode ---
1175
IS_GET_DD_OVERLAY_SCALE     =        0x8000
1176
1177
IS_SET_DM_ALLOW_OVERLAY     =        0x100
1178
IS_SET_DM_ALLOW_SCALING     =        0x200
1179
IS_SET_DM_ALLOW_FIELDSKIP   =        0x400
1180
IS_SET_DM_MONO              =        0x800
1181
IS_SET_DM_BAYER             =        0x1000
1182
IS_SET_DM_YCBCR             =        0x4000
1183
1184
#  -- backbuffer display mode ---
1185
IS_SET_DM_BACKBUFFER        =        0x2000
1186
1187
1188
#  ----------------------------------------------------------------------------
1189
#  DirectRenderer commands
1190
#  ----------------------------------------------------------------------------
1191
DR_GET_OVERLAY_DC            =           1
1192
DR_GET_MAX_OVERLAY_SIZE      =           2
1193
DR_GET_OVERLAY_KEY_COLOR     =           3
1194
DR_RELEASE_OVERLAY_DC        =           4
1195
DR_SHOW_OVERLAY              =           5
1196
DR_HIDE_OVERLAY              =           6
1197
DR_SET_OVERLAY_SIZE          =           7
1198
DR_SET_OVERLAY_POSITION      =           8
1199
DR_SET_OVERLAY_KEY_COLOR     =           9
1200
DR_SET_HWND                  =           10
1201
DR_ENABLE_SCALING            =           11
1202
DR_DISABLE_SCALING           =           12
1203
DR_CLEAR_OVERLAY             =           13
1204
DR_ENABLE_SEMI_TRANSPARENT_OVERLAY =     14
1205
DR_DISABLE_SEMI_TRANSPARENT_OVERLAY=     15
1206
DR_CHECK_COMPATIBILITY       =           16
1207
DR_SET_VSYNC_OFF             =           17
1208
DR_SET_VSYNC_AUTO            =           18
1209
DR_SET_USER_SYNC             =           19
1210
DR_GET_USER_SYNC_POSITION_RANGE     =    20
1211
DR_LOAD_OVERLAY_FROM_FILE    =           21
1212
DR_STEAL_NEXT_FRAME          =           22
1213
DR_SET_STEAL_FORMAT          =           23
1214
DR_GET_STEAL_FORMAT          =           24
1215
DR_ENABLE_IMAGE_SCALING      =           25
1216
DR_GET_OVERLAY_SIZE          =           26
1217
DR_CHECK_COLOR_MODE_SUPPORT  =           27
1218
DR_GET_OVERLAY_DATA         =           28
1219
DR_UPDATE_OVERLAY_DATA  =               29
1220
DR_GET_SUPPORTED         =               30
1221
1222
#  ----------------------------------------------------------------------------
1223
#  DirectDraw keying color constants
1224
#  ----------------------------------------------------------------------------
1225
IS_GET_KC_RED          =             0x8000
1226
IS_GET_KC_GREEN        =             0x8001
1227
IS_GET_KC_BLUE         =             0x8002
1228
IS_GET_KC_RGB          =             0x8003
1229
IS_GET_KC_INDEX        =             0x8004
1230
IS_GET_KEYOFFSET_X     =             0x8000
1231
IS_GET_KEYOFFSET_Y     =             0x8001
1232
1233
#  RGB-triple for default key-color in 15,16,24,32 bit mode
1234
IS_SET_KC_DEFAULT       =            0xFF00FF   #  0xbbggrr
1235
#  color index for default key-color in 8bit palette mode
1236
IS_SET_KC_DEFAULT_8     =            253
1237
1238
1239
#  ----------------------------------------------------------------------------
1240
#  Memoryboard
1241
#  ----------------------------------------------------------------------------
1242
IS_MEMORY_GET_COUNT      =           0x8000
1243
IS_MEMORY_GET_DELAY      =           0x8001
1244
IS_MEMORY_MODE_DISABLE   =           0x0000
1245
IS_MEMORY_USE_TRIGGER    =           0xFFFF
1246
1247
1248
#  ----------------------------------------------------------------------------
1249
#  Test image modes
1250
#  ----------------------------------------------------------------------------
1251
IS_GET_TEST_IMAGE         =          0x8000
1252
1253
IS_SET_TEST_IMAGE_DISABLED   =       0x0000
1254
IS_SET_TEST_IMAGE_MEMORY_1   =       0x0001
1255
IS_SET_TEST_IMAGE_MEMORY_2   =       0x0002
1256
IS_SET_TEST_IMAGE_MEMORY_3   =       0x0003
1257
1258
1259
#  ----------------------------------------------------------------------------
1260
#  Led settings
1261
#  ----------------------------------------------------------------------------
1262
IS_SET_LED_OFF         =             0
1263
IS_SET_LED_ON          =             1
1264
IS_SET_LED_TOGGLE      =             2
1265
IS_GET_LED             =             0x8000
1266
1267
1268
#  ----------------------------------------------------------------------------
1269
#  save options
1270
#  ----------------------------------------------------------------------------
1271
IS_SAVE_USE_ACTUAL_IMAGE_SIZE  =     0x00010000
1272
1273
#  ----------------------------------------------------------------------------
1274
#  renumeration modes
1275
#  ----------------------------------------------------------------------------
1276
IS_RENUM_BY_CAMERA        =          0
1277
IS_RENUM_BY_HOST          =          1
1278
1279
#  ----------------------------------------------------------------------------
1280
#  event constants
1281
#  ----------------------------------------------------------------------------
1282
IS_SET_EVENT_ODD               =         0
1283
IS_SET_EVENT_EVEN              =         1
1284
IS_SET_EVENT_FRAME             =         2
1285
IS_SET_EVENT_EXTTRIG           =         3
1286
IS_SET_EVENT_VSYNC             =         4
1287
IS_SET_EVENT_SEQ               =         5
1288
IS_SET_EVENT_STEAL             =         6
1289
IS_SET_EVENT_VPRES             =         7
1290
IS_SET_EVENT_TRANSFER_FAILED   =         8
1291
IS_SET_EVENT_CAPTURE_STATUS    =         8
1292
IS_SET_EVENT_DEVICE_RECONNECTED=         9
1293
IS_SET_EVENT_MEMORY_MODE_FINISH=         10
1294
IS_SET_EVENT_FRAME_RECEIVED    =         11
1295
IS_SET_EVENT_WB_FINISHED       =         12
1296
IS_SET_EVENT_AUTOBRIGHTNESS_FINISHED=    13
1297
IS_SET_EVENT_OVERLAY_DATA_LOST     =     16
1298
IS_SET_EVENT_CAMERA_MEMORY         =     17
1299
IS_SET_EVENT_CONNECTIONSPEED_CHANGED =   18
1300
1301
IS_SET_EVENT_REMOVE            =         128
1302
IS_SET_EVENT_REMOVAL           =         129
1303
IS_SET_EVENT_NEW_DEVICE        =         130
1304
IS_SET_EVENT_STATUS_CHANGED    =         131
1305
1306
1307
#  ----------------------------------------------------------------------------
1308
#  Window message defines
1309
#  ----------------------------------------------------------------------------
1310
WM_USER                     =      0x400
1311
IS_UC480_MESSAGE            =      (WM_USER + 0x0100)
1312
IS_FRAME                    =      0x0000
1313
IS_SEQUENCE                 =      0x0001
1314
IS_TRIGGER                  =      0x0002
1315
IS_TRANSFER_FAILED          =      0x0003
1316
IS_CAPTURE_STATUS           =      0x0003
1317
IS_DEVICE_RECONNECTED       =      0x0004
1318
IS_MEMORY_MODE_FINISH       =      0x0005
1319
IS_FRAME_RECEIVED           =      0x0006
1320
IS_GENERIC_ERROR            =      0x0007
1321
IS_STEAL_VIDEO              =      0x0008
1322
IS_WB_FINISHED              =      0x0009
1323
IS_AUTOBRIGHTNESS_FINISHED  =      0x000A
1324
IS_OVERLAY_DATA_LOST        =      0x000B
1325
IS_CAMERA_MEMORY            =      0x000C
1326
IS_CONNECTIONSPEED_CHANGED  =      0x000D
1327
1328
IS_DEVICE_REMOVED           =      0x1000
1329
IS_DEVICE_REMOVAL           =      0x1001
1330
IS_NEW_DEVICE               =      0x1002
1331
IS_DEVICE_STATUS_CHANGED    =      0x1003
1332
1333
1334
#  ----------------------------------------------------------------------------
1335
#  camera id constants
1336
#  ----------------------------------------------------------------------------
1337
IS_GET_CAMERA_ID           =         0x8000
1338
1339
1340
#  ----------------------------------------------------------------------------
1341
#  camera info constants
1342
#  ----------------------------------------------------------------------------
1343
IS_GET_STATUS             =          0x8000
1344
1345
IS_EXT_TRIGGER_EVENT_CNT    =        0
1346
IS_FIFO_OVR_CNT             =        1
1347
IS_SEQUENCE_CNT             =        2
1348
IS_LAST_FRAME_FIFO_OVR      =        3
1349
IS_SEQUENCE_SIZE            =        4
1350
IS_VIDEO_PRESENT            =        5
1351
IS_STEAL_FINISHED           =        6
1352
IS_STORE_FILE_PATH          =        7
1353
IS_LUMA_BANDWIDTH_FILTER    =        8
1354
IS_BOARD_REVISION           =        9
1355
IS_MIRROR_BITMAP_UPDOWN     =        10
1356
IS_BUS_OVR_CNT              =        11
1357
IS_STEAL_ERROR_CNT          =        12
1358
IS_LOW_COLOR_REMOVAL        =        13
1359
IS_CHROMA_COMB_FILTER       =        14
1360
IS_CHROMA_AGC               =        15
1361
IS_WATCHDOG_ON_BOARD        =        16
1362
IS_PASSTHROUGH_ON_BOARD     =        17
1363
IS_EXTERNAL_VREF_MODE       =        18
1364
IS_WAIT_TIMEOUT             =        19
1365
IS_TRIGGER_MISSED           =        20
1366
IS_LAST_CAPTURE_ERROR       =        21
1367
IS_PARAMETER_SET_1          =        22
1368
IS_PARAMETER_SET_2          =        23
1369
IS_STANDBY                  =        24
1370
IS_STANDBY_SUPPORTED        =        25
1371
IS_QUEUED_IMAGE_EVENT_CNT   =        26
1372
IS_PARAMETER_EXT            =        27
1373
1374
1375
#  ----------------------------------------------------------------------------
1376
#  interface type defines
1377
#  ----------------------------------------------------------------------------
1378
IS_INTERFACE_TYPE_USB      =         0x40
1379
IS_INTERFACE_TYPE_USB3     =         0x60
1380
IS_INTERFACE_TYPE_ETH      =         0x80
1381
1382
#  ----------------------------------------------------------------------------
1383
#  board type defines
1384
#  ----------------------------------------------------------------------------
1385
IS_BOARD_TYPE_FALCON         =       1
1386
IS_BOARD_TYPE_EAGLE          =       2
1387
IS_BOARD_TYPE_FALCON2        =       3
1388
IS_BOARD_TYPE_FALCON_PLUS    =       7
1389
IS_BOARD_TYPE_FALCON_QUATTRO =       9
1390
IS_BOARD_TYPE_FALCON_DUO     =       10
1391
IS_BOARD_TYPE_EAGLE_QUATTRO  =       11
1392
IS_BOARD_TYPE_EAGLE_DUO      =       12
1393
IS_BOARD_TYPE_UC480_USB      =        (IS_INTERFACE_TYPE_USB + 0)      #  0x40
1394
IS_BOARD_TYPE_UC480_USB_SE   =        IS_BOARD_TYPE_UC480_USB          #  0x40
1395
IS_BOARD_TYPE_UC480_USB_RE   =        IS_BOARD_TYPE_UC480_USB          #  0x40
1396
IS_BOARD_TYPE_UC480_USB_ME   =        (IS_INTERFACE_TYPE_USB + 0x01)   #  0x41
1397
IS_BOARD_TYPE_UC480_USB_LE   =        (IS_INTERFACE_TYPE_USB + 0x02)   #  0x42
1398
IS_BOARD_TYPE_UC480_USB_XS   =        (IS_INTERFACE_TYPE_USB + 0x03)   #  0x43
1399
IS_BOARD_TYPE_UC480_USB_ML   =        (IS_INTERFACE_TYPE_USB + 0x05)   #  0x45
1400
1401
IS_BOARD_TYPE_UC480_USB3_CP  =        (IS_INTERFACE_TYPE_USB3 + 0x04)  #  0x64
1402
1403
IS_BOARD_TYPE_UC480_ETH      =        IS_INTERFACE_TYPE_ETH            #  0x80
1404
IS_BOARD_TYPE_UC480_ETH_HE   =        IS_BOARD_TYPE_UC480_ETH          #  0x80
1405
IS_BOARD_TYPE_UC480_ETH_SE   =        (IS_INTERFACE_TYPE_ETH + 0x01)   #  0x81
1406
IS_BOARD_TYPE_UC480_ETH_RE   =        IS_BOARD_TYPE_UC480_ETH_SE       #  0x81
1407
IS_BOARD_TYPE_UC480_ETH_CP   =        IS_BOARD_TYPE_UC480_ETH + 0x04   #  0x84
1408
1409
#  ----------------------------------------------------------------------------
1410
#  camera type defines
1411
#  ----------------------------------------------------------------------------
1412
IS_CAMERA_TYPE_UC480_USB      =   IS_BOARD_TYPE_UC480_USB_SE
1413
IS_CAMERA_TYPE_UC480_USB_SE   =   IS_BOARD_TYPE_UC480_USB_SE
1414
IS_CAMERA_TYPE_UC480_USB_RE   =   IS_BOARD_TYPE_UC480_USB_RE
1415
IS_CAMERA_TYPE_UC480_USB_ME   =   IS_BOARD_TYPE_UC480_USB_ME
1416
IS_CAMERA_TYPE_UC480_USB_LE   =   IS_BOARD_TYPE_UC480_USB_LE
1417
IS_CAMERA_TYPE_UC480_USB_ML   =   IS_BOARD_TYPE_UC480_USB_ML
1418
1419
IS_CAMERA_TYPE_UC480_USB3_CP  =   IS_BOARD_TYPE_UC480_USB3_CP
1420
1421
IS_CAMERA_TYPE_UC480_ETH      =   IS_BOARD_TYPE_UC480_ETH_HE
1422
IS_CAMERA_TYPE_UC480_ETH_HE   =   IS_BOARD_TYPE_UC480_ETH_HE
1423
IS_CAMERA_TYPE_UC480_ETH_SE   =   IS_BOARD_TYPE_UC480_ETH_SE
1424
IS_CAMERA_TYPE_UC480_ETH_RE   =   IS_BOARD_TYPE_UC480_ETH_RE
1425
IS_CAMERA_TYPE_UC480_ETH_CP   =   IS_BOARD_TYPE_UC480_ETH_CP
1426
1427
#  ----------------------------------------------------------------------------
1428
#  readable operation system defines
1429
#  ----------------------------------------------------------------------------
1430
IS_OS_UNDETERMINED      =            0
1431
IS_OS_WIN95             =            1
1432
IS_OS_WINNT40           =            2
1433
IS_OS_WIN98             =            3
1434
IS_OS_WIN2000           =            4
1435
IS_OS_WINXP             =            5
1436
IS_OS_WINME             =            6
1437
IS_OS_WINNET            =            7
1438
IS_OS_WINSERVER2003     =            8
1439
IS_OS_WINVISTA          =            9
1440
IS_OS_LINUX24           =            10
1441
IS_OS_LINUX26           =            11
1442
IS_OS_WIN7              =            12
1443
IS_OS_WIN8              =            13
1444
1445
1446
#  ----------------------------------------------------------------------------
1447
#  Bus speed
1448
#  ----------------------------------------------------------------------------
1449
IS_USB_10                 =          0x0001 #   1,5 Mb/s
1450
IS_USB_11                 =          0x0002 #    12 Mb/s
1451
IS_USB_20                 =          0x0004 #   480 Mb/s
1452
IS_USB_30                 =          0x0008 #  4000 Mb/s
1453
IS_ETHERNET_10            =          0x0080 #    10 Mb/s
1454
IS_ETHERNET_100           =          0x0100 #   100 Mb/s
1455
IS_ETHERNET_1000          =          0x0200 #  1000 Mb/s
1456
IS_ETHERNET_10000         =          0x0400 # 10000 Mb/s
1457
1458
IS_USB_LOW_SPEED          =          1
1459
IS_USB_FULL_SPEED         =          12
1460
IS_USB_HIGH_SPEED         =          480
1461
IS_USB_SUPER_SPEED        =          4000
1462
IS_ETHERNET_10Base        =          10
1463
IS_ETHERNET_100Base       =          100
1464
IS_ETHERNET_1000Base      =          1000
1465
IS_ETHERNET_10GBase       =          10000
1466
1467
#  ----------------------------------------------------------------------------
1468
#  HDR
1469
#  ----------------------------------------------------------------------------
1470
IS_HDR_NOT_SUPPORTED      =          0
1471
IS_HDR_KNEEPOINTS         =          1
1472
IS_DISABLE_HDR            =          0
1473
IS_ENABLE_HDR             =          1
1474
1475
1476
#  ----------------------------------------------------------------------------
1477
#  Test images
1478
#  ----------------------------------------------------------------------------
1479
IS_TEST_IMAGE_NONE                   =       0x00000000
1480
IS_TEST_IMAGE_WHITE                  =       0x00000001
1481
IS_TEST_IMAGE_BLACK                  =       0x00000002
1482
IS_TEST_IMAGE_HORIZONTAL_GREYSCALE   =       0x00000004
1483
IS_TEST_IMAGE_VERTICAL_GREYSCALE     =       0x00000008
1484
IS_TEST_IMAGE_DIAGONAL_GREYSCALE     =       0x00000010
1485
IS_TEST_IMAGE_WEDGE_GRAY             =       0x00000020
1486
IS_TEST_IMAGE_WEDGE_COLOR            =       0x00000040
1487
IS_TEST_IMAGE_ANIMATED_WEDGE_GRAY    =       0x00000080
1488
1489
IS_TEST_IMAGE_ANIMATED_WEDGE_COLOR   =       0x00000100
1490
IS_TEST_IMAGE_MONO_BARS              =       0x00000200
1491
IS_TEST_IMAGE_COLOR_BARS1            =       0x00000400
1492
IS_TEST_IMAGE_COLOR_BARS2            =       0x00000800
1493
IS_TEST_IMAGE_GREYSCALE1             =       0x00001000
1494
IS_TEST_IMAGE_GREY_AND_COLOR_BARS    =       0x00002000
1495
IS_TEST_IMAGE_MOVING_GREY_AND_COLOR_BARS =   0x00004000
1496
IS_TEST_IMAGE_ANIMATED_LINE           =      0x00008000
1497
1498
IS_TEST_IMAGE_ALTERNATE_PATTERN        =     0x00010000
1499
IS_TEST_IMAGE_VARIABLE_GREY            =     0x00020000
1500
IS_TEST_IMAGE_MONOCHROME_HORIZONTAL_BARS =   0x00040000
1501
IS_TEST_IMAGE_MONOCHROME_VERTICAL_BARS  =    0x00080000
1502
IS_TEST_IMAGE_CURSOR_H                =      0x00100000
1503
IS_TEST_IMAGE_CURSOR_V                =      0x00200000
1504
IS_TEST_IMAGE_COLDPIXEL_GRID          =      0x00400000
1505
IS_TEST_IMAGE_HOTPIXEL_GRID           =      0x00800000
1506
1507
IS_TEST_IMAGE_VARIABLE_RED_PART       =      0x01000000
1508
IS_TEST_IMAGE_VARIABLE_GREEN_PART     =      0x02000000
1509
IS_TEST_IMAGE_VARIABLE_BLUE_PART      =      0x04000000
1510
IS_TEST_IMAGE_SHADING_IMAGE           =      0x08000000
1511
IS_TEST_IMAGE_WEDGE_GRAY_SENSOR       =      0x10000000
1512
#                                                   0x20000000
1513
#                                                   0x40000000
1514
#                                                   0x80000000
1515
1516
1517
#  ----------------------------------------------------------------------------
1518
#  Sensor scaler
1519
#  ----------------------------------------------------------------------------
1520
IS_ENABLE_SENSOR_SCALER     =        1
1521
IS_ENABLE_ANTI_ALIASING     =        2
1522
1523
1524
#  ----------------------------------------------------------------------------
1525
#  Timeouts
1526
#  ----------------------------------------------------------------------------
1527
IS_TRIGGER_TIMEOUT         =         0
1528
1529
1530
#  ----------------------------------------------------------------------------
1531
#  Auto pixel clock modes
1532
#  ----------------------------------------------------------------------------
1533
IS_BEST_PCLK_RUN_ONCE      =         0
1534
1535
#  ----------------------------------------------------------------------------
1536
#  sequence flags
1537
#  ----------------------------------------------------------------------------
1538
IS_LOCK_LAST_BUFFER          =      0x8002
1539
IS_GET_ALLOC_ID_OF_THIS_BUF  =       0x8004
1540
IS_GET_ALLOC_ID_OF_LAST_BUF  =       0x8008
1541
IS_USE_ALLOC_ID              =       0x8000
1542
IS_USE_CURRENT_IMG_SIZE      =       0xC000
1543
1544
#  ------------------------------------------
1545
#  Memory information flags
1546
#  ------------------------------------------
1547
IS_GET_D3D_MEM             =         0x8000
1548
1549
#  ----------------------------------------------------------------------------
1550
#  Image files types
1551
#  ----------------------------------------------------------------------------
1552
IS_IMG_BMP              =            0
1553
IS_IMG_JPG              =            1
1554
IS_IMG_PNG              =            2
1555
IS_IMG_RAW              =            4
1556
IS_IMG_TIF              =            8
1557
1558
#  ----------------------------------------------------------------------------
1559
#  I2C defines
1560
#  nRegisterAddr | IS_I2C_16_BIT_REGISTER
1561
#  ----------------------------------------------------------------------------
1562
IS_I2C_16_BIT_REGISTER      =        0x10000000
1563
IS_I2C_0_BIT_REGISTER       =        0x20000000
1564
1565
#  nDeviceAddr | IS_I2C_DONT_WAIT
1566
IS_I2C_DONT_WAIT            =        0x00800000
1567
1568
1569
#  ----------------------------------------------------------------------------
1570
#  DirectDraw steal video constants   (Falcon)
1571
#  ----------------------------------------------------------------------------
1572
IS_INIT_STEAL_VIDEO             =    1
1573
IS_EXIT_STEAL_VIDEO             =    2
1574
IS_INIT_STEAL_VIDEO_MANUAL      =    3
1575
IS_INIT_STEAL_VIDEO_AUTO        =    4
1576
IS_SET_STEAL_RATIO              =    64
1577
IS_USE_MEM_IMAGE_SIZE           =    128
1578
IS_STEAL_MODES_MASK             =    7
1579
IS_SET_STEAL_COPY               =    0x1000
1580
IS_SET_STEAL_NORMAL             =    0x2000
1581
1582
#  ----------------------------------------------------------------------------
1583
#  AGC modes   (Falcon)
1584
#  ----------------------------------------------------------------------------
1585
IS_GET_AGC_MODE              =       0x8000
1586
IS_SET_AGC_OFF               =       0
1587
IS_SET_AGC_ON                =       1
1588
1589
1590
#  ----------------------------------------------------------------------------
1591
#  Gamma modes   (Falcon)
1592
#  ----------------------------------------------------------------------------
1593
IS_GET_GAMMA_MODE             =      0x8000
1594
IS_SET_GAMMA_OFF              =      0
1595
IS_SET_GAMMA_ON               =      1
1596
1597
1598
#  ----------------------------------------------------------------------------
1599
#  sync levels   (Falcon)
1600
#  ----------------------------------------------------------------------------
1601
IS_GET_SYNC_LEVEL            =       0x8000
1602
IS_SET_SYNC_75               =       0
1603
IS_SET_SYNC_125              =       1
1604
1605
1606
#  ----------------------------------------------------------------------------
1607
#  color bar modes   (Falcon)
1608
#  ----------------------------------------------------------------------------
1609
IS_GET_CBARS_MODE      =             0x8000
1610
IS_SET_CBARS_OFF       =             0
1611
IS_SET_CBARS_ON        =             1
1612
1613
1614
#  ----------------------------------------------------------------------------
1615
#  horizontal filter defines   (Falcon)
1616
#  ----------------------------------------------------------------------------
1617
IS_GET_HOR_FILTER_MODE      =        0x8000
1618
IS_GET_HOR_FILTER_STEP      =        0x8001
1619
1620
IS_DISABLE_HOR_FILTER       =        0
1621
IS_ENABLE_HOR_FILTER        =        1
1622
def IS_HOR_FILTER_STEP(_s_):
1623
    return ((_s_ + 1) << 1)
1624
IS_HOR_FILTER_STEP1         =        2
1625
IS_HOR_FILTER_STEP2         =        4
1626
IS_HOR_FILTER_STEP3         =        6
1627
1628
1629
#  ----------------------------------------------------------------------------
1630
#  vertical filter defines   (Falcon)
1631
#  ----------------------------------------------------------------------------
1632
IS_GET_VERT_FILTER_MODE    =         0x8000
1633
IS_GET_VERT_FILTER_STEP    =         0x8001
1634
1635
IS_DISABLE_VERT_FILTER     =         0
1636
IS_ENABLE_VERT_FILTER      =         1
1637
def IS_VERT_FILTER_STEP(_s_):
1638
    return ((_s_ + 1) << 1)
1639
IS_VERT_FILTER_STEP1       =         2
1640
IS_VERT_FILTER_STEP2       =         4
1641
IS_VERT_FILTER_STEP3       =         6
1642
1643
1644
#  ----------------------------------------------------------------------------
1645
#  scaler modes   (Falcon)
1646
#  ----------------------------------------------------------------------------
1647
IS_GET_SCALER_MODE   =       float( 1000)
1648
IS_SET_SCALER_OFF    =       float( 0)
1649
IS_SET_SCALER_ON     =       float( 1)
1650
1651
IS_MIN_SCALE_X       =       float(   6.25)
1652
IS_MAX_SCALE_X       =       float( 100.00)
1653
IS_MIN_SCALE_Y       =       float(   6.25)
1654
IS_MAX_SCALE_Y       =       float( 100.00)
1655
1656
1657
#  ----------------------------------------------------------------------------
1658
#  video source selectors   (Falcon)
1659
#  ----------------------------------------------------------------------------
1660
IS_GET_VIDEO_IN            =         0x8000
1661
IS_GET_VIDEO_PASSTHROUGH   =         0x8000
1662
IS_GET_VIDEO_IN_TOGGLE     =         0x8001
1663
IS_GET_TOGGLE_INPUT_1      =         0x8000
1664
IS_GET_TOGGLE_INPUT_2      =         0x8001
1665
IS_GET_TOGGLE_INPUT_3      =         0x8002
1666
IS_GET_TOGGLE_INPUT_4      =         0x8003
1667
1668
IS_SET_VIDEO_IN_1          =         0x00
1669
IS_SET_VIDEO_IN_2          =         0x01
1670
IS_SET_VIDEO_IN_S          =         0x02
1671
IS_SET_VIDEO_IN_3          =         0x03
1672
IS_SET_VIDEO_IN_4          =         0x04
1673
IS_SET_VIDEO_IN_1S         =         0x10
1674
IS_SET_VIDEO_IN_2S         =         0x11
1675
IS_SET_VIDEO_IN_3S         =         0x13
1676
IS_SET_VIDEO_IN_4S         =         0x14
1677
IS_SET_VIDEO_IN_EXT        =         0x40
1678
IS_SET_TOGGLE_OFF          =         0xFF
1679
IS_SET_VIDEO_IN_SYNC       =         0x4000
1680
1681
1682
#  ----------------------------------------------------------------------------
1683
#  video crossbar selectors   (Falcon)
1684
#  ----------------------------------------------------------------------------
1685
IS_GET_CROSSBAR            =         0x8000
1686
1687
IS_CROSSBAR_1              =         0
1688
IS_CROSSBAR_2              =         1
1689
IS_CROSSBAR_3              =         2
1690
IS_CROSSBAR_4              =         3
1691
IS_CROSSBAR_5              =         4
1692
IS_CROSSBAR_6              =         5
1693
IS_CROSSBAR_7              =         6
1694
IS_CROSSBAR_8              =         7
1695
IS_CROSSBAR_9              =         8
1696
IS_CROSSBAR_10             =         9
1697
IS_CROSSBAR_11             =         10
1698
IS_CROSSBAR_12             =         11
1699
IS_CROSSBAR_13             =         12
1700
IS_CROSSBAR_14             =         13
1701
IS_CROSSBAR_15             =         14
1702
IS_CROSSBAR_16             =         15
1703
IS_SELECT_AS_INPUT         =         128
1704
1705
1706
#  ----------------------------------------------------------------------------
1707
#  video format selectors   (Falcon)
1708
#  ----------------------------------------------------------------------------
1709
IS_GET_VIDEO_MODE          =         0x8000
1710
1711
IS_SET_VM_PAL              =         0
1712
IS_SET_VM_NTSC             =         1
1713
IS_SET_VM_SECAM            =         2
1714
IS_SET_VM_AUTO             =         3
1715
1716
1717
#  ----------------------------------------------------------------------------
1718
#  capture modes   (Falcon)
1719
#  ----------------------------------------------------------------------------
1720
IS_GET_CAPTURE_MODE         =        0x8000
1721
1722
IS_SET_CM_ODD               =        0x0001
1723
IS_SET_CM_EVEN              =        0x0002
1724
IS_SET_CM_FRAME             =        0x0004
1725
IS_SET_CM_NONINTERLACED     =        0x0008
1726
IS_SET_CM_NEXT_FRAME        =        0x0010
1727
IS_SET_CM_NEXT_FIELD        =        0x0020
1728
IS_SET_CM_BOTHFIELDS        =    (IS_SET_CM_ODD | IS_SET_CM_EVEN | IS_SET_CM_NONINTERLACED)
1729
IS_SET_CM_FRAME_STEREO      =        0x2004
1730
1731
1732
#  ----------------------------------------------------------------------------
1733
#  display update mode constants   (Falcon)
1734
#  ----------------------------------------------------------------------------
1735
IS_GET_UPDATE_MODE           =       0x8000
1736
IS_SET_UPDATE_TIMER          =       1
1737
IS_SET_UPDATE_EVENT          =       2
1738
1739
1740
#  ----------------------------------------------------------------------------
1741
#  sync generator mode constants   (Falcon)
1742
#  ----------------------------------------------------------------------------
1743
IS_GET_SYNC_GEN        =             0x8000
1744
IS_SET_SYNC_GEN_OFF    =             0
1745
IS_SET_SYNC_GEN_ON     =             1
1746
1747
1748
#  ----------------------------------------------------------------------------
1749
#  decimation modes   (Falcon)
1750
#  ----------------------------------------------------------------------------
1751
IS_GET_DECIMATION_MODE   =           0x8000
1752
IS_GET_DECIMATION_NUMBER =           0x8001
1753
1754
IS_DECIMATION_OFF         =          0
1755
IS_DECIMATION_CONSECUTIVE =          1
1756
IS_DECIMATION_DISTRIBUTED =          2
1757
1758
1759
#  ----------------------------------------------------------------------------
1760
#  hardware watchdog defines   (Falcon)
1761
#  ----------------------------------------------------------------------------
1762
IS_GET_WATCHDOG_TIME       =         0x2000
1763
IS_GET_WATCHDOG_RESOLUTION =         0x4000
1764
IS_GET_WATCHDOG_ENABLE     =         0x8000
1765
1766
IS_WATCHDOG_MINUTES        =         0
1767
IS_WATCHDOG_SECONDS        =         0x8000
1768
IS_DISABLE_WATCHDOG        =         0
1769
IS_ENABLE_WATCHDOG         =         1
1770
IS_RETRIGGER_WATCHDOG          =     2
1771
IS_ENABLE_AUTO_DEACTIVATION    =     4
1772
IS_DISABLE_AUTO_DEACTIVATION   =     8
1773
IS_WATCHDOG_RESERVED           =     0x1000
1774
1775
1776
#  ----------------------------------------------------------------------------
1777
#  typedefs
1778
#  ----------------------------------------------------------------------------
1779
HCAM = wt.DWORD
1780
1781
#  ----------------------------------------------------------------------------
1782
#  invalid values for device handles
1783
#  ----------------------------------------------------------------------------
1784
IS_INVALID_HCAM = 0
1785
1786
1787
class BOARDINFO(ctypes.Structure):
1788
    """
1789
    :var ctypes.c_char[12] SerNo: Serial number of sensor chip.
1790
    :var ctypes.c_char[20] ID: Camera ID.
1791
    :var ctypes.c_char[10] Version:
1792
    :var ctypes.c_char[12] Date:
1793
    :var ctypes.c_ubyte Select:
1794
    :var ctypes.c_ubyte Type:
1795
    :var ctypes.c_char[8] Reserved:
1796
    """
1797
    _fields_ = [("SerNo", ctypes.c_char * 12),
1798
                ("ID", ctypes.c_char * 20),
1799
                ("Version", ctypes.c_char * 10),
1800
                ("Date", ctypes.c_char * 12),
1801
                ("Select", ctypes.c_ubyte),
1802
                ("Type", ctypes.c_ubyte),
1803
                ("Reserved", ctypes.c_char * 8)]
1804
1805
#  ----------------------------------------------------------------------------
1806
#  info struct
1807
#  ----------------------------------------------------------------------------
1808
FALCINFO  = BOARDINFO
1809
PFALCINFO = ctypes.POINTER(BOARDINFO)
1810
CAMINFO   = BOARDINFO
1811
PCAMINFO  = ctypes.POINTER(BOARDINFO)
1812
1813
class SENSORINFO(ctypes.Structure):
1814
    """
1815
    :var WORD SensorID:
1816
    :var ctypes.c_char[32] strSensorName:
1817
    :var BYTE nColorMode:
1818
    :var DWORD nMaxWidth:
1819
    :var DWORD nMaxHeight:
1820
    :var BOOL bMasterGain:
1821
    :var BOOL bRGain:
1822
    :var BOOL bGGain:
1823
    :var BOOL bBGain:
1824
    :var WORD wPixelSize:
1825
    :var ctypes.c_char[14] Reserved:
1826
    """
1827
    _fields_ = [("SensorID", wt.WORD),
1828
                ("strSensorName", ctypes.c_char * 32),
1829
                ("nColorMode", wt.BYTE),
1830
                ("nMaxWidth", wt.DWORD),
1831
                ("nMaxHeight", wt.DWORD),
1832
                ("bMasterGain", wt.BOOL),
1833
                ("bRGain", wt.BOOL),
1834
                ("bGGain", wt.BOOL),
1835
                ("bBGain", wt.BOOL),
1836
                ("wPixelSize", wt.WORD),
1837
                ("Reserved", ctypes.c_char * 14)]
1838
1839
class REVISIONINFO(ctypes.Structure):
1840
    """
1841
    :var WORD size:
1842
    :var WORD Sensor:
1843
    :var WORD Cypress:
1844
    :var WORD Blackfin:
1845
    :var WORD DspFirmware:
1846
    :var WORD USB_Board:
1847
    :var WORD Sensor_Board:
1848
    :var WORD Processing_Board:
1849
    :var WORD Memory_Board:
1850
    :var WORD Housing:
1851
    :var WORD Filter:
1852
    :var WORD Timing_Board:
1853
    :var WORD Product:
1854
    :var WORD Power_Board:
1855
    :var WORD Power_Board:
1856
    :var WORD Logic_Board:
1857
    :var WORD FX3:
1858
    :var WORD FPGA:
1859
    :var ctypes.c_char[92] Reserved:
1860
    """
1861
    _fields_ = [("size", wt.WORD),
1862
                ("Sensor", wt.WORD),
1863
                ("Cypress", wt.WORD),
1864
                ("Blackfin", wt.DWORD),
1865
                ("DspFirmware", wt.WORD),
1866
                ("USB_Board", wt.WORD),
1867
                ("Sensor_Board", wt.WORD),
1868
                ("Processing_Board", wt.WORD),
1869
                ("Memory_Board", wt.WORD),
1870
                ("Housing", wt.WORD),
1871
                ("Filter", wt.WORD),
1872
                ("Timing_Board", wt.WORD),
1873
1874
                ("Product", wt.WORD),
1875
                ("Power_Board", wt.WORD),
1876
                ("Logic_Board", wt.WORD),
1877
                ("FX3", wt.WORD),
1878
                ("FPGA", wt.WORD),
1879
                ("Reserved", ctypes.c_char * 92)]
1880
1881
#  ----------------------------------------------------------------------------
1882
#  Capture errors
1883
#  ----------------------------------------------------------------------------
1884
IS_CAPERR_API_NO_DEST_MEM=              0xa2
1885
IS_CAPERR_API_CONVERSION_FAILED=        0xa3
1886
IS_CAPERR_API_IMAGE_LOCKED=             0xa5
1887
IS_CAPERR_DRV_OUT_OF_BUFFERS=           0xb2
1888
IS_CAPERR_DRV_DEVICE_NOT_READY=         0xb4
1889
IS_CAPERR_USB_TRANSFER_FAILED=          0xc7
1890
IS_CAPERR_DEV_TIMEOUT=                  0xd6
1891
IS_CAPERR_ETH_BUFFER_OVERRUN=           0xe4
1892
IS_CAPERR_ETH_MISSED_IMAGES=            0xe5
1893
1894
class UC480_CAPTURE_ERROR_INFO(ctypes.Structure):
1895
    """
1896
    :var DWORD dwCapErrCnt_Total:
1897
    :var BYTE[60] reserved:
1898
    :var DWORD[256] adwCapErrCnt_Detail:
1899
    """
1900
    _fields_ = [("dwCapErrCnt_Total", wt.DWORD),
1901
                ("reserved", wt.BYTE * 60),
1902
                ("adwCapErrCnt_Detail", wt.DWORD * 256)]    #: Attributes
1903
1904
IS_CAP_STATUS_API_NO_DEST_MEM       =   0xa2
1905
IS_CAP_STATUS_API_CONVERSION_FAILED =   0xa3
1906
IS_CAP_STATUS_API_IMAGE_LOCKED      =   0xa5
1907
IS_CAP_STATUS_DRV_OUT_OF_BUFFERS    =   0xb2
1908
IS_CAP_STATUS_DRV_DEVICE_NOT_READY  =   0xb4
1909
IS_CAP_STATUS_USB_TRANSFER_FAILED   =   0xc7
1910
IS_CAP_STATUS_DEV_TIMEOUT           =   0xd6
1911
IS_CAP_STATUS_ETH_BUFFER_OVERRUN    =   0xe4
1912
IS_CAP_STATUS_ETH_MISSED_IMAGES     =   0xe5
1913
1914
class UC480_CAPTURE_STATUS_INFO(ctypes.Structure):
1915
    """
1916
    :var DWORD dwCapStatusCnt_Total:
1917
    :var BYTE[60] reserved:
1918
    :var DWORD[256] adwCapStatusCnt_Detail:
1919
    """
1920
    _fields_ = [("dwCapStatusCnt_Total", wt.DWORD),
1921
                ("reserved", wt.BYTE * 60),
1922
                ("adwCapStatusCnt_Detail", wt.DWORD * 256)]
1923
1924
IS_CAPTURE_STATUS_INFO_CMD_RESET = 1
1925
IS_CAPTURE_STATUS_INFO_CMD_GET   = 2
1926
1927
class UC480_CAMERA_INFO(ctypes.Structure):
1928
    """
1929
    :var DWORD dwCameraID:
1930
    :var DWORD dwDeviceID:
1931
    :var DWORD dwSensorID:
1932
    :var DWORD dwInUse:
1933
    :var ctypes.c_char[16] SerNo:
1934
    :var ctypes.c_char[16] Model:
1935
    :var DWORD dwStatus:
1936
    :var DWORD[15] dwReserved:
1937
    """
1938
    _fields_ = [("dwCameraID", wt.DWORD),
1939
                ("dwDeviceID", wt.DWORD),
1940
                ("dwSensorID", wt.DWORD),
1941
                ("dwInUse", wt.DWORD),
1942
                ("SerNo", ctypes.c_char * 16),
1943
                ("Model", ctypes.c_char * 16),
1944
                ("dwStatus", wt.DWORD),
1945
                ("dwReserved", wt.DWORD * 15)]
1946
1947
#  usage of the list:
1948
#  1. call the DLL with .dwCount = 0
1949
#  2. DLL returns .dwCount = N  (N = number of available cameras)
1950
#  3. call DLL with .dwCount = N and a pointer to UC480_CAMERA_LIST with
1951
#     and array of UC480_CAMERA_INFO[N]
1952
#  4. DLL will fill in the array with the camera infos and
1953
#     will update the .dwCount member with the actual number of cameras
1954
#     because there may be a change in number of cameras between step 2 and 3
1955
#  5. check if there's a difference in actual .dwCount and formerly
1956
#     reported value of N and call DLL again with an updated array size
1957
1958
# class UC480_CAMERA_LIST(ctypes.Structure):
1959
    # _fields_ = [("dwCount", wt.ULONG),
1960
                # ("uci", ctypes.POINTER(UC480_CAMERA_INFO))]
1961
1962
def create_camera_list(dwCount):
1963
    """Returns an instance of the UC480_CAMERA_LIST structure having the properly scaled UC480_CAMERA_INFO array.
1964
1965
    :param ULONG dwCount: Number of camera info structures requested.
1966
    :returns: UC480_CAMERA_LIST
1967
1968
    :var ULONG dwCount: Size of uci.
1969
    :var UC480_CAMERA_INFO[dwCount] uci: List of camera info structures.
1970
    """
1971
    class UC480_CAMERA_LIST(ctypes.Structure):
1972
        _fields_ = [("dwCount", wt.ULONG),
1973
                    ("uci", UC480_CAMERA_INFO * dwCount)]
1974
    a_list = UC480_CAMERA_LIST()
1975
    a_list.dwCount = dwCount
1976
    return a_list
1977
1978
#  ----------------------------------------------------------------------------
1979
#  the  following defines are the status bits of the dwStatus member of
1980
#  the UC480_CAMERA_INFO structure
1981
FIRMWARE_DOWNLOAD_NOT_SUPPORTED       =          0x00000001
1982
INTERFACE_SPEED_NOT_SUPPORTED         =          0x00000002
1983
INVALID_SENSOR_DETECTED               =          0x00000004
1984
AUTHORIZATION_FAILED                  =          0x00000008
1985
DEVSTS_INCLUDED_STARTER_FIRMWARE_INCOMPATIBLE =  0x00000010
1986
1987
#  the following macro determines the availability of the camera based
1988
#  on the status flags
1989
def IS_CAMERA_AVAILABLE(_s_):
1990
    return ( (((_s_) & FIRMWARE_DOWNLOAD_NOT_SUPPORTED) == 0)
1991
            and (((_s_) & INTERFACE_SPEED_NOT_SUPPORTED)   == 0)
1992
            and (((_s_) & INVALID_SENSOR_DETECTED)         == 0)
1993
            and (((_s_) & AUTHORIZATION_FAILED)            == 0) )
1994
1995
#  ----------------------------------------------------------------------------
1996
#  auto feature structs and definitions
1997
#  ----------------------------------------------------------------------------
1998
AC_SHUTTER              =    0x00000001
1999
AC_GAIN                =     0x00000002
2000
AC_WHITEBAL            =     0x00000004
2001
AC_WB_RED_CHANNEL      =     0x00000008
2002
AC_WB_GREEN_CHANNEL    =     0x00000010
2003
AC_WB_BLUE_CHANNEL     =     0x00000020
2004
AC_FRAMERATE           =     0x00000040
2005
AC_SENSOR_SHUTTER      =     0x00000080
2006
AC_SENSOR_GAIN         =     0x00000100
2007
AC_SENSOR_GAIN_SHUTTER =     0x00000200
2008
AC_SENSOR_FRAMERATE    =     0x00000400
2009
AC_SENSOR_WB           =     0x00000800
2010
AC_SENSOR_AUTO_REFERENCE =   0x00001000
2011
AC_SENSOR_AUTO_SPEED     =   0x00002000
2012
AC_SENSOR_AUTO_HYSTERESIS=   0x00004000
2013
AC_SENSOR_AUTO_SKIPFRAMES=   0x00008000
2014
2015
ACS_ADJUSTING          =     0x00000001
2016
ACS_FINISHED           =     0x00000002
2017
ACS_DISABLED           =     0x00000004
2018
2019
2020
class AUTO_BRIGHT_STATUS(ctypes.Structure):
2021
    """
2022
    :var DWORD curValue:
2023
    :var ctypes.c_long curError:
2024
    :var DWORD curController:
2025
    :var DWORD curCtrlStatus:
2026
    """
2027
    _fields_ = [("curValue", wt.DWORD),
2028
                ("curError", ctypes.c_long),
2029
                ("curController", wt.DWORD),
2030
                ("curCtrlStatus", wt.DWORD)]
2031
2032
class AUTO_WB_CHANNNEL_STATUS(ctypes.Structure):
2033
    """
2034
    :var DWORD curValue:
2035
    :var ctypes.c_long curError:
2036
    :var DWORD curCtrlStatus:
2037
    """
2038
    _fields_ = [("curValue", wt.DWORD),
2039
                ("curError", ctypes.c_long),
2040
                ("curCtrlStatus", wt.DWORD)]
2041
2042
class AUTO_WB_STATUS(ctypes.Structure):
2043
    """
2044
    :var AUTO_WB_CHANNNEL_STATUS RedChannel:
2045
    :var AUTO_WB_CHANNNEL_STATUS GreenChannel:
2046
    :var AUTO_WB_CHANNNEL_STATUS BlueChannel:
2047
    :var DWORD curController:
2048
    """
2049
    _fields_ = [("RedChannel", AUTO_WB_CHANNNEL_STATUS),
2050
                ("GreenChannel", AUTO_WB_CHANNNEL_STATUS),
2051
                ("BlueChannel", AUTO_WB_CHANNNEL_STATUS),
2052
                ("curController", wt.DWORD)]
2053
2054
class UC480_AUTO_INFO(ctypes.Structure):
2055
    """
2056
    :var DWORD AutoAbility:
2057
    :var AUTO_BRIGHT_STATUS sBrightCtrlStatus:
2058
    :var AUTO_WB_STATUS sWBCtrlStatus:
2059
    :var DWORD AShutterPhotomCaps:
2060
    :var DWORD AGainPhotomCaps:
2061
    :var DWORD AAntiFlickerCaps:
2062
    :var DWORD SensorWBModeCaps:
2063
    :var DWORD[8] reserved:
2064
    """
2065
    _fields_ = [("AutoAbility", wt.DWORD),
2066
                ("sBrightCtrlStatus", AUTO_BRIGHT_STATUS),
2067
                ("sWBCtrlStatus", AUTO_WB_STATUS),
2068
                ("AShutterPhotomCaps", wt.DWORD),
2069
                ("AGainPhotomCaps", wt.DWORD),
2070
                ("AAntiFlickerCaps", wt.DWORD),
2071
                ("SensorWBModeCaps", wt.DWORD),
2072
                ("reserved", wt.DWORD * 8)]
2073
2074
class UC480_AUTO_INFO(ctypes.Structure):
2075
    """
2076
    :var ctypes.c_uint nSize:
2077
    :var ctypes.c_void_p hDC:
2078
    :var ctypes.c_uint nCx:
2079
    :var ctypes.c_uint nCy:
2080
    """
2081
    _fields_ = [("nSize", ctypes.c_uint),
2082
                ("hDC", ctypes.c_void_p),
2083
                ("nCx", ctypes.c_uint),
2084
                ("nCy", ctypes.c_uint)]
2085
2086
class KNEEPOINT(ctypes.Structure):
2087
    """
2088
    :var ctypes.c_double x:
2089
    :var ctypes.c_double y:
2090
    """
2091
    _fields_ = [("x", ctypes.c_double),
2092
                ("y", ctypes.c_double)]
2093
2094
class KNEEPOINTARRAY(ctypes.Structure):
2095
    """
2096
    :var ctypes.c_int NumberOfUsedKneepoints:
2097
    :var KNEEPOINT[10] Kneepoint:
2098
    """
2099
    _fields_ = [("NumberOfUsedKneepoints", ctypes.c_int),
2100
                ("Kneepoint", KNEEPOINT * 10)]
2101
2102
class KNEEPOINTINFO(ctypes.Structure):
2103
    """
2104
    :var ctypes.c_int NumberOfSupportedKneepoints:
2105
    :var ctypes.c_int NumberOfUsedKneepoints:
2106
    :var ctypes.c_double MinValueX:
2107
    :var ctypes.c_double MaxValueX:
2108
    :var ctypes.c_double MinValueY:
2109
    :var ctypes.c_double MaxValueY:
2110
    :var KNEEPOINT[10] DefaultKneepoint:
2111
    :var ctypes.c_int[10] Reserved:
2112
    """
2113
    _fields_ = [("NumberOfSupportedKneepoints", ctypes.c_int),
2114
                ("NumberOfUsedKneepoints", ctypes.c_int),
2115
                ("MinValueX", ctypes.c_double),
2116
                ("MaxValueX", ctypes.c_double),
2117
                ("MinValueY", ctypes.c_double),
2118
                ("MaxValueY", ctypes.c_double),
2119
                ("DefaultKneepoint", KNEEPOINT * 10),
2120
                ("Reserved", ctypes.c_int * 10)]
2121
2122
2123
IS_SE_STARTER_FW_UPLOAD =   0x00000001 # !< get estimated duration of GigE SE starter firmware upload in milliseconds
2124
IS_CP_STARTER_FW_UPLOAD =   0x00000002 # !< get estimated duration of GigE CP starter firmware upload in milliseconds
2125
IS_STARTER_FW_UPLOAD    =   0x00000004  # !< get estimated duration of starter firmware upload in milliseconds using hCam to
2126
2127
class SENSORSCALERINFO(ctypes.Structure):
2128
    """
2129
    :var ctypes.c_int nCurrMode:
2130
    :var ctypes.c_int nNumberOfSteps:
2131
    :var ctypes.c_double dblFactorIncrement:
2132
    :var ctypes.c_double dblMinFactor:
2133
    :var ctypes.c_double dblMaxFactor:
2134
    :var ctypes.c_double dblCurrFactor:
2135
    :var ctypes.c_int nSupportedModes:
2136
    :var ctypes.c_byte[84] bReserved:
2137
    """
2138
    _fields_ = [("nCurrMode", ctypes.c_int),
2139
                ("nNumberOfSteps", ctypes.c_int),
2140
                ("dblFactorIncrement", ctypes.c_double),
2141
                ("dblMinFactor", ctypes.c_double),
2142
                ("dblMaxFactor", ctypes.c_double),
2143
                ("dblCurrFactor", ctypes.c_double),
2144
                ("nSupportedModes", ctypes.c_int),
2145
                ("bReserved", ctypes.c_byte * 84)]
2146
2147
class UC480TIME(ctypes.Structure):
2148
    """
2149
    :var WORD wYear:
2150
    :var WORD wMonth:
2151
    :var WORD wDay:
2152
    :var WORD wHour:
2153
    :var WORD wMinute:
2154
    :var WORD wSecond:
2155
    :var WORD wMilliseconds:
2156
    :var BYTE[10] byReserved:
2157
    """
2158
    _fields_ = [("wYear", wt.WORD),
2159
                ("wMonth", wt.WORD),
2160
                ("wDay", wt.WORD),
2161
                ("wHour", wt.WORD),
2162
                ("wMinute", wt.WORD),
2163
                ("wSecond", wt.WORD),
2164
                ("wMilliseconds", wt.WORD),
2165
                ("byReserved", wt.BYTE * 10)]
2166
2167
2168
class UC480IMAGEINFO(ctypes.Structure):
2169
    """
2170
    :var DWORD dwFlags:
2171
    :var BYTE[4] byReserved1:
2172
    :var ctypes.c_ulonglong u64TimestampDevice:
2173
    :var UC480TIME TimestampSystem:
2174
    :var DWORD dwIoStatus:
2175
    :var WORD wAOIIndex:
2176
    :var WORD wAOICycle:
2177
    :var ctypes.c_ulonglong u64FrameNumber:
2178
    :var DWORD dwImageBuffers:
2179
    :var DWORD dwImageBuffersInUse:
2180
    :var DWORD dwReserved3:
2181
    :var DWORD dwImageHeight:
2182
    :var DWORD dwImageWidth:
2183
    """
2184
    _fields_ = [("dwFlags", wt.DWORD),
2185
                ("byReserved1", wt.BYTE * 4),
2186
                ("u64TimestampDevice", ctypes.c_ulonglong),
2187
                ("TimestampSystem", UC480TIME),
2188
                ("dwIoStatus", wt.DWORD),
2189
                ("wAOIIndex", wt.WORD),
2190
                ("wAOICycle", wt.WORD),
2191
                ("u64FrameNumber", ctypes.c_ulonglong),
2192
                ("dwImageBuffers", wt.DWORD),
2193
                ("dwImageBuffersInUse", wt.DWORD),
2194
                ("dwReserved3", wt.DWORD),
2195
                ("dwImageHeight", wt.DWORD),
2196
                ("dwImageWidth", wt.DWORD)]
2197
2198
#  ----------------------------------------------------------------------------
2199
#  new functions and datatypes only valid for uc480 ETH
2200
#  ----------------------------------------------------------------------------
2201
2202
class UC480_ETH_ADDR_IPV4_by(ctypes.Structure):
2203
    """
2204
    :var BYTE by1:
2205
    :var BYTE by2:
2206
    :var BYTE by3:
2207
    :var BYTE by4:
2208
    """
2209
    _fields_ = [("by1", wt.BYTE),
2210
                ("by2", wt.BYTE),
2211
                ("by3", wt.BYTE),
2212
                ("by4", wt.BYTE)]
2213
2214
class UC480_ETH_ADDR_IPV4(ctypes.Structure):
2215
    """
2216
    :var UC480_ETH_ADDR_IPV4_by by:
2217
    :var DWORD dwAddr:
2218
    """
2219
    _fields_ = [("by", UC480_ETH_ADDR_IPV4_by),
2220
                ("dwAddr", wt.DWORD)]
2221
2222
class UC480_ETH_ADDR_MAC(ctypes.Structure):
2223
    """
2224
    :var BYTE[6] abyOctet:
2225
    """
2226
    _fields_ = [("abyOctet", wt.BYTE * 6)]
2227
2228
class UC480_ETH_IP_CONFIGURATION(ctypes.Structure):
2229
    """
2230
    :var UC480_ETH_ADDR_IPV4 ipAddress:
2231
    :var UC480_ETH_ADDR_IPV4 ipSubnetmask:
2232
    :var BYTE reserved:
2233
    """
2234
    _fields_ = [("ipAddress", UC480_ETH_ADDR_IPV4),
2235
                ("ipSubnetmask", UC480_ETH_ADDR_IPV4),
2236
                ("reserved", wt.BYTE)]
2237
2238
2239
IS_ETH_DEVSTATUS_READY_TO_OPERATE=            0x00000001 # !< device is ready to operate
2240
IS_ETH_DEVSTATUS_TESTING_IP_CURRENT=          0x00000002 # !< device is (arp-)probing its current ip
2241
IS_ETH_DEVSTATUS_TESTING_IP_PERSISTENT=       0x00000004 # !< device is (arp-)probing its persistent ip
2242
IS_ETH_DEVSTATUS_TESTING_IP_RANGE=            0x00000008 # !< device is (arp-)probing the autocfg ip range
2243
2244
IS_ETH_DEVSTATUS_INAPPLICABLE_IP_CURRENT=     0x00000010 # !< current ip is inapplicable
2245
IS_ETH_DEVSTATUS_INAPPLICABLE_IP_PERSISTENT=  0x00000020 # !< persistent ip is inapplicable
2246
IS_ETH_DEVSTATUS_INAPPLICABLE_IP_RANGE=       0x00000040 # !< autocfg ip range is inapplicable
2247
2248
IS_ETH_DEVSTATUS_UNPAIRED=                    0x00000100 # !< device is unpaired
2249
IS_ETH_DEVSTATUS_PAIRING_IN_PROGRESS=         0x00000200 # !< device is being paired
2250
IS_ETH_DEVSTATUS_PAIRED=                      0x00000400 # !< device is paired
2251
2252
IS_ETH_DEVSTATUS_FORCE_100MBPS=               0x00001000 # !< device phy is configured to 100 Mbps
2253
IS_ETH_DEVSTATUS_NO_COMPORT=                  0x00002000 # !< device does not support uc480 eth comport
2254
2255
IS_ETH_DEVSTATUS_RECEIVING_FW_STARTER=        0x00010000 # !< device is receiving the starter firmware
2256
IS_ETH_DEVSTATUS_RECEIVING_FW_RUNTIME=        0x00020000 # !< device is receiving the runtime firmware
2257
IS_ETH_DEVSTATUS_INAPPLICABLE_FW_RUNTIME=     0x00040000 # !< runtime firmware is inapplicable
2258
IS_ETH_DEVSTATUS_INAPPLICABLE_FW_STARTER=     0x00080000 # !< starter firmware is inapplicable
2259
2260
IS_ETH_DEVSTATUS_REBOOTING_FW_RUNTIME=        0x00100000 # !< device is rebooting to runtime firmware
2261
IS_ETH_DEVSTATUS_REBOOTING_FW_STARTER=        0x00200000 # !< device is rebooting to starter firmware
2262
IS_ETH_DEVSTATUS_REBOOTING_FW_FAILSAFE=       0x00400000 # !< device is rebooting to failsafe firmware
2263
2264
IS_ETH_DEVSTATUS_RUNTIME_FW_ERR0=             0x80000000 # !< checksum error runtime firmware
2265
2266
#  heartbeat info transmitted periodically by a device
2267
#  contained in UC480_ETH_DEVICE_INFO
2268
class UC480_ETH_DEVICE_INFO_HEARTBEAT(ctypes.Structure):
2269
    """
2270
    :var BYTE[12] abySerialNumber:
2271
    :var BYTE byDeviceType:
2272
    :var BYTE byCameraID:
2273
    :var WORD wSensorID:
2274
    :var WORD wSizeImgMem_MB:
2275
    :var BYTE[2] reserved_1:
2276
    :var DWORD dwVerStarterFirmware:
2277
    :var DWORD dwVerRuntimeFirmware:
2278
    :var DWORD dwStatus:
2279
    :var BYTE[4] reserved_2:
2280
    :var WORD wTemperature:
2281
    :var WORD wLinkSpeed_Mb:
2282
    :var UC480_ETH_ADDR_MAC macDevice:
2283
    :var WORD wComportOffset:
2284
    :var UC480_ETH_IP_CONFIGURATION ipcfgPersistentIpCfg:
2285
    :var UC480_ETH_IP_CONFIGURATION ipcfgCurrentIpCfg:
2286
    :var UC480_ETH_ADDR_MAC macPairedHost:
2287
    :var BYTE[2] reserved_4:
2288
    :var UC480_ETH_ADDR_IPV4 ipPairedHostIp:
2289
    :var UC480_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin:
2290
    :var UC480_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd:
2291
    :var BYTE[8] abyUserSpace:
2292
    :var BYTE[84] reserved_5:
2293
    :var BYTE[64] reserved_6:
2294
    """
2295
    _fields_ = [("abySerialNumber", wt.BYTE * 12),
2296
                ("byDeviceType", wt.BYTE),
2297
                ("byCameraID", wt.BYTE),
2298
                ("wSensorID", wt.WORD),
2299
                ("wSizeImgMem_MB", wt.WORD),
2300
                ("reserved_1", wt.BYTE * 2),
2301
                ("dwVerStarterFirmware", wt.DWORD),
2302
                ("dwVerRuntimeFirmware", wt.DWORD),
2303
                ("dwStatus", wt.DWORD),
2304
                ("reserved_2", wt.BYTE * 4),
2305
                ("wTemperature", wt.WORD),
2306
                ("wLinkSpeed_Mb", wt.WORD),
2307
                ("macDevice", UC480_ETH_ADDR_MAC),
2308
                ("wComportOffset", wt.WORD),
2309
                ("ipcfgPersistentIpCfg", UC480_ETH_IP_CONFIGURATION),
2310
                ("ipcfgCurrentIpCfg", UC480_ETH_IP_CONFIGURATION),
2311
                ("macPairedHost", UC480_ETH_ADDR_MAC),
2312
                ("reserved_4", wt.BYTE * 2),
2313
                ("ipPairedHostIp", UC480_ETH_ADDR_IPV4),
2314
                ("ipAutoCfgIpRangeBegin", UC480_ETH_ADDR_IPV4),
2315
                ("ipAutoCfgIpRangeEnd", UC480_ETH_ADDR_IPV4),
2316
                ("abyUserSpace", wt.BYTE * 8),
2317
                ("reserved_5", wt.BYTE * 84),
2318
                ("reserved_6", wt.BYTE * 64)]
2319
2320
IS_ETH_CTRLSTATUS_AVAILABLE=              0x00000001 # !< device is available TO US
2321
IS_ETH_CTRLSTATUS_ACCESSIBLE1=            0x00000002 # !< device is accessible BY US, i.e. directly 'unicastable'
2322
IS_ETH_CTRLSTATUS_ACCESSIBLE2=            0x00000004 # !< device is accessible BY US, i.e. not on persistent ip and adapters ip autocfg range is valid
2323
2324
IS_ETH_CTRLSTATUS_PERSISTENT_IP_USED=     0x00000010 # !< device is running on persistent ip configuration
2325
IS_ETH_CTRLSTATUS_COMPATIBLE=             0x00000020 # !< device is compatible TO US
2326
IS_ETH_CTRLSTATUS_ADAPTER_ON_DHCP=        0x00000040 # !< adapter is configured to use dhcp
2327
IS_ETH_CTRLSTATUS_ADAPTER_SETUP_OK =      0x00000080 # !< adapter's setup is ok with respect to uc480 needs
2328
2329
IS_ETH_CTRLSTATUS_UNPAIRING_IN_PROGRESS=  0x00000100 # !< device is being unpaired FROM US
2330
IS_ETH_CTRLSTATUS_PAIRING_IN_PROGRESS=    0x00000200 # !< device is being paired TO US
2331
2332
IS_ETH_CTRLSTATUS_PAIRED=                 0x00001000 # !< device is paired TO US
2333
IS_ETH_CTRLSTATUS_OPENED =                0x00004000 # !< device is opened BY SELF
2334
2335
IS_ETH_CTRLSTATUS_FW_UPLOAD_STARTER=      0x00010000 # !< device is receiving the starter firmware
2336
IS_ETH_CTRLSTATUS_FW_UPLOAD_RUNTIME=      0x00020000 # !< device is receiving the runtime firmware
2337
2338
IS_ETH_CTRLSTATUS_REBOOTING=              0x00100000 # !< device is rebooting
2339
2340
IS_ETH_CTRLSTATUS_BOOTBOOST_ENABLED =     0x01000000 # !< boot-boosting is enabled for this device
2341
IS_ETH_CTRLSTATUS_BOOTBOOST_ACTIVE =      0x02000000 # !< boot-boosting is active for this device
2342
IS_ETH_CTRLSTATUS_INITIALIZED=            0x08000000 # !< device object is initialized
2343
2344
IS_ETH_CTRLSTATUS_TO_BE_DELETED=          0x40000000 # !< device object is being deleted
2345
IS_ETH_CTRLSTATUS_TO_BE_REMOVED=          0x80000000 # !< device object is being removed
2346
2347
class UC480_ETH_DEVICE_INFO_CONTROL(ctypes.Structure):
2348
    """
2349
    :var DWORD dwDeviceID:
2350
    :var DWORD dwControlStatus:
2351
    :var BYTE[80] reserved_1:
2352
    :var BYTE[64] reserved_2:
2353
    """
2354
    _fields_ = [("dwDeviceID", wt.DWORD),
2355
                ("dwControlStatus", wt.DWORD),
2356
                ("reserved_1", wt.BYTE * 80),
2357
                ("reserved_2", wt.BYTE * 64)]
2358
2359
class UC480_ETH_ETHERNET_CONFIGURATION(ctypes.Structure):
2360
    """
2361
    :var UC480_ETH_IP_CONFIGURATION ipcfg:
2362
    :var UC480_ETH_ADDR_MAC mac:
2363
    """
2364
    _fields_ = [("ipcfg", UC480_ETH_IP_CONFIGURATION),
2365
                ("mac", UC480_ETH_ADDR_MAC)]
2366
2367
class UC480_ETH_AUTOCFG_IP_SETUP(ctypes.Structure):
2368
    """
2369
    :var UC480_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin:
2370
    :var UC480_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd:
2371
    :var BYTE[4] reserved:
2372
    """
2373
    _fields_ = [("ipAutoCfgIpRangeBegin", UC480_ETH_ADDR_IPV4),
2374
                ("ipAutoCfgIpRangeEnd", UC480_ETH_ADDR_IPV4),
2375
                ("reserved", wt.BYTE * 4)]
2376
2377
#  values for incoming packets filter setup
2378
IS_ETH_PCKTFLT_PASSALL=       0  # !< pass all packets to OS
2379
IS_ETH_PCKTFLT_BLOCKUEGET=    1  # !< block UEGET packets to the OS
2380
IS_ETH_PCKTFLT_BLOCKALL=      2  # !< block all packets to the OS
2381
2382
#  values for link speed setup
2383
IS_ETH_LINKSPEED_100MB=       100    # !< 100 MBits
2384
IS_ETH_LINKSPEED_1000MB=      1000    # !< 1000 MBits
2385
2386
#  control info for a device's network adapter
2387
#  contained in UC480_ETH_DEVICE_INFO
2388
class UC480_ETH_ADAPTER_INFO(ctypes.Structure):
2389
    """
2390
    :var DWORD dwAdapterID:
2391
    :var DWORD dwDeviceLinkspeed:
2392
    :var UC480_ETH_ETHERNET_CONFIGURATION ethcfg:
2393
    :var BYTE[2] reserved_2:
2394
    :var BOOL bIsEnabledDHCP:
2395
    :var UC480_ETH_AUTOCFG_IP_SETUP autoCfgIp:
2396
    :var BOOL bIsValidAutoCfgIpRange:
2397
    :var DWORD dwCntDevicesKnown:
2398
    :var DWORD dwCntDevicesPaired:
2399
    :var WORD wPacketFilter:
2400
    :var BYTE[38] reserved_3:
2401
    :var BYTE[64] reserved_4:
2402
    """
2403
    _fields_ = [("dwAdapterID", wt.DWORD),
2404
                ("dwDeviceLinkspeed", wt.DWORD),
2405
                ("ethcfg", UC480_ETH_ETHERNET_CONFIGURATION),
2406
                ("reserved_2", wt.BYTE * 2),
2407
                ("bIsEnabledDHCP", wt.BOOL),
2408
                ("autoCfgIp", UC480_ETH_AUTOCFG_IP_SETUP),
2409
                ("bIsValidAutoCfgIpRange", wt.BOOL),
2410
                ("dwCntDevicesKnown", wt.DWORD),
2411
                ("dwCntDevicesPaired", wt.DWORD),
2412
                ("wPacketFilter", wt.WORD),
2413
                ("reserved_3", wt.BYTE * 38),
2414
                ("reserved_4", wt.BYTE * 64)]
2415
2416
#  driver info
2417
#  contained in UC480_ETH_DEVICE_INFO
2418
class UC480_ETH_DRIVER_INFO(ctypes.Structure):
2419
    """
2420
    :var DWORD dwMinVerStarterFirmware:
2421
    :var DWORD dwMaxVerStarterFirmware:
2422
    :var BYTE[8] reserved_1:
2423
    :var BYTE[64] reserved_2:
2424
    """
2425
    _fields_ = [("dwMinVerStarterFirmware", wt.DWORD),
2426
                ("dwMaxVerStarterFirmware", wt.DWORD),
2427
                ("reserved_1", wt.BYTE * 8),
2428
                ("reserved_2", wt.BYTE * 64)]
2429
2430
#  use is_GetEthDeviceInfo() to obtain this data.
2431
class UC480_ETH_DEVICE_INFO(ctypes.Structure):
2432
    """
2433
    :var UC480_ETH_DEVICE_INFO_HEARTBEAT infoDevHeartbeat:
2434
    :var UC480_ETH_DEVICE_INFO_CONTROL infoDevControl:
2435
    :var UC480_ETH_ADAPTER_INFO infoAdapter:
2436
    :var UC480_ETH_DRIVER_INFO infoDriver:
2437
    """
2438
    _fields_ = [("infoDevHeartbeat", UC480_ETH_DEVICE_INFO_HEARTBEAT),
2439
                ("infoDevControl", UC480_ETH_DEVICE_INFO_CONTROL),
2440
                ("infoAdapter", UC480_ETH_ADAPTER_INFO),
2441
                ("infoDriver", UC480_ETH_DRIVER_INFO)]
2442
2443
class UC480_COMPORT_CONFIGURATION(ctypes.Structure):
2444
    """
2445
    :var WORD wComportNumber:
2446
    """
2447
    _fields_ = [("wComportNumber", wt.WORD)]
2448
2449
class IS_DEVICE_INFO_HEARTBEAT(ctypes.Structure):
2450
    """
2451
    :var BYTE[24] reserved_1:
2452
    :var DWORD dwRuntimeFirmwareVersion:
2453
    :var BYTE[8] reserved_2:
2454
    :var WORD wTemperature:
2455
    :var WORD wLinkSpeed_Mb:
2456
    :var BYTE[6] reserved_3:
2457
    :var WORD wComportOffset:
2458
    :var BYTE[200] reserved:
2459
    """
2460
    _fields_ = [("reserved_1", wt.BYTE * 24),
2461
                ("dwRuntimeFirmwareVersion", wt.DWORD),
2462
                ("reserved_2", wt.BYTE * 8),
2463
                ("wTemperature", wt.WORD),
2464
                ("wLinkSpeed_Mb", wt.WORD),
2465
                ("reserved_3", wt.BYTE * 6),
2466
                ("wComportOffset", wt.WORD),
2467
                ("reserved", wt.BYTE * 200)]
2468
2469
class IS_DEVICE_INFO_CONTROL(ctypes.Structure):
2470
    """
2471
    :var DWORD dwDeviceId:
2472
    :var BYTE[146] reserved:
2473
    """
2474
    _fields_ = [("dwDeviceId", wt.DWORD),
2475
                ("reserved", wt.BYTE * 148)]
2476
2477
class IS_DEVICE_INFO(ctypes.Structure):
2478
    """
2479
    :var IS_DEVICE_INFO_HEARTBEAT infoDevHeartbeat:
2480
    :var IS_DEVICE_INFO_CONTROL infoDevControl:
2481
    :var BYTE[240] reserved:
2482
    """
2483
    _fields_ = [("infoDevHeartbeat", IS_DEVICE_INFO_HEARTBEAT),
2484
                ("infoDevControl", IS_DEVICE_INFO_CONTROL),
2485
                ("reserved", wt.BYTE * 240)]
2486
2487
IS_DEVICE_INFO_CMD_GET_DEVICE_INFO  = 0x02010001
2488
2489
class OPENGL_DISPLAY(ctypes.Structure):
2490
    """
2491
    :var ctypes.c_int nWindowID:
2492
    :var ctypes.c_void_p pDisplay:
2493
    """
2494
    _fields_ = [("nWindowID", ctypes.c_int),
2495
                ("pDisplay", ctypes.c_void_p)]
2496
2497
IMGFRMT_CMD_GET_NUM_ENTRIES              = 1  #  Get the number of supported image formats.
2498
                                         #    pParam hast to be a Pointer to IS_U32. If  -1 is reported, the device
2499
                                         #    supports continuous AOI settings (maybe with fixed increments)
2500
IMGFRMT_CMD_GET_LIST                     = 2  #  Get a array of IMAGE_FORMAT_ELEMENTs.
2501
IMGFRMT_CMD_SET_FORMAT                   = 3  #  Select a image format
2502
IMGFRMT_CMD_GET_ARBITRARY_AOI_SUPPORTED  = 4  #  Does the device supports the setting of an arbitrary AOI.
2503
IMGFRMT_CMD_GET_FORMAT_INFO              = 5  #  Get IMAGE_FORMAT_INFO for a given formatID
2504
2505
#  no trigger
2506
CAPTMODE_FREERUN                    = 0x00000001
2507
CAPTMODE_SINGLE                     = 0x00000002
2508
2509
#  software trigger modes
2510
CAPTMODE_TRIGGER_SOFT_SINGLE        = 0x00000010
2511
CAPTMODE_TRIGGER_SOFT_CONTINUOUS    = 0x00000020
2512
2513
#  hardware trigger modes
2514
CAPTMODE_TRIGGER_HW_SINGLE          = 0x00000100
2515
CAPTMODE_TRIGGER_HW_CONTINUOUS      = 0x00000200
2516
2517
class IMAGE_FORMAT_INFO(ctypes.Structure):
2518
    """
2519
    :var INT nFormatID:
2520
    :var UINT nWidth:
2521
    :var UINT nHeight:
2522
    :var INT nX0:
2523
    :var INT nY0:
2524
    :var UINT nSupportedCaptureModes:
2525
    :var UINT nBinningMode:
2526
    :var UINT nSubsamplingMode:
2527
    :var ctypes.c_char[64] strFormatName:
2528
    :var ctypes.c_double dSensorScalerFactor:
2529
    :var UINT[22] nReserved:
2530
    """
2531
    _fields_ = [("nFormatID", wt.INT),
2532
                ("nWidth", wt.UINT),
2533
                ("nHeight", wt.UINT),
2534
                ("nX0", wt.INT),
2535
                ("nY0", wt.INT),
2536
                ("nSupportedCaptureModes", wt.UINT),
2537
                ("nBinningMode", wt.UINT),
2538
                ("nSubsamplingMode", wt.UINT),
2539
                ("strFormatName", ctypes.c_char * 64),
2540
                ("dSensorScalerFactor", ctypes.c_double),
2541
                ("nReserved", wt.UINT * 22)]
2542
2543
# class IMAGE_FORMAT_LIST(ctypes.Structure):
2544
    # _fields_ = [("nSizeOfListEntry", wt.UINT),
2545
                # ("nNumListElements", wt.UINT),
2546
                # ("nReserved", wt.UINT * 4),
2547
                # ("FormatInfo", ctypes.POINTER(IMAGE_FORMAT_INFO))]
2548
def create_image_format_list(nNumListElements):
2549
    """Returns an instance of the IMAGE_FORMAT_LIST structure having the properly scaled *FormatInfo* array.
2550
2551
    :param ULONG nNumListElements: Number of format info structures requested.
2552
    :returns: IMAGE_FORMAT_LIST
2553
2554
    :var UINT nSizeOfListEntry:
2555
    :var UINT nNumListElements:
2556
    :var UINT[4] nReserved:
2557
    :var IMAGE_FORMAT_INFO[nNumListElements] FormatInfo:
2558
    """
2559
    class IMAGE_FORMAT_LIST(ctypes.Structure):
2560
        _fields_ = [("nSizeOfListEntry", wt.UINT),
2561
                    ("nNumListElements", wt.UINT),
2562
                    ("nReserved", wt.UINT * 4),
2563
                    ("FormatInfo", IMAGE_FORMAT_INFO * nNumListElements)]
2564
    a_list = IMAGE_FORMAT_LIST()
2565
    a_list.nNumListElements = nNumListElements
2566
    return a_list
2567
2568
FDT_CAP_INVALID             = 0
2569
FDT_CAP_SUPPORTED           = 0x00000001 #  Face detection supported.
2570
FDT_CAP_SEARCH_ANGLE        = 0x00000002 #  Search angle.
2571
FDT_CAP_SEARCH_AOI          = 0x00000004 #  Search AOI.
2572
FDT_CAP_INFO_POSX           = 0x00000010 #  Query horizontal position (center) of detected face.
2573
FDT_CAP_INFO_POSY           = 0x00000020 #  Query vertical position(center) of detected face.
2574
FDT_CAP_INFO_WIDTH          = 0x00000040 #  Query width of detected face.
2575
FDT_CAP_INFO_HEIGHT         = 0x00000080 #  Query height of detected face.
2576
FDT_CAP_INFO_ANGLE          = 0x00000100 #  Query angle of detected face.
2577
FDT_CAP_INFO_POSTURE        = 0x00000200 #  Query posture of detected face.
2578
FDT_CAP_INFO_FACENUMBER     = 0x00000400 #  Query number of detected faces.
2579
FDT_CAP_INFO_OVL            = 0x00000800 #  Overlay: Mark the detected face in the image.
2580
FDT_CAP_INFO_NUM_OVL        = 0x00001000 #  Overlay: Limit the maximum number of overlays in one image.
2581
FDT_CAP_INFO_OVL_LINEWIDTH  = 0x00002000 #  Overlay line width.
2582
2583
class FDT_INFO_EL(ctypes.Structure):
2584
    """
2585
    :var INT nFacePosX:
2586
    :var INT nFacePosY:
2587
    :var INT nFaceWidth:
2588
    :var INT nFaceHeight:
2589
    :var INT nAngle:
2590
    :var UINT nPosture:
2591
    :var UC480TIME TimestampSystem:
2592
    :var ctypes.c_ulonglong nReserved:
2593
    :var UINT[4] nReserved2:
2594
    """
2595
    _fields_ = [("nFacePosX", wt.INT),
2596
                ("nFacePosY", wt.INT),
2597
                ("nFaceWidth", wt.INT),
2598
                ("nFaceHeight", wt.INT),
2599
                ("nAngle", wt.INT),
2600
                ("nPosture", wt.UINT),
2601
                ("TimestampSystem", UC480TIME),
2602
                ("nReserved", ctypes.c_ulonglong),
2603
                ("nReserved2", wt.UINT * 4)]
2604
2605
# class FDT_INFO_LIST(ctypes.Structure):
2606
    # _fields_ = [("nSizeOfListEntry", wt.UINT),
2607
                # ("nNumDetectedFaces", wt.UINT),
2608
                # ("nNumListElements", wt.UINT),
2609
                # ("nReserved", wt.UINT * 4),
2610
                # ("FaceEntry", ctypes.POINTER(FDT_INFO_EL))]
2611
def create_fdt_info_list(nNumListElements):
2612
    """Returns an instance of the FDT_INFO_LIST structure having the properly scaled *FaceEntry* array.
2613
2614
    :param ULONG nNumListElements: Number of face entry structures requested.
2615
    :returns: FDT_INFO_LIST
2616
2617
    :var UINT nSizeOfListEntry:
2618
    :var UINT nNumDetectedFaces:
2619
    :var UINT nNumListElements:
2620
    :var UINT[4] nReserved:
2621
    :var FDT_INFO_EL[nNumListElements] FaceEntry:
2622
    """
2623
    class FDT_INFO_LIST(ctypes.Structure):
2624
        _fields_ = [("nSizeOfListEntry", wt.UINT),
2625
                    ("nNumDetectedFaces", wt.UINT),
2626
                    ("nNumListElements", wt.UINT),
2627
                    ("nReserved", wt.UINT * 4),
2628
                    ("FaceEntry", FDT_INFO_EL * nNumListElements)]
2629
    a_list = FDT_INFO_LIST()
2630
    a_list.nNumListElements = nNumListElements
2631
    return a_list
2632
2633
FDT_CMD_GET_CAPABILITIES        = 0    #  Get the capabilities for face detection.
2634
FDT_CMD_SET_DISABLE             = 1    #  Disable face detection.
2635
FDT_CMD_SET_ENABLE              = 2    #  Enable face detection.
2636
FDT_CMD_SET_SEARCH_ANGLE        = 3    #  Set the search angle.
2637
FDT_CMD_GET_SEARCH_ANGLE        = 4    #  Get the search angle parameter.
2638
FDT_CMD_SET_SEARCH_ANGLE_ENABLE = 5    #  Enable search angle.
2639
FDT_CMD_SET_SEARCH_ANGLE_DISABLE= 6    #  Enable search angle.
2640
FDT_CMD_GET_SEARCH_ANGLE_ENABLE = 7    #  Get the current setting of search angle enable.
2641
FDT_CMD_SET_SEARCH_AOI          = 8    #  Set the search AOI.
2642
FDT_CMD_GET_SEARCH_AOI          = 9    #  Get the search AOI.
2643
FDT_CMD_GET_FACE_LIST           = 10   #  Get a list with detected faces.
2644
FDT_CMD_GET_NUMBER_FACES        = 11   #  Get the number of detected faces.
2645
FDT_CMD_SET_SUSPEND             = 12   #  Keep the face detection result of that moment.
2646
FDT_CMD_SET_RESUME              = 13   #  Continue with the face detection.
2647
FDT_CMD_GET_MAX_NUM_FACES       = 14   #  Get the maximum number of faces that can be detected once.
2648
FDT_CMD_SET_INFO_MAX_NUM_OVL    = 15   #  Set the maximum number of overlays displayed.
2649
FDT_CMD_GET_INFO_MAX_NUM_OVL    = 16   #  Get the setting 'maximum number of overlays displayed'.
2650
FDT_CMD_SET_INFO_OVL_LINE_WIDTH = 17   #  Set the overlay line width.
2651
FDT_CMD_GET_INFO_OVL_LINE_WIDTH = 18   #  Get the overlay line width.
2652
FDT_CMD_GET_ENABLE              = 19   #  Face detection enabled?.
2653
FDT_CMD_GET_SUSPEND             = 20    #  Face detection suspended?.
2654
2655
FOC_CAP_INVALID             = 0
2656
FOC_CAP_AUTOFOCUS_SUPPORTED = 0x00000001   #  Auto focus supported.
2657
FOC_CAP_MANUAL_SUPPORTED    = 0x00000002   #  Manual focus supported.
2658
FOC_CAP_GET_DISTANCE        = 0x00000004   #  Support for query the distance of the focused object.
2659
FOC_CAP_SET_AUTOFOCUS_RANGE = 0x00000008    #  Support for setting focus ranges.
2660
2661
FOC_RANGE_NORMAL            = 0x00000001   #  Normal focus range(without Macro).
2662
FOC_RANGE_ALLRANGE          = 0x00000002   #  Allrange (macro to Infinity).
2663
FOC_RANGE_MACRO             = 0x00000004    #  Macro (only macro).
2664
2665
FOC_CMD_GET_CAPABILITIES        = 0   #  Get focus capabilities.
2666
FOC_CMD_SET_DISABLE_AUTOFOCUS   = 1    #  Disable autofocus.
2667
FOC_CMD_SET_ENABLE_AUTOFOCUS    = 2    #  Enable autofocus.
2668
FOC_CMD_GET_AUTOFOCUS_ENABLE    = 3    #  Autofocus enabled?.
2669
FOC_CMD_SET_AUTOFOCUS_RANGE     = 4    #  Preset autofocus range.
2670
FOC_CMD_GET_AUTOFOCUS_RANGE     = 5    #  Get preset of autofocus range.
2671
FOC_CMD_GET_DISTANCE            = 6    #  Get distance to focused object.
2672
FOC_CMD_SET_MANUAL_FOCUS        = 7    #  Set manual focus.
2673
FOC_CMD_GET_MANUAL_FOCUS        = 8    #  Get the value for manual focus.
2674
FOC_CMD_GET_MANUAL_FOCUS_MIN    = 9    #  Get the minimum manual focus value.
2675
FOC_CMD_GET_MANUAL_FOCUS_MAX    = 10   #  Get the maximum manual focus value.
2676
FOC_CMD_GET_MANUAL_FOCUS_INC    = 11    #  Get the increment of the manual focus value.
2677
2678
IMGSTAB_CAP_INVALID                         = 0
2679
IMGSTAB_CAP_IMAGE_STABILIZATION_SUPPORTED   = 0x00000001    #  Image stabilization supported.
2680
2681
IMGSTAB_CMD_GET_CAPABILITIES        = 0    #  Get the capabilities for image stabilization.
2682
IMGSTAB_CMD_SET_DISABLE                 = 1    #  Disable image stabilization.
2683
IMGSTAB_CMD_SET_ENABLE                  = 2    #  Enable image stabilization.
2684
IMGSTAB_CMD_GET_ENABLE              = 3     #  Image stabilization enabled?
2685
2686
SCENE_CMD_GET_SUPPORTED_PRESETS = 1#  Get the supported scene presets
2687
SCENE_CMD_SET_PRESET            = 2#  Set the scene preset
2688
SCENE_CMD_GET_PRESET            = 3#  Get the current sensor scene preset
2689
SCENE_CMD_GET_DEFAULT_PRESET    = 4 #  Get the default sensor scene preset
2690
2691
SCENE_INVALID             = 0
2692
SCENE_SENSOR_AUTOMATIC    = 0x00000001
2693
SCENE_SENSOR_PORTRAIT     = 0x00000002
2694
SCENE_SENSOR_SUNNY        = 0x00000004
2695
SCENE_SENSOR_ENTERTAINMENT        = 0x00000008
2696
SCENE_SENSOR_NIGHT        = 0x00000010
2697
SCENE_SENSOR_SPORTS       = 0x00000040
2698
SCENE_SENSOR_LANDSCAPE    = 0x00000080
2699
2700
ZOOM_CMD_GET_CAPABILITIES               = 0#  Get the zoom capabilities.
2701
ZOOM_CMD_DIGITAL_GET_NUM_LIST_ENTRIES   = 1#  Get the number of list entries.
2702
ZOOM_CMD_DIGITAL_GET_LIST               = 2#  Get a list of supported zoom factors.
2703
ZOOM_CMD_DIGITAL_SET_VALUE              = 3#  Set the digital zoom factor zoom factors.
2704
ZOOM_CMD_DIGITAL_GET_VALUE              = 4 #  Get a current digital zoom factor.
2705
2706
ZOOM_CAP_INVALID        = 0
2707
ZOOM_CAP_DIGITAL_ZOOM   = 0x00001
2708
2709
SHARPNESS_CMD_GET_CAPABILITIES          = 0 #  Get the sharpness capabilities
2710
SHARPNESS_CMD_GET_VALUE                 = 1 #  Get the current sharpness value
2711
SHARPNESS_CMD_GET_MIN_VALUE             = 2 #  Get the minimum sharpness value
2712
SHARPNESS_CMD_GET_MAX_VALUE             = 3 #  Get the maximum sharpness value
2713
SHARPNESS_CMD_GET_INCREMENT             = 4 #  Get the sharpness increment
2714
SHARPNESS_CMD_GET_DEFAULT_VALUE         = 5 #  Get the default sharpness value
2715
SHARPNESS_CMD_SET_VALUE                 = 6  #  Set the sharpness value
2716
2717
SHARPNESS_CAP_INVALID                   = 0x0000
2718
SHARPNESS_CAP_SHARPNESS_SUPPORTED       = 0x0001
2719
2720
SATURATION_CMD_GET_CAPABILITIES         = 0 #  Get the saturation capabilities
2721
SATURATION_CMD_GET_VALUE                = 1 #  Get the current saturation value
2722
SATURATION_CMD_GET_MIN_VALUE            = 2 #  Get the minimum saturation value
2723
SATURATION_CMD_GET_MAX_VALUE            = 3 #  Get the maximum saturation value
2724
SATURATION_CMD_GET_INCREMENT            = 4 #  Get the saturation increment
2725
SATURATION_CMD_GET_DEFAULT              = 5 #  Get the default saturation value
2726
SATURATION_CMD_SET_VALUE                = 6  #  Set the saturation value
2727
2728
2729
SATURATION_CAP_INVALID                  = 0x0000
2730
SATURATION_CAP_SATURATION_SUPPORTED     = 0x0001
2731
2732
TRIGGER_DEBOUNCE_MODE_NONE              = 0x0000
2733
TRIGGER_DEBOUNCE_MODE_FALLING_EDGE      = 0x0001
2734
TRIGGER_DEBOUNCE_MODE_RISING_EDGE       = 0x0002
2735
TRIGGER_DEBOUNCE_MODE_BOTH_EDGES        = 0x0004
2736
TRIGGER_DEBOUNCE_MODE_AUTOMATIC         = 0x0008
2737
2738
TRIGGER_DEBOUNCE_CMD_SET_MODE                   = 0 #  Set a new trigger debounce mode
2739
TRIGGER_DEBOUNCE_CMD_SET_DELAY_TIME             = 1 #  Set a new trigger debounce delay time
2740
TRIGGER_DEBOUNCE_CMD_GET_SUPPORTED_MODES        = 2 #  Get the supported modes
2741
TRIGGER_DEBOUNCE_CMD_GET_MODE                   = 3 #  Get the current trigger debounce mode
2742
TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME             = 4 #  Get the current trigger debounce delay time
2743
TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MIN         = 5 #  Get the minimum value for the trigger debounce delay time
2744
TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MAX         = 6 #  Get the maximum value for the trigger debounce delay time
2745
TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_INC         = 7 #  Get the increment of the trigger debounce delay time
2746
TRIGGER_DEBOUNCE_CMD_GET_MODE_DEFAULT           = 8 #  Get the default trigger debounce mode
2747
TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_DEFAULT     = 9 #  Get the default trigger debounce delay time
2748
2749
RGB_COLOR_MODEL_SRGB_D50        = 0x0001
2750
RGB_COLOR_MODEL_SRGB_D65        = 0x0002
2751
RGB_COLOR_MODEL_CIE_RGB_E       = 0x0004
2752
RGB_COLOR_MODEL_ECI_RGB_D50     = 0x0008
2753
RGB_COLOR_MODEL_ADOBE_RGB_D65   = 0x0010
2754
2755
COLOR_TEMPERATURE_CMD_SET_TEMPERATURE                   = 0 #  Set a new color temperature
2756
COLOR_TEMPERATURE_CMD_SET_RGB_COLOR_MODEL               = 1 #  Set a new RGB color model
2757
COLOR_TEMPERATURE_CMD_GET_SUPPORTED_RGB_COLOR_MODELS    = 2 #  Get the supported RGB color models
2758
COLOR_TEMPERATURE_CMD_GET_TEMPERATURE                   = 3 #  Get the current color temperature
2759
COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL               = 4 #  Get the current RGB color model
2760
COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MIN               = 5 #  Get the minimum value for the color temperature
2761
COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MAX               = 6 #  Get the maximum value for the color temperature
2762
COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_INC               = 7 #  Get the increment of the color temperature
2763
COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_DEFAULT           = 8 #  Get the default color temperature
2764
COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL_DEFAULT       = 9  #  Get the default RGB color model
2765
2766
class IS_POINT_2D(ctypes.Structure):
2767
    """
2768
    :var INT s32X:
2769
    :var INT s32Y:
2770
    """
2771
    _fields_ = [("s32X", wt.INT),
2772
                ("s32Y", wt.INT)]
2773
2774
class IS_SIZE_2D(ctypes.Structure):
2775
    """
2776
    :var INT s32Width:
2777
    :var INT s23Height:
2778
    """
2779
    _fields_ = [("s32Width", wt.INT),
2780
                ("s32Height", wt.INT)]
2781
2782
class IS_RECT(ctypes.Structure):
2783
    """
2784
    :var INT s32X:
2785
    :var INT s32Y:
2786
    :var INT s32Width:
2787
    :var INT s23Height:
2788
    """
2789
    _fields_ = [("s32X", wt.INT),
2790
                ("s32Y", wt.INT),
2791
                ("s32Width", wt.INT),
2792
                ("s32Height", wt.INT)]
2793
2794
class AOI_SEQUENCE_PARAMS(ctypes.Structure):
2795
    """
2796
    :var INT s32AOIIndex:
2797
    :var INT s32NumberOfCycleRepetitions:
2798
    :var INT s32X:
2799
    :var INT s32Y:
2800
    :var ctypes.c_double dblExposure:
2801
    :var INT s32Gain:
2802
    :var INT s32BinningMode:
2803
    :var INT s32SubsamplingMode:
2804
    :var INT s32DetachImageParameters:
2805
    :var ctypes.c_double dblScalerFactor:
2806
    :var BYTE[64] byReserved:
2807
    """
2808
    _fields_ = [("s32AOIIndex", wt.INT),
2809
                ("s32NumberOfCycleRepetitions", wt.INT),
2810
                ("s32X", wt.INT),
2811
                ("s32Y", wt.INT),
2812
                ("dblExposure", ctypes.c_double),
2813
                ("s32Gain", wt.INT),
2814
                ("s32BinningMode", wt.INT),
2815
                ("s32SubsamplingMode", wt.INT),
2816
                ("s32DetachImageParameters", wt.INT),
2817
                ("dblScalerFactor", ctypes.c_double),
2818
                ("byReserved", wt.BYTE * 64)]
2819
2820
IS_DEVICE_FEATURE_CMD_GET_SUPPORTED_FEATURES               = 1
2821
IS_DEVICE_FEATURE_CMD_SET_LINESCAN_MODE                    = 2
2822
IS_DEVICE_FEATURE_CMD_GET_LINESCAN_MODE                    = 3
2823
IS_DEVICE_FEATURE_CMD_SET_LINESCAN_NUMBER                  = 4
2824
IS_DEVICE_FEATURE_CMD_GET_LINESCAN_NUMBER                  = 5
2825
IS_DEVICE_FEATURE_CMD_SET_SHUTTER_MODE                     = 6
2826
IS_DEVICE_FEATURE_CMD_GET_SHUTTER_MODE                     = 7
2827
IS_DEVICE_FEATURE_CMD_SET_PREFER_XS_HS_MODE                = 8
2828
IS_DEVICE_FEATURE_CMD_GET_PREFER_XS_HS_MODE                = 9
2829
IS_DEVICE_FEATURE_CMD_GET_DEFAULT_PREFER_XS_HS_MODE        = 10
2830
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_DEFAULT                 = 11
2831
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE                         = 12
2832
IS_DEVICE_FEATURE_CMD_SET_LOG_MODE                         = 13
2833
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE_DEFAULT    = 14
2834
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE_RANGE      = 15
2835
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE            = 16
2836
IS_DEVICE_FEATURE_CMD_SET_LOG_MODE_MANUAL_VALUE            = 17
2837
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN_DEFAULT     = 18
2838
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN_RANGE       = 19
2839
IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN             = 20
2840
IS_DEVICE_FEATURE_CMD_SET_LOG_MODE_MANUAL_GAIN             = 21
2841
2842
IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_ROLLING                      = 0x00000001
2843
IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_GLOBAL                       = 0x00000002
2844
IS_DEVICE_FEATURE_CAP_LINESCAN_MODE_FAST                        = 0x00000004
2845
IS_DEVICE_FEATURE_CAP_LINESCAN_NUMBER                           = 0x00000008
2846
IS_DEVICE_FEATURE_CAP_PREFER_XS_HS_MODE                         = 0x00000010
2847
IS_DEVICE_FEATURE_CAP_LOG_MODE                                  = 0x00000020
2848
IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_ROLLING_GLOBAL_START         = 0x00000040
2849
IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_GLOBAL_ALTERNATIVE_TIMING    = 0x00000080
2850
2851
IS_LOG_MODE_FACTORY_DEFAULT    = 0
2852
IS_LOG_MODE_OFF                = 1
2853
IS_LOG_MODE_MANUAL             = 2
2854
2855
class RANGE_OF_VALUES_U32(ctypes.Structure):
2856
    """
2857
    :var UINT u32Minimum:
2858
    :var UINT u32Maximum:
2859
    :var UINT u32Increment:
2860
    :var UINT u32Default:
2861
    :var UINT u32Infinite:
2862
    """
2863
    _fields_ = [("u32Minimum", wt.UINT),
2864
                ("u32Maximum", wt.UINT),
2865
                ("u32Increment", wt.UINT),
2866
                ("u32Default", wt.UINT),
2867
                ("u32Infinite", wt.UINT)]
2868
2869
TRANSFER_CAP_IMAGEDELAY                     = 0x01
2870
TRANSFER_CAP_PACKETINTERVAL                 = 0x20
2871
2872
TRANSFER_CMD_QUERY_CAPABILITIES                 = 0
2873
TRANSFER_CMD_SET_IMAGEDELAY_US                  = 1000
2874
TRANSFER_CMD_SET_PACKETINTERVAL_US              = 1005
2875
TRANSFER_CMD_GET_IMAGEDELAY_US                  = 2000
2876
TRANSFER_CMD_GET_PACKETINTERVAL_US              = 2005
2877
TRANSFER_CMD_GETRANGE_IMAGEDELAY_US             = 3000
2878
TRANSFER_CMD_GETRANGE_PACKETINTERVAL_US         = 3005
2879
TRANSFER_CMD_SET_IMAGE_DESTINATION              = 5000
2880
TRANSFER_CMD_GET_IMAGE_DESTINATION              = 5001
2881
TRANSFER_CMD_GET_IMAGE_DESTINATION_CAPABILITIES = 5002
2882
2883
IS_TRANSFER_DESTINATION_DEVICE_MEMORY   = 1
2884
IS_TRANSFER_DESTINATION_USER_MEMORY     = 2
2885
2886
IS_BOOTBOOST_ID = wt.BYTE
2887
2888
IS_BOOTBOOST_ID_MIN   =  1
2889
IS_BOOTBOOST_ID_MAX   =  254
2890
IS_BOOTBOOST_ID_NONE  =  0
2891
IS_BOOTBOOST_ID_ALL   =  255
2892
2893
# class IS_BOOTBOOST_IDLIST(ctypes.Structure):
2894
    # _fields_ = [("u32NumberOfEntries", wt.DWORD),
2895
                # ("aList", ctypes.POINTER(IS_BOOTBOOST_ID))]
2896
def create_bootboost_idlist(numberOfEntries):
2897
    """Returns an instance of the IS_BOOTBOOST_IDLIST structure having the properly scaled *aList* array.
2898
2899
    :param ULONG numberOfEntries: Number of aList structures requested.
2900
    :returns: IS_BOOTBOOST_IDLIST
2901
2902
    :var DWORD u32NumberOfEntries:
2903
    :var IS_BOOTBOOST_ID[numberOfEntries] aList:
2904
    """
2905
    class IS_BOOTBOOST_IDLIST(ctypes.Structure):
2906
        _fields_ = [("u32NumberOfEntries", wt.DWORD),
2907
                    ("aList", IS_BOOTBOOST_ID * numberOfEntries)]
2908
    a_list = IS_BOOTBOOST_IDLIST()
2909
    a_list.u32NumberOfEntries = numberOfEntries
2910
    return a_list
2911
2912
IS_BOOTBOOST_IDLIST_HEADERSIZE  = (ctypes.sizeof(wt.DWORD))
2913
IS_BOOTBOOST_IDLIST_ELEMENTSIZE = (ctypes.sizeof(IS_BOOTBOOST_ID))
2914
2915
IS_BOOTBOOST_CMD_ENABLE             = 0x00010001
2916
IS_BOOTBOOST_CMD_DISABLE            = 0x00010011
2917
IS_BOOTBOOST_CMD_GET_ENABLED        = 0x20010021
2918
IS_BOOTBOOST_CMD_ADD_ID             = 0x10100001
2919
IS_BOOTBOOST_CMD_SET_IDLIST         = 0x10100005
2920
IS_BOOTBOOST_CMD_REMOVE_ID         = 0x10100011
2921
IS_BOOTBOOST_CMD_CLEAR_IDLIST       = 0x00100015
2922
IS_BOOTBOOST_CMD_GET_IDLIST        = 0x30100021
2923
IS_BOOTBOOST_CMD_GET_IDLIST_SIZE    = 0x20100022
2924
2925
IPCONFIG_CAP_PERSISTENT_IP_SUPPORTED    = 0x01
2926
IPCONFIG_CAP_AUTOCONFIG_IP_SUPPORTED    = 0x04
2927
2928
IPCONFIG_CMD_QUERY_CAPABILITIES         = 0
2929
IPCONFIG_CMD_SET_PERSISTENT_IP          = 0x01010000
2930
IPCONFIG_CMD_SET_AUTOCONFIG_IP          = 0x01040000
2931
IPCONFIG_CMD_SET_AUTOCONFIG_IP_BYDEVICE = 0x01040100
2932
IPCONFIG_CMD_GET_PERSISTENT_IP          = 0x02010000
2933
IPCONFIG_CMD_GET_AUTOCONFIG_IP          = 0x02040000
2934
IPCONFIG_CMD_GET_AUTOCONFIG_IP_BYDEVICE = 0x02040100
2935
2936
IS_CONFIG_CPU_IDLE_STATES_BIT_AC_VALUE         = 0x01 # !< Mains power
2937
IS_CONFIG_CPU_IDLE_STATES_BIT_DC_VALUE         = 0x02 # !< Battery power
2938
2939
IS_CONFIG_OPEN_MP_DISABLE                      = 0
2940
IS_CONFIG_OPEN_MP_ENABLE                       = 1
2941
2942
IS_CONFIG_INITIAL_PARAMETERSET_NONE            = 0
2943
IS_CONFIG_INITIAL_PARAMETERSET_1               = 1
2944
IS_CONFIG_INITIAL_PARAMETERSET_2               = 2
2945
2946
IS_CONFIG_CMD_GET_CAPABILITIES                         = 1 # !< Get supported configuration capabilities (bitmask of CONFIGURATION_CAPS)
2947
2948
IS_CONFIG_CPU_IDLE_STATES_CMD_GET_ENABLE               = 2 # !< Get the current CPU idle states enable state (bitmask of CONFIGURATION_SEL)
2949
IS_CONFIG_CPU_IDLE_STATES_CMD_SET_DISABLE_ON_OPEN      = 4 # !< Disable migration to other CPU idle states (other than C0) if the first USB camera is being opened
2950
IS_CONFIG_CPU_IDLE_STATES_CMD_GET_DISABLE_ON_OPEN      = 5 # !< Get the current setting of the command IS_CPU_IDLE_STATES_CMD_SET_DISABLE_ON_OPEN
2951
2952
IS_CONFIG_OPEN_MP_CMD_GET_ENABLE                       = 6
2953
IS_CONFIG_OPEN_MP_CMD_SET_ENABLE                       = 7
2954
IS_CONFIG_OPEN_MP_CMD_GET_ENABLE_DEFAULT               = 8
2955
2956
IS_CONFIG_INITIAL_PARAMETERSET_CMD_SET                 = 9
2957
IS_CONFIG_INITIAL_PARAMETERSET_CMD_GET                 = 10
2958
2959
IS_CONFIG_CPU_IDLE_STATES_CAP_SUPPORTED                = 0x00000001 # !< CPU idle state commands are supported by the SDK
2960
IS_CONFIG_OPEN_MP_CAP_SUPPORTED                        = 0x00000002 # !< Open MP commands are supported by the SDK
2961
IS_CONFIG_INITIAL_PARAMETERSET_CAP_SUPPORTED           = 0x00000004  # !< Initial parameter set commands are supported by the SDK
2962
2963
IS_EXPOSURE_CMD_GET_CAPS                        = 1
2964
IS_EXPOSURE_CMD_GET_EXPOSURE_DEFAULT            = 2
2965
IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_MIN          = 3
2966
IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_MAX          = 4
2967
IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_INC          = 5
2968
IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE              = 6
2969
IS_EXPOSURE_CMD_GET_EXPOSURE                    = 7
2970
IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_MIN    = 8
2971
IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_MAX    = 9
2972
IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_INC    = 10
2973
IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE        = 11
2974
IS_EXPOSURE_CMD_SET_EXPOSURE                    = 12
2975
IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_MIN     = 13
2976
IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_MAX     = 14
2977
IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_INC     = 15
2978
IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE         = 16
2979
IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_ENABLE        = 17
2980
IS_EXPOSURE_CMD_SET_LONG_EXPOSURE_ENABLE        = 18
2981
IS_EXPOSURE_CMD_GET_DUAL_EXPOSURE_RATIO         = 19
2982
IS_EXPOSURE_CMD_SET_DUAL_EXPOSURE_RATIO         = 20
2983
2984
IS_EXPOSURE_CAP_EXPOSURE                        = 0x00000001
2985
IS_EXPOSURE_CAP_FINE_INCREMENT                  = 0x00000002
2986
IS_EXPOSURE_CAP_LONG_EXPOSURE                   = 0x00000004
2987
IS_EXPOSURE_CAP_DUAL_EXPOSURE                   = 0x00000008
2988
2989
IS_TRIGGER_CMD_GET_BURST_SIZE_SUPPORTED     = 1
2990
IS_TRIGGER_CMD_GET_BURST_SIZE_RANGE         = 2
2991
IS_TRIGGER_CMD_GET_BURST_SIZE               = 3
2992
IS_TRIGGER_CMD_SET_BURST_SIZE               = 4
2993
2994
class IO_FLASH_PARAMS(ctypes.Structure):
2995
    """
2996
    :var INT s32Delay:
2997
    :var UINT u32Duration:
2998
    """
2999
    _fields_ = [("s32Delay", wt.INT),
3000
                ("u32Duration", wt.UINT)]
3001
3002
class IO_PWM_PARAMS(ctypes.Structure):
3003
    """
3004
    :var ctypes.c_double dblFrequency_Hz:
3005
    :var ctypes.c_double dblDutyCycle:
3006
    """
3007
    _fields_ = [("dblFrequency_Hz", ctypes.c_double),
3008
                ("dblDutyCycle", ctypes.c_double)]
3009
3010
class IO_GPIO_CONFIGURATION(ctypes.Structure):
3011
    """
3012
    :var UINT u32Gpio:
3013
    :var UINT u32Caps:
3014
    :var UINT u32Configuration:
3015
    :var UINT u32State:
3016
    :var UINT[12] u32Reserved:
3017
    """
3018
    _fields_ = [("u32Gpio", wt.UINT),
3019
                ("u32Caps", wt.UINT),
3020
                ("u32Configuration", wt.UINT),
3021
                ("u32State", wt.UINT),
3022
                ("u32Reserved", wt.UINT * 12)]
3023
3024
IO_LED_STATE_1                    =  0
3025
IO_LED_STATE_2                    =  1
3026
3027
IO_FLASH_MODE_OFF                 =  0
3028
IO_FLASH_MODE_TRIGGER_LO_ACTIVE   =  1
3029
IO_FLASH_MODE_TRIGGER_HI_ACTIVE   =  2
3030
IO_FLASH_MODE_CONSTANT_HIGH       =  3
3031
IO_FLASH_MODE_CONSTANT_LOW        =  4
3032
IO_FLASH_MODE_FREERUN_LO_ACTIVE   =  5
3033
IO_FLASH_MODE_FREERUN_HI_ACTIVE   =  6
3034
3035
IS_FLASH_MODE_PWM                 =  0x8000
3036
IO_FLASH_MODE_GPIO_1              =  0x0010
3037
IO_FLASH_MODE_GPIO_2              =  0x0020
3038
IO_FLASH_MODE_GPIO_3              =  0x0040
3039
IO_FLASH_MODE_GPIO_4              =  0x0080
3040
IO_FLASH_GPIO_PORT_MASK           =  (IO_FLASH_MODE_GPIO_1 | IO_FLASH_MODE_GPIO_2 | IO_FLASH_MODE_GPIO_3 | IO_FLASH_MODE_GPIO_4)
3041
3042
IO_GPIO_1                         =  0x0001
3043
IO_GPIO_2                         =  0x0002
3044
IO_GPIO_3                         =  0x0004
3045
IO_GPIO_4                         =  0x0008
3046
3047
IS_GPIO_INPUT                     =  0x0001
3048
IS_GPIO_OUTPUT                    =  0x0002
3049
IS_GPIO_FLASH                     =  0x0004
3050
IS_GPIO_PWM                       =  0x0008
3051
IS_GPIO_COMPORT_RX                =  0x0010
3052
IS_GPIO_COMPORT_TX                =  0x0020
3053
3054
3055
IS_IO_CMD_GPIOS_GET_SUPPORTED               = 1
3056
IS_IO_CMD_GPIOS_GET_SUPPORTED_INPUTS        = 2
3057
IS_IO_CMD_GPIOS_GET_SUPPORTED_OUTPUTS       = 3
3058
IS_IO_CMD_GPIOS_GET_DIRECTION               = 4
3059
IS_IO_CMD_GPIOS_SET_DIRECTION               = 5
3060
IS_IO_CMD_GPIOS_GET_STATE                   = 6
3061
IS_IO_CMD_GPIOS_SET_STATE                   = 7
3062
IS_IO_CMD_LED_GET_STATE                     = 8
3063
IS_IO_CMD_LED_SET_STATE                     = 9
3064
IS_IO_CMD_LED_TOGGLE_STATE                  = 10
3065
IS_IO_CMD_FLASH_GET_GLOBAL_PARAMS           = 11
3066
IS_IO_CMD_FLASH_APPLY_GLOBAL_PARAMS         = 12
3067
IS_IO_CMD_FLASH_GET_SUPPORTED_GPIOS         = 13
3068
IS_IO_CMD_FLASH_GET_PARAMS_MIN              = 14
3069
IS_IO_CMD_FLASH_GET_PARAMS_MAX              = 15
3070
IS_IO_CMD_FLASH_GET_PARAMS_INC              = 16
3071
IS_IO_CMD_FLASH_GET_PARAMS                  = 17
3072
IS_IO_CMD_FLASH_SET_PARAMS                  = 18
3073
IS_IO_CMD_FLASH_GET_MODE                    = 19
3074
IS_IO_CMD_FLASH_SET_MODE                    = 20
3075
IS_IO_CMD_PWM_GET_SUPPORTED_GPIOS           = 21
3076
IS_IO_CMD_PWM_GET_PARAMS_MIN                = 22
3077
IS_IO_CMD_PWM_GET_PARAMS_MAX                = 23
3078
IS_IO_CMD_PWM_GET_PARAMS_INC                = 24
3079
IS_IO_CMD_PWM_GET_PARAMS                    = 25
3080
IS_IO_CMD_PWM_SET_PARAMS                    = 26
3081
IS_IO_CMD_PWM_GET_MODE                      = 27
3082
IS_IO_CMD_PWM_SET_MODE                      = 28
3083
IS_IO_CMD_GPIOS_GET_CONFIGURATION           = 29
3084
IS_IO_CMD_GPIOS_SET_CONFIGURATION           = 30
3085
IS_IO_CMD_FLASH_GET_GPIO_PARAMS_MIN         = 31
3086
IS_IO_CMD_FLASH_SET_GPIO_PARAMS             = 32
3087
3088
IS_AWB_CMD_GET_SUPPORTED_TYPES              = 1
3089
IS_AWB_CMD_GET_TYPE                         = 2
3090
IS_AWB_CMD_SET_TYPE                         = 3
3091
IS_AWB_CMD_GET_ENABLE                       = 4
3092
IS_AWB_CMD_SET_ENABLE                       = 5
3093
IS_AWB_CMD_GET_SUPPORTED_RGB_COLOR_MODELS   = 6
3094
IS_AWB_CMD_GET_RGB_COLOR_MODEL              = 7
3095
IS_AWB_CMD_SET_RGB_COLOR_MODEL              = 8
3096
3097
IS_AWB_GREYWORLD           =     0x0001
3098
IS_AWB_COLOR_TEMPERATURE   =     0x0002
3099
3100
IS_AUTOPARAMETER_DISABLE    =         0
3101
IS_AUTOPARAMETER_ENABLE      =        1
3102
IS_AUTOPARAMETER_ENABLE_RUNONCE =     2
3103
3104
class BUFFER_CONVERSION_PARAMS(ctypes.Structure):
3105
    """
3106
    :var ctypes.c_char_p pSourceBuffer:
3107
    :var ctypes.c_char_p pDestBuffer:
3108
    :var INT nDestPixelFormat:
3109
    :var INT nDestPixelConverter:
3110
    :var INT nDestGamma:
3111
    :var INT nDestEdgeEnhancement:
3112
    :var INT nDestColorCorrectionMode:
3113
    :var INT nDestSaturationU:
3114
    :var INT nDestSaturationV:
3115
    :var BYTE[32] reserved:
3116
    """
3117
    _fields_ = [("pSourceBuffer", ctypes.c_char_p),
3118
                ("pDestBuffer", ctypes.c_char_p),
3119
                ("nDestPixelFormat", wt.INT),
3120
                ("nDestPixelConverter", wt.INT),
3121
                ("nDestGamma", wt.INT),
3122
                ("nDestEdgeEnhancement", wt.INT),
3123
                ("nDestColorCorrectionMode", wt.INT),
3124
                ("nDestSaturationU", wt.INT),
3125
                ("nDestSaturationV", wt.INT),
3126
                ("reserved", wt.BYTE * 32)]
3127
3128
3129
IS_CONVERT_CMD_APPLY_PARAMS_AND_CONVERT_BUFFER = 1
3130
3131
IS_PARAMETERSET_CMD_LOAD_EEPROM               = 1
3132
IS_PARAMETERSET_CMD_LOAD_FILE                 = 2
3133
IS_PARAMETERSET_CMD_SAVE_EEPROM               = 3
3134
IS_PARAMETERSET_CMD_SAVE_FILE                 = 4
3135
IS_PARAMETERSET_CMD_GET_NUMBER_SUPPORTED      = 5
3136
3137
IS_EDGE_ENHANCEMENT_CMD_GET_RANGE   = 1
3138
IS_EDGE_ENHANCEMENT_CMD_GET_DEFAULT = 2
3139
IS_EDGE_ENHANCEMENT_CMD_GET         = 3
3140
IS_EDGE_ENHANCEMENT_CMD_SET         = 4
3141
3142
IS_PIXELCLOCK_CMD_GET_NUMBER    = 1
3143
IS_PIXELCLOCK_CMD_GET_LIST      = 2
3144
IS_PIXELCLOCK_CMD_GET_RANGE     = 3
3145
IS_PIXELCLOCK_CMD_GET_DEFAULT   = 4
3146
IS_PIXELCLOCK_CMD_GET           = 5
3147
IS_PIXELCLOCK_CMD_SET           = 6
3148
3149
class IMAGE_FILE_PARAMS(ctypes.Structure):
3150
    """
3151
    :var ctypes.c_wchar_p pwchFileName:
3152
    :var UINT nFileType:
3153
    :var UINT nQuality:
3154
    :var ctypes.POINTER(ctypes.c_char_p) ppcImageMem:
3155
    :var ctypes.POINTER(wt.UINT) pnImageID:
3156
    :var BYTE[32] reserved:
3157
    """
3158
    _fields_ = [("pwchFileName", ctypes.c_wchar_p),
3159
                ("nFileType", wt.UINT),
3160
                ("nQuality", wt.UINT),
3161
                ("ppcImageMem", ctypes.POINTER(ctypes.c_char_p)),
3162
                ("pnImageID", ctypes.POINTER(wt.UINT)),
3163
                ("reserved", wt.BYTE * 32)]
3164
3165
IS_IMAGE_FILE_CMD_LOAD    = 1
3166
IS_IMAGE_FILE_CMD_SAVE    = 2
3167
3168
class IS_RANGE_S32(ctypes.Structure):
3169
    """
3170
    :var INT s32Min:
3171
    :var INT s32Max:
3172
    :var INT s32Inc:
3173
    """
3174
    _fields_ = [("s32Min", wt.INT),
3175
                ("s32Max", wt.INT),
3176
                ("s32Inc", wt.INT)]
3177
3178
IS_AUTO_BLACKLEVEL_OFF = 0
3179
IS_AUTO_BLACKLEVEL_ON  = 1
3180
3181
IS_BLACKLEVEL_CAP_SET_AUTO_BLACKLEVEL   = 1
3182
IS_BLACKLEVEL_CAP_SET_OFFSET            = 2
3183
3184
IS_BLACKLEVEL_CMD_GET_CAPS           = 1
3185
IS_BLACKLEVEL_CMD_GET_MODE_DEFAULT   = 2
3186
IS_BLACKLEVEL_CMD_GET_MODE           = 3
3187
IS_BLACKLEVEL_CMD_SET_MODE           = 4
3188
IS_BLACKLEVEL_CMD_GET_OFFSET_DEFAULT = 5
3189
IS_BLACKLEVEL_CMD_GET_OFFSET_RANGE   = 6
3190
IS_BLACKLEVEL_CMD_GET_OFFSET         = 7
3191
IS_BLACKLEVEL_CMD_SET_OFFSET         = 8
3192
3193
class MEASURE_SHARPNESS_AOI_INFO(ctypes.Structure):
3194
    """
3195
    :var UINT u32NumberAOI:
3196
    :var UINT u32SharpnessValue:
3197
    :var IS_RECT rcAOI:
3198
    """
3199
    _fields_ = [("u32NumberAOI", wt.UINT),
3200
                ("u32SharpnessValue", wt.UINT),
3201
                ("rcAOI", IS_RECT)]
3202
3203
IS_MEASURE_CMD_SHARPNESS_AOI_SET        = 1
3204
IS_MEASURE_CMD_SHARPNESS_AOI_INQUIRE    = 2
3205
IS_MEASURE_CMD_SHARPNESS_AOI_SET_PRESET = 3
3206
3207
IS_MEASURE_SHARPNESS_AOI_PRESET_1 = 1
3208
3209
IS_IMGBUF_DEVMEM_CMD_GET_AVAILABLE_ITERATIONS      = 1
3210
IS_IMGBUF_DEVMEM_CMD_GET_ITERATION_INFO            = 2
3211
IS_IMGBUF_DEVMEM_CMD_TRANSFER_IMAGE                = 3
3212
IS_IMGBUF_DEVMEM_CMD_RELEASE_ITERATIONS            = 4
3213
3214
class ID_RANGE(ctypes.Structure):
3215
    """
3216
    :var UINT u32First:
3217
    :var UINT u32Last:
3218
    """
3219
    _fields_ = [("u32First", wt.UINT),
3220
                ("u32Last", wt.UINT)]
3221
3222
class IMGBUF_ITERATION_INFO(ctypes.Structure):
3223
    """
3224
    :var UINT u32IterationID:
3225
    :var ID_RANGE rangeImageID:
3226
    :var BYTE[52] bReserved:
3227
    """
3228
    _fields_ = [("u32IterationID", wt.UINT),
3229
                ("rangeImageID", ID_RANGE),
3230
                ("bReserved", wt.BYTE * 52)]
3231
3232
class IMGBUF_ITERATION_INFO(ctypes.Structure):
3233
    """
3234
    :var UINT u32IterationID:
3235
    :var UINT u32ImageID:
3236
    """
3237
    _fields_ = [("u32IterationID", wt.UINT),
3238
                ("u32ImageID", wt.UINT)]
3239