source: pacpusframework/branches/2.0-beta1/include/extlib/uEye/uEye.cs@ 89

Last change on this file since 89 was 89, checked in by morasjul, 11 years ago

PACPUS 2.0 Beta deployed in new branch

Major changes:
-Add communication interface between components
-Add examples for communications interface (TestComponents)
-Move to Qt5 support

  • Property svn:executable set to *
File size: 194.7 KB
Line 
1//==========================================================================//
2// //
3// C# - Interfaceclass for uEye Camera family //
4// //
5// Copyright (C) 2005 - 2010 //
6// IDS - Imaging Development Systems GmbH //
7// Dimbacher Str. 6-8 //
8// D-74182 Obersulm-Willsbach //
9// //
10// The information in this document is subject to change without //
11// notice and should not be construed as a commitment by IDS Imaging GmbH. //
12// IDS Imaging GmbH does not assume any responsibility for any errors //
13// that may appear in this document. //
14// //
15// This document, or source code, is provided solely as an example //
16// of how to utilize IDS software libraries in a sample application. //
17// IDS Imaging GmbH does not assume any responsibility for the use or //
18// reliability of any portion of this document or the described software. //
19// //
20// General permission to copy or modify, but not for profit, is hereby //
21// granted, provided that the above copyright notice is included and //
22// included and reference made to the fact that reproduction privileges //
23// were granted by IDS Imaging GmbH. //
24// //
25// IDS cannot assume any responsibility for the use, or misuse, of any //
26// portion or misuse, of any portion of this software for other than its //
27// intended diagnostic purpose in calibrating and testing IDS manufactured //
28// image processing boards and software. //
29// //
30//==========================================================================//
31
32
33using System;
34using System.Runtime.InteropServices;
35using System.Drawing;
36using System.Collections;
37using System.ComponentModel;
38using System.Windows.Forms;
39using System.Data;
40using System.Text;
41
42/// <summary>
43/// Zusammenfassung für uEye.
44/// </summary>
45public class uEye
46{
47 // ----------------------------------------Driver name-----------------------------------------
48 //
49#if _WIN64
50 public const string DRIVER_DLL_NAME = "ueye_api_64.dll";
51#else
52 public const string DRIVER_DLL_NAME = "ueye_api.dll";
53#endif
54
55 // ----------------------------------------Color modes-----------------------------------------
56 //
57 public const int IS_COLORMODE_INVALID = 0;
58 public const int IS_COLORMODE_MONOCHROME = 1;
59 public const int IS_COLORMODE_BAYER = 2;
60 public const int IS_COLORMODE_CBYCRY = 4;
61 //
62 // --------------------------------------------------------------------------------------------
63
64
65 // ----------------------------------------Sensor Types----------------------------------------
66 //
67 public const int IS_SENSOR_INVALID = 0x0;
68
69 // CMOS Sensors
70 public const int IS_SENSOR_UI141X_M = 0x1; // VGA rolling shutter - VGA monochrome
71 public const int IS_SENSOR_UI141X_C = 0x2; // VGA rolling shutter - VGA color
72 public const int IS_SENSOR_UI144X_M = 0x3; // SXGA rolling shutter - SXGA monochrome
73 public const int IS_SENSOR_UI144X_C = 0x4; // SXGA rolling shutter - SXGA color
74
75 public const int IS_SENSOR_UI145X_C = 0x8; // UXGA rolling shutter - UXGA color
76 public const int IS_SENSOR_UI146X_C = 0xA; // QXGA rolling shutter - QXGA color
77 public const int IS_SENSOR_UI148X_M = 0xB; // 5MP rolling shutter, monochrome
78 public const int IS_SENSOR_UI148X_C = 0xC; // 5MP rolling shutter, color
79 public const int IS_SENSOR_UI149X_M = 0x3E; // 10MP rolling shutter, monochrome
80 public const int IS_SENSOR_UI149X_C = 0x3F; // 10MP rolling shutter, color
81
82 public const int IS_SENSOR_UI121X_M = 0x10; // VGA global shutter - VGA monochrome
83 public const int IS_SENSOR_UI121X_C = 0x11; // VGA global shutter - VGA color
84 public const int IS_SENSOR_UI122X_M = 0x12; // VGA global shutter - VGA monochrome
85 public const int IS_SENSOR_UI122X_C = 0x13; // VGA global shutter - VGA color
86
87 public const int IS_SENSOR_UI164X_C = 0x15; // SXGA rolling shutter - SXGA color
88 public const int IS_SENSOR_UI155X_C = 0x17; // UXGA rolling shutter - UXGA color
89
90 public const int IS_SENSOR_UI1225_M = 0x22; // WVGA global shutter - WVGA monochrome, LE model
91 public const int IS_SENSOR_UI1225_C = 0x23; // WVGA global shutter - WVGA color, LE model
92
93 public const int IS_SENSOR_UI1645_C = 0x25; // SXGA rolling shutter - SXGA color, LE model
94 public const int IS_SENSOR_UI1555_C = 0x27; // UXGA rolling shutter - SXGA color, LE model
95 public const int IS_SENSOR_UI1545_M = 0x28; // SXGA rolling shutter, monochrome, LE model
96 public const int IS_SENSOR_UI1545_C = 0x29; // SXGA rolling shutter, color, LE model
97 public const int IS_SENSOR_UI1455_C = 0x2B; // UXGA rolling shutter, color, LE model
98 public const int IS_SENSOR_UI1465_C = 0x2D; // QXGA rolling shutter, color, LE model
99 public const int IS_SENSOR_UI1485_M = 0x2E; // 5MP rolling shutter, monochrome, LE model
100 public const int IS_SENSOR_UI1485_C = 0x2F; // 5MP rolling shutter, color, LE model
101 public const int IS_SENSOR_UI1495_M = 0x40; // 10MP rolling shutter, monochrome, LE model
102 public const int IS_SENSOR_UI1495_C = 0x41; // 10MP rolling shutter, color, LE model
103
104 public const int IS_SENSOR_UI112X_M = 0x4A; // 0768x576, HDR sensor, monochrome
105 public const int IS_SENSOR_UI112X_C = 0x4B; // 0768x576, HDR sensor, color
106
107 public const int IS_SENSOR_UI1008_M = 0x4C;
108 public const int IS_SENSOR_UI1008_C = 0x4D;
109
110 public const int IS_SENSOR_UI1240_M = 0x50; // SXGA global shutter, monochrome
111 public const int IS_SENSOR_UI1240_C = 0x51; // SXGA global shutter, color
112
113 public const int IS_SENSOR_UI154X_M = 0x30; // SXGA rolling shutter - SXGA monochrome
114 public const int IS_SENSOR_UI154X_C = 0x31; // SXGA rolling shutter - SXGA color
115 public const int IS_SENSOR_UI1543_M = 0x32; // SXGA rolling shutter - SXGA monochrome
116 public const int IS_SENSOR_UI1543_C = 0x33; // SXGA rolling shutter - SXGA color
117
118 public const int IS_SENSOR_UI1453_C = 0x35; // UXGA rolling shutter - UXGA color
119 public const int IS_SENSOR_UI1463_C = 0x37; // QXGA rolling shutter - QXGA monochrome
120 public const int IS_SENSOR_UI1483_M = 0x38; // 5MP rolling shutter, monochrome, single board
121 public const int IS_SENSOR_UI1483_C = 0x39; // 5MP rolling shutter, color, single board
122 public const int IS_SENSOR_UI1493_M = 0x4E; // 10MP rolling shutter, monochrome, single board
123 public const int IS_SENSOR_UI1493_C = 0x4F; // 10MP rolling shutter, color, single board
124 public const int IS_SENSOR_UI1544_C = 0x3B; // SXGA rolling shutter, color, single board
125
126 public const int IS_SENSOR_UI1543_M_WO = 0x3C; // SXGA rolling shutter, color, single board
127 public const int IS_SENSOR_UI1543_C_WO = 0x3D; // SXGA rolling shutter, color, single board
128 public const int IS_SENSOR_UI1463_M_WO = 0x44; // QXGA rolling shutter, monochrome, single board
129 public const int IS_SENSOR_UI1463_C_WO = 0x45; // QXGA rolling shutter, color, single board
130
131 public const int IS_SENSOR_UI1553_C_WN = 0x47; // UXGA rolling shutter, color, single board
132 public const int IS_SENSOR_UI1483_M_WO = 0x48; // QSXGA rolling shutter, monochrome, single board
133 public const int IS_SENSOR_UI1483_C_WO = 0x49; // QSXGA rolling shutter, color, single board
134
135
136 // CCD Sensors
137 public const int IS_SENSOR_UI223X_M = 0x80; // Sony CCD sensor - XGA monochrome
138 public const int IS_SENSOR_UI223X_C = 0x81; // Sony CCD sensor - XGA color
139
140 public const int IS_SENSOR_UI241X_M = 0x82; // Sony CCD sensor - VGA monochrome
141 public const int IS_SENSOR_UI241X_C = 0x83; // Sony CCD sensor - VGA color
142
143 public const int IS_SENSOR_UI234X_M = 0x84; // Sony CCD sensor - SXGA monochrome
144 public const int IS_SENSOR_UI234X_C = 0x85; // Sony CCD sensor - SXGA color
145
146 public const int IS_SENSOR_UI233X_M = 0x86; // Kodak CCD sensor - 1MP mono
147 public const int IS_SENSOR_UI233X_C = 0x87; // Kodak CCD sensor - 1MP color
148
149 public const int IS_SENSOR_UI221X_M = 0x88; // Sony CCD sensor - VGA monochrome
150 public const int IS_SENSOR_UI221X_C = 0x89; // Sony CCD sensor - VGA color
151
152 public const int IS_SENSOR_UI231X_M = 0x90; // Sony CCD sensor - VGA monochrome
153 public const int IS_SENSOR_UI231X_C = 0x91; // Sony CCD sensor - VGA color
154
155 public const int IS_SENSOR_UI222X_M = 0x92; // Sony CCD sensor - CCIR / PAL monochrome
156 public const int IS_SENSOR_UI222X_C = 0x93; // Sony CCD sensor - CCIR / PAL color
157
158 public const int IS_SENSOR_UI224X_M = 0x96; // Sony CCD sensor - SXGA monochrome
159 public const int IS_SENSOR_UI224X_C = 0x97; // Sony CCD sensor - SXGA color
160
161 public const int IS_SENSOR_UI225X_M = 0x98; // Sony CCD sensor - UXGA monochrome
162 public const int IS_SENSOR_UI225X_C = 0x99; // Sony CCD sensor - UXGA color
163 //
164 // --------------------------------------------------------------------------------------------
165
166
167
168 // **********************************************
169 // return values/error codes
170 // **********************************************
171 public const int IS_NO_SUCCESS = -1;
172 public const int IS_SUCCESS = 0;
173 public const int IS_INVALID_CAMERA_HANDLE = 1;
174 public const int IS_INVALID_HANDLE = 1;
175
176 public const int IS_IO_REQUEST_FAILED = 2;
177 public const int IS_CANT_OPEN_DEVICE = 3;
178 public const int IS_CANT_CLOSE_DEVICE = 4;
179 public const int IS_CANT_SETUP_MEMORY = 5;
180 public const int IS_NO_HWND_FOR_ERROR_REPORT = 6;
181 public const int IS_ERROR_MESSAGE_NOT_CREATED = 7;
182 public const int IS_ERROR_STRING_NOT_FOUND = 8;
183 public const int IS_HOOK_NOT_CREATED = 9;
184 public const int IS_TIMER_NOT_CREATED = 10;
185 public const int IS_CANT_OPEN_REGISTRY = 11;
186 public const int IS_CANT_READ_REGISTRY = 12;
187 public const int IS_CANT_VALIDATE_BOARD = 13;
188 public const int IS_CANT_GIVE_BOARD_ACCESS = 14;
189 public const int IS_NO_IMAGE_MEM_ALLOCATED = 15;
190 public const int IS_CANT_CLEANUP_MEMORY = 16;
191 public const int IS_CANT_COMMUNICATE_WITH_DRIVER = 17;
192 public const int IS_FUNCTION_NOT_SUPPORTED_YET = 18;
193 public const int IS_OPERATING_SYSTEM_NOT_SUPPORTED = 19;
194
195 public const int IS_INVALID_VIDEO_IN = 20;
196 public const int IS_INVALID_IMG_SIZE = 21;
197 public const int IS_INVALID_ADDRESS = 22;
198 public const int IS_INVALID_VIDEO_MODE = 23;
199 public const int IS_INVALID_AGC_MODE = 24;
200 public const int IS_INVALID_GAMMA_MODE = 25;
201 public const int IS_INVALID_SYNC_LEVEL = 26;
202 public const int IS_INVALID_CBARS_MODE = 27;
203 public const int IS_INVALID_COLOR_MODE = 28;
204 public const int IS_INVALID_SCALE_FACTOR = 29;
205 public const int IS_INVALID_IMAGE_SIZE = 30;
206 public const int IS_INVALID_IMAGE_POS = 31;
207 public const int IS_INVALID_CAPTURE_MODE = 32;
208 public const int IS_INVALID_RISC_PROGRAM = 33;
209 public const int IS_INVALID_BRIGHTNESS = 34;
210 public const int IS_INVALID_CONTRAST = 35;
211 public const int IS_INVALID_SATURATION_U = 36;
212 public const int IS_INVALID_SATURATION_V = 37;
213 public const int IS_INVALID_HUE = 38;
214 public const int IS_INVALID_HOR_FILTER_STEP = 39;
215 public const int IS_INVALID_VERT_FILTER_STEP = 40;
216 public const int IS_INVALID_EEPROM_READ_ADDRESS = 41;
217 public const int IS_INVALID_EEPROM_WRITE_ADDRESS = 42;
218 public const int IS_INVALID_EEPROM_READ_LENGTH = 43;
219 public const int IS_INVALID_EEPROM_WRITE_LENGTH = 44;
220 public const int IS_INVALID_BOARD_INFO_POINTER = 45;
221 public const int IS_INVALID_DISPLAY_MODE = 46;
222 public const int IS_INVALID_ERR_REP_MODE = 47;
223 public const int IS_INVALID_BITS_PIXEL = 48;
224 public const int IS_INVALID_MEMORY_POINTER = 49;
225
226 public const int IS_FILE_WRITE_OPEN_ERROR = 50;
227 public const int IS_FILE_READ_OPEN_ERROR = 51;
228 public const int IS_FILE_READ_INVALID_BMP_ID = 52;
229 public const int IS_FILE_READ_INVALID_BMP_SIZE = 53;
230 public const int IS_FILE_READ_INVALID_BIT_COUNT = 54;
231 public const int IS_WRONG_KERNEL_VERSION = 55;
232
233 public const int IS_RISC_INVALID_XLENGTH = 60;
234 public const int IS_RISC_INVALID_YLENGTH = 61;
235 public const int IS_RISC_EXCEED_IMG_SIZE = 62;
236
237 public const int IS_DD_MAIN_FAILED = 70;
238 public const int IS_DD_PRIMSURFACE_FAILED = 71;
239 public const int IS_DD_SCRN_SIZE_NOT_SUPPORTED = 72;
240 public const int IS_DD_CLIPPER_FAILED = 73;
241 public const int IS_DD_CLIPPER_HWND_FAILED = 74;
242 public const int IS_DD_CLIPPER_CONNECT_FAILED = 75;
243 public const int IS_DD_BACKSURFACE_FAILED = 76;
244 public const int IS_DD_BACKSURFACE_IN_SYSMEM = 77;
245 public const int IS_DD_MDL_MALLOC_ERR = 78;
246 public const int IS_DD_MDL_SIZE_ERR = 79;
247 public const int IS_DD_CLIP_NO_CHANGE = 80;
248 public const int IS_DD_PRIMMEM_NULL = 81;
249 public const int IS_DD_BACKMEM_NULL = 82;
250 public const int IS_DD_BACKOVLMEM_NULL = 83;
251 public const int IS_DD_OVERLAYSURFACE_FAILED = 84;
252 public const int IS_DD_OVERLAYSURFACE_IN_SYSMEM = 85;
253 public const int IS_DD_OVERLAY_NOT_ALLOWED = 86;
254 public const int IS_DD_OVERLAY_COLKEY_ERR = 87;
255 public const int IS_DD_OVERLAY_NOT_ENABLED = 88;
256 public const int IS_DD_GET_DC_ERROR = 89;
257 public const int IS_DD_DDRAW_DLL_NOT_LOADED = 90;
258 public const int IS_DD_THREAD_NOT_CREATED = 91;
259 public const int IS_DD_CANT_GET_CAPS = 92;
260 public const int IS_DD_NO_OVERLAYSURFACE = 93;
261 public const int IS_DD_NO_OVERLAYSTRETCH = 94;
262 public const int IS_DD_CANT_CREATE_OVERLAYSURFACE = 95;
263 public const int IS_DD_CANT_UPDATE_OVERLAYSURFACE = 96;
264 public const int IS_DD_INVALID_STRETCH = 97;
265
266 public const int IS_EV_INVALID_EVENT_NUMBER = 100;
267 public const int IS_INVALID_MODE = 101;
268 public const int IS_CANT_FIND_FALCHOOK = 102;
269 public const int IS_CANT_FIND_HOOK = 102;
270 public const int IS_CANT_GET_HOOK_PROC_ADDR = 103;
271 public const int IS_CANT_CHAIN_HOOK_PROC = 104;
272 public const int IS_CANT_SETUP_WND_PROC = 105;
273 public const int IS_HWND_NULL = 106;
274 public const int IS_INVALID_UPDATE_MODE = 107;
275 public const int IS_NO_ACTIVE_IMG_MEM = 108;
276 public const int IS_CANT_INIT_EVENT = 109;
277 public const int IS_FUNC_NOT_AVAIL_IN_OS = 110;
278 public const int IS_CAMERA_NOT_CONNECTED = 111;
279 public const int IS_SEQUENCE_LIST_EMPTY = 112;
280 public const int IS_CANT_ADD_TO_SEQUENCE = 113;
281 public const int IS_LOW_OF_SEQUENCE_RISC_MEM = 114;
282 public const int IS_IMGMEM2FREE_USED_IN_SEQ = 115;
283 public const int IS_IMGMEM_NOT_IN_SEQUENCE_LIST = 116;
284 public const int IS_SEQUENCE_BUF_ALREADY_LOCKED = 117;
285 public const int IS_INVALID_DEVICE_ID = 118;
286 public const int IS_INVALID_BOARD_ID = 119;
287 public const int IS_ALL_DEVICES_BUSY = 120;
288 public const int IS_HOOK_BUSY = 121;
289 public const int IS_TIMED_OUT = 122;
290 public const int IS_NULL_POINTER = 123;
291 public const int IS_WRONG_HOOK_VERSION = 124;
292 public const int IS_INVALID_PARAMETER = 125;
293 public const int IS_NOT_ALLOWED = 126;
294 public const int IS_OUT_OF_MEMORY = 127;
295 public const int IS_INVALID_WHILE_LIVE = 128;
296 public const int IS_ACCESS_VIOLATION = 129;
297 public const int IS_UNKNOWN_ROP_EFFECT = 130;
298 public const int IS_INVALID_RENDER_MODE = 131;
299 public const int IS_INVALID_THREAD_CONTEXT = 132;
300 public const int IS_NO_HARDWARE_INSTALLED = 133;
301 public const int IS_INVALID_WATCHDOG_TIME = 134;
302 public const int IS_INVALID_WATCHDOG_MODE = 135;
303 public const int IS_INVALID_PASSTHROUGH_IN = 136;
304 public const int IS_ERROR_SETTING_PASSTHROUGH_IN = 137;
305 public const int IS_FAILURE_ON_SETTING_WATCHDOG = 138;
306 public const int IS_NO_USB20 = 139;
307 public const int IS_CAPTURE_RUNNING = 140;
308
309 public const int IS_MEMORY_BOARD_ACTIVATED = 141;
310 public const int IS_MEMORY_BOARD_DEACTIVATED = 142;
311 public const int IS_NO_MEMORY_BOARD_CONNECTED = 143;
312 public const int IS_TOO_LESS_MEMORY = 144;
313 public const int IS_IMAGE_NOT_PRESENT = 145;
314 public const int IS_MEMORY_MODE_RUNNING = 146;
315 public const int IS_MEMORYBOARD_DISABLED = 147;
316
317 public const int IS_TRIGGER_ACTIVATED = 148;
318 public const int IS_WRONG_KEY = 150;
319 public const int IS_CRC_ERROR = 151;
320 public const int IS_NOT_YET_RELEASED = 152; // this feature is not available yet
321 public const int IS_NOT_CALIBRATED = 153; // the camera is not calibrated
322 public const int IS_WAITING_FOR_KERNEL = 154; // a request to the kernel exceeded
323 public const int IS_NOT_SUPPORTED = 155; // operation mode is not supported
324 public const int IS_TRIGGER_NOT_ACTIVATED = 156; // operation could not execute while trigger is disabled
325 public const int IS_OPERATION_ABORTED = 157;
326 public const int IS_BAD_STRUCTURE_SIZE = 158;
327 public const int IS_INVALID_BUFFER_SIZE = 159;
328 public const int IS_INVALID_PIXEL_CLOCK = 160;
329 public const int IS_INVALID_EXPOSURE_TIME = 161;
330 public const int IS_AUTO_EXPOSURE_RUNNING = 162;
331
332 public const int IS_CANNOT_CREATE_BB_SURF = 163; // error creating backbuffer surface
333 public const int IS_CANNOT_CREATE_BB_MIX = 164; // backbuffer mixer surfaces can not be created
334 public const int IS_BB_OVLMEM_NULL = 165; // backbuffer overlay mem could not be locked
335 public const int IS_CANNOT_CREATE_BB_OVL = 166; // backbuffer overlay mem could not be created
336 public const int IS_NOT_SUPP_IN_OVL_SURF_MODE = 167; // function not supported in overlay surface mode
337 public const int IS_INVALID_SURFACE = 168; // surface invalid
338 public const int IS_SURFACE_LOST = 169; // surface has been lost
339 public const int IS_RELEASE_BB_OVL_DC = 170; // error releasing backbuffer overlay DC
340 public const int IS_BB_TIMER_NOT_CREATED = 171; // backbuffer timer could not be created
341 public const int IS_BB_OVL_NOT_EN = 172; // backbuffer overlay has not been enabled
342 public const int IS_ONLY_IN_BB_MODE = 173; // only possible in backbuffer mode
343 public const int IS_INVALID_COLOR_FORMAT = 174; // invalid color format
344 public const int IS_INVALID_WB_BINNING_MODE = 175;
345 public const int IS_INVALID_I2C_DEVICE_ADDRESS = 176;
346 public const int IS_COULD_NOT_CONVERT = 177; // current image couldn't be converted
347 public const int IS_TRANSFER_ERROR = 178; // transfer failed
348 public const int IS_PARAMETER_SET_NOT_PRESENT = 179; // the parameter set is not present
349 public const int IS_INVALID_CAMERA_TYPE = 180; // the camera type in the ini file doesn't match
350 public const int IS_INVALID_HOST_IP_HIBYTE = 181; // HIBYTE of host address is invalid
351 public const int IS_CM_NOT_SUPP_IN_CURR_DISPLAYMODE = 182; // color mode is not supported in the current display mode
352 public const int IS_NO_IR_FILTER = 183;
353 public const int IS_STARTER_FW_UPLOAD_NEEDED = 184;
354 public const int IS_DR_LIBRARY_NOT_FOUND = 185; // the DirectRender library could not be found
355 public const int IS_DR_DEVICE_OUT_OF_MEMORY = 186; // insufficient graphics adapter video memory
356 public const int IS_DR_CANNOT_CREATE_SURFACE = 187; // the image or overlay surface could not be created
357 public const int IS_DR_CANNOT_CREATE_VERTEX_BUFFER = 188; // the vertex buffer could not be created
358 public const int IS_DR_CANNOT_CREATE_TEXTURE = 189; // the texture could not be created
359 public const int IS_DR_CANNOT_LOCK_OVERLAY_SURFACE = 190; // the overlay surface could not be locked
360 public const int IS_DR_CANNOT_UNLOCK_OVERLAY_SURFACE = 191; // the overlay surface could not be unlocked
361 public const int IS_DR_CANNOT_GET_OVERLAY_DC = 192; // cannot get the overlay surface DC
362 public const int IS_DR_CANNOT_RELEASE_OVERLAY_DC = 193; // cannot release the overlay surface DC
363 public const int IS_DR_DEVICE_CAPS_INSUFFICIENT = 194; // insufficient graphics adapter capabilities
364 public const int IS_INCOMPATIBLE_SETTING = 195; // Operation is not possible because of another incompatible setting
365 public const int IS_DR_NOT_ALLOWED_WHILE_DC_IS_ACTIVE = 196; // user App still has DC handle.
366
367 // ***********************************************
368 // Image files types
369 // ***********************************************
370 public const int IS_IMG_BMP = 0;
371 public const int IS_IMG_JPG = 1;
372 public const int IS_IMG_PNG = 2;
373 public const int IS_IMG_RAW = 4;
374 public const int IS_IMG_TIF = 8;
375
376 // ***********************************************
377 // I2C defines
378 // nRegisterAddr | IS_I2C_16_BIT_REGISTER
379 // ***********************************************
380 public const int IS_I2C_16_BIT_REGISTER = 0x10000000;
381
382
383 // ***********************************************
384 // common definitions
385 // ***********************************************
386 public const int IS_OFF = 0;
387 public const int IS_ON = 1;
388 public const int IS_IGNORE_PARAMETER = -1;
389
390
391 // ***********************************************
392 // device enumeration
393 // ***********************************************
394 public const int IS_USE_DEVICE_ID = 0x8000;
395 public const int IS_ALLOW_STARTER_FW_UPLOAD = 0x10000;
396
397
398 // ***********************************************
399 // autoExit enable/disable
400 // ***********************************************
401 public const int IS_DISABLE_AUTO_EXIT = 0;
402 public const int IS_ENABLE_AUTO_EXIT = 1;
403 public const int IS_GET_AUTO_EXIT_ENABLED = 0x8000;
404
405
406 // ***********************************************
407 // live/freeze parameters
408 // ***********************************************
409 public const int IS_GET_LIVE = 0x8000;
410
411 public const int IS_WAIT = 1;
412 public const int IS_DONT_WAIT = 0;
413 public const int IS_FORCE_VIDEO_STOP = 0x4000;
414 public const int IS_FORCE_VIDEO_START = 0x4000;
415
416
417 // ***********************************************
418 // video finish constants
419 // ***********************************************
420 public const int IS_VIDEO_NOT_FINISH = 0;
421 public const int IS_VIDEO_FINISH = 1;
422
423
424 // ***********************************************
425 // bitmap render modes
426 // ***********************************************
427 public const int IS_GET_RENDER_MODE = 0x8000;
428
429 public const int IS_RENDER_DISABLED = 0;
430 public const int IS_RENDER_NORMAL = 1;
431 public const int IS_RENDER_FIT_TO_WINDOW = 2;
432 public const int IS_RENDER_DOWNSCALE_1_2 = 4;
433 public const int IS_RENDER_MIRROR_UPDOWN = 16;
434 public const int IS_RENDER_DOUBLE_HEIGHT = 32;
435 public const int IS_RENDER_HALF_HEIGHT = 64;
436 public const int IS_USE_AS_DC_HANDLE = 0x8000;
437
438 // ***********************************************
439 // external trigger mode constants
440 // ***********************************************
441 public const int IS_GET_EXTERNALTRIGGER = 0x8000;
442 public const int IS_GET_TRIGGER_STATUS = 0x8001;
443 public const int IS_GET_TRIGGER_MASK = 0x8002;
444 public const int IS_GET_TRIGGER_INPUTS = 0x8003;
445 public const int IS_GET_SUPPORTED_TRIGGER_MODE = 0x8004;
446 public const int IS_GET_TRIGGER_COUNTER = 0x8000;
447
448 // Old defines for compatibility
449 public const int IS_SET_TRIG_OFF = 0x0;
450 public const int IS_SET_TRIG_HI_LO = 0x1;
451 public const int IS_SET_TRIG_LO_HI = 0x2;
452 public const int IS_SET_TRIG_SOFTWARE = 0x8;
453 public const int IS_SET_TRIG_HI_LO_SYNC = 0x10;
454 public const int IS_SET_TRIG_LO_HI_SYNC = 0x20;
455
456 public const int IS_SET_TRIG_MASK = 0x100;
457
458 // New defines
459 public const int IS_SET_TRIGGER_CONTINUOUS = 0x1000;
460 public const int IS_SET_TRIGGER_OFF = IS_SET_TRIG_OFF;
461 public const int IS_SET_TRIGGER_HI_LO = (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_HI_LO);
462 public const int IS_SET_TRIGGER_LO_HI = (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_LO_HI);
463 public const int IS_SET_TRIGGER_SOFTWARE = (IS_SET_TRIGGER_CONTINUOUS | IS_SET_TRIG_SOFTWARE);
464 public const int IS_SET_TRIGGER_HI_LO_SYNC = IS_SET_TRIG_HI_LO_SYNC;
465 public const int IS_SET_TRIGGER_LO_HI_SYNC = IS_SET_TRIG_LO_HI_SYNC;
466
467 public const int IS_GET_TRIGGER_DELAY = 0x8000;
468 public const int IS_GET_MIN_TRIGGER_DELAY = 0x8001;
469 public const int IS_GET_MAX_TRIGGER_DELAY = 0x8002;
470 public const int IS_GET_TRIGGER_DELAY_GRANULARITY = 0x8003;
471
472
473 // ***********************************************
474 // timing
475 // ***********************************************
476 // pixelclock
477 public const int IS_GET_PIXEL_CLOCK = 0x8000;
478 public const int IS_GET_DEFAULT_PIXEL_CLK = 0x8001;
479 public const int IS_GET_PIXEL_CLOCK_INC = 0x8005;
480
481 // framerate
482 public const int IS_GET_FRAMERATE = 0x8000;
483 public const int IS_GET_DEFAULT_FRAMERATE = 0x8001;
484
485 // exposure
486 public const int IS_GET_EXPOSURE_TIME = 0x8000;
487 public const int IS_GET_DEFAULT_EXPOSURE = 0x8001;
488 public const int IS_GET_EXPOSURE_MIN_VALUE = 0x8002;
489 public const int IS_GET_EXPOSURE_MAX_VALUE = 0x8003;
490 public const int IS_GET_EXPOSURE_INCREMENT = 0x8004;
491 public const int IS_GET_EXPOSURE_FINE_INCREMENT = 0x8005;
492
493 // ***********************************************
494 // gain definitions
495 // ***********************************************
496 public const int IS_GET_MASTER_GAIN = 0x8000;
497 public const int IS_GET_RED_GAIN = 0x8001;
498 public const int IS_GET_GREEN_GAIN = 0x8002;
499 public const int IS_GET_BLUE_GAIN = 0x8003;
500 public const int IS_GET_DEFAULT_MASTER = 0x8004;
501 public const int IS_GET_DEFAULT_RED = 0x8005;
502 public const int IS_GET_DEFAULT_GREEN = 0x8006;
503 public const int IS_GET_DEFAULT_BLUE = 0x8007;
504 public const int IS_GET_GAINBOOST = 0x8008;
505 public const int IS_SET_GAINBOOST_ON = 0x0001;
506 public const int IS_SET_GAINBOOST_OFF = 0x0000;
507 public const int IS_GET_SUPPORTED_GAINBOOST = 0x0002;
508
509
510 // ***********************************************
511 // gain factor definitions
512 // ***********************************************
513 public const int IS_GET_MASTER_GAIN_FACTOR = 0x8000;
514 public const int IS_GET_RED_GAIN_FACTOR = 0x8001;
515 public const int IS_GET_GREEN_GAIN_FACTOR = 0x8002;
516 public const int IS_GET_BLUE_GAIN_FACTOR = 0x8003;
517 public const int IS_SET_MASTER_GAIN_FACTOR = 0x8004;
518 public const int IS_SET_RED_GAIN_FACTOR = 0x8005;
519 public const int IS_SET_GREEN_GAIN_FACTOR = 0x8006;
520 public const int IS_SET_BLUE_GAIN_FACTOR = 0x8007;
521 public const int IS_GET_DEFAULT_MASTER_GAIN_FACTOR = 0x8008;
522 public const int IS_GET_DEFAULT_RED_GAIN_FACTOR = 0x8009;
523 public const int IS_GET_DEFAULT_GREEN_GAIN_FACTOR = 0x800a;
524 public const int IS_GET_DEFAULT_BLUE_GAIN_FACTOR = 0x800b;
525 public const int IS_INQUIRE_MASTER_GAIN_FACTOR = 0x800c;
526 public const int IS_INQUIRE_RED_GAIN_FACTOR = 0x800d;
527 public const int IS_INQUIRE_GREEN_GAIN_FACTOR = 0x800e;
528 public const int IS_INQUIRE_BLUE_GAIN_FACTOR = 0x800f;
529
530
531 // ***********************************************
532 // blacklevel compensation
533 // ***********************************************
534 public const int IS_GET_BL_COMPENSATION = 0x8000;
535 public const int IS_GET_BL_OFFSET = 0x8001;
536 public const int IS_GET_BL_DEFAULT_MODE = 0x8002;
537 public const int IS_GET_BL_DEFAULT_OFFSET = 0x8003;
538 public const int IS_GET_BL_SUPPORTED_MODE = 0x8004;
539
540 public const int IS_BL_COMPENSATION_DISABLE = 0;
541 public const int IS_BL_COMPENSATION_ENABLE = 1;
542 public const int IS_BL_COMPENSATION_OFFSET = 32;
543
544 public const int IS_MIN_BL_OFFSET = 0;
545 public const int IS_MAX_BL_OFFSET = 255;
546
547
548 // ***********************************************
549 // hardware gamma definitions
550 // ***********************************************
551 public const int IS_GET_HW_GAMMA = 0x8000;
552 public const int IS_GET_HW_SUPPORTED_GAMMA = 0x8001;
553
554 public const int IS_SET_HW_GAMMA_OFF = 0x0;
555 public const int IS_SET_HW_GAMMA_ON = 0x1;
556
557
558 // ***********************************************
559 // Camera LUT
560 // ***********************************************
561 public const int IS_ENABLE_CAMERA_LUT = 0x0001;
562 public const int IS_SET_CAMERA_LUT_VALUES = 0x0002;
563 public const int IS_ENABLE_RGB_GRAYSCALE = 0x0004;
564 public const int IS_GET_CAMERA_LUT_USER = 0x0008;
565 public const int IS_GET_CAMERA_LUT_COMPLETE = 0x0010;
566
567
568 // ***********************************************
569 // camera LUT presets
570 // ***********************************************
571 public const int IS_CAMERA_LUT_IDENTITY = 0x00000100;
572 public const int IS_CAMERA_LUT_NEGATIV = 0x00000200;
573 public const int IS_CAMERA_LUT_GLOW1 = 0x00000400;
574 public const int IS_CAMERA_LUT_GLOW2 = 0x00000800;
575 public const int IS_CAMERA_LUT_ASTRO1 = 0x00001000;
576 public const int IS_CAMERA_LUT_RAINBOW1 = 0x00002000;
577 public const int IS_CAMERA_LUT_MAP1 = 0x00004000;
578 public const int IS_CAMERA_LUT_COLD_HOT = 0x00008000;
579 public const int IS_CAMERA_LUT_SEPIC = 0x00010000;
580 public const int IS_CAMERA_LUT_ONLY_RED = 0x00020000;
581 public const int IS_CAMERA_LUT_ONLY_GREEN = 0x00040000;
582 public const int IS_CAMERA_LUT_ONLY_BLUE = 0x00080000;
583
584 public const int IS_CAMERA_LUT_64 = 64;
585 public const int IS_CAMERA_LUT_128 = 128;
586
587
588 // ***********************************************
589 // Image parameters
590 // ***********************************************
591 // brightness
592 public const int IS_GET_BRIGHTNESS = 0x8000;
593 public const int IS_MIN_BRIGHTNESS = 0;
594 public const int IS_MAX_BRIGHTNESS = 255;
595 public const int IS_DEFAULT_BRIGHTNESS = -1;
596 //contrast
597 public const int IS_GET_CONTRAST = 0x8000;
598 public const int IS_MIN_CONTRAST = 0;
599 public const int IS_MAX_CONTRAST = 511;
600 public const int IS_DEFAULT_CONTRAST = -1;
601 // gamma
602 public const int IS_GET_GAMMA = 0x8000;
603 public const int IS_MIN_GAMMA = 1;
604 public const int IS_MAX_GAMMA = 1000;
605 public const int IS_DEFAULT_GAMMA = -1;
606
607
608 // ***********************************************
609 // image position + size
610 // ***********************************************
611 public const int IS_GET_IMAGE_SIZE_X = 0x8000;
612 public const int IS_GET_IMAGE_SIZE_Y = 0x8001;
613 public const int IS_GET_IMAGE_SIZE_X_INC = 0x8002;
614 public const int IS_GET_IMAGE_SIZE_Y_INC = 0x8003;
615 public const int IS_GET_IMAGE_SIZE_X_MIN = 0x8004;
616 public const int IS_GET_IMAGE_SIZE_Y_MIN = 0x8005;
617 public const int IS_GET_IMAGE_SIZE_X_MAX = 0x8006;
618 public const int IS_GET_IMAGE_SIZE_Y_MAX = 0x8007;
619
620 public const int IS_GET_IMAGE_POS_X = 0x8001;
621 public const int IS_GET_IMAGE_POS_Y = 0x8002;
622 public const int IS_GET_IMAGE_POS_X_ABS = 0xC001;
623 public const int IS_GET_IMAGE_POS_Y_ABS = 0xC002;
624 public const int IS_GET_IMAGE_POS_X_INC = 0xC003;
625 public const int IS_GET_IMAGE_POS_Y_INC = 0xC004;
626 public const int IS_GET_IMAGE_POS_X_MIN = 0xC005;
627 public const int IS_GET_IMAGE_POS_Y_MIN = 0xC006;
628 public const int IS_GET_IMAGE_POS_X_MAX = 0xC007;
629 public const int IS_GET_IMAGE_POS_Y_MAX = 0xC008;
630
631 public const int IS_SET_IMAGE_POS_X_ABS = 0x00010000;
632 public const int IS_SET_IMAGE_POS_Y_ABS = 0x00010000;
633
634 // Compatibility
635 public const int IS_SET_IMAGEPOS_X_ABS = 0x8000;
636 public const int IS_SET_IMAGEPOS_Y_ABS = 0x8000;
637
638
639 // ***********************************************
640 // rop effect constants
641 // ***********************************************
642 public const int IS_GET_ROP_EFFECT = 0x8000;
643 public const int IS_GET_SUPPORTED_ROP_EFFECT = 0x8001;
644
645 public const int IS_SET_ROP_MIRROR_NONE = 0;
646 public const int IS_SET_ROP_MIRROR_UPDOWN = 8;
647 public const int IS_SET_ROP_MIRROR_UPDOWN_ODD = 16;
648 public const int IS_SET_ROP_MIRROR_UPDOWN_EVEN = 32;
649 public const int IS_SET_ROP_MIRROR_LEFTRIGHT = 64;
650
651
652 // ***********************************************
653 // subsampling
654 // ***********************************************
655 public const int IS_GET_SUBSAMPLING = 0x8000;
656 public const int IS_GET_SUBSAMPLING_MODE = 0x8001;
657 public const int IS_GET_SUPPORTED_SUBSAMPLING = 0x8001;
658 public const int IS_GET_SUBSAMPLING_TYPE = 0x8002;
659 public const int IS_GET_SUBSAMPLING_FACTOR_HORIZONTAL = 0x8004;
660 public const int IS_GET_SUBSAMPLING_FACTOR_VERTICAL = 0x8008;
661
662 public const int IS_SUBSAMPLING_DISABLE = 0x0;
663
664 public const int IS_SUBSAMPLING_2X_VERTICAL = 0x0001;
665 public const int IS_SUBSAMPLING_2X_HORIZONTAL = 0x0002;
666 public const int IS_SUBSAMPLING_4X_VERTICAL = 0x0004;
667 public const int IS_SUBSAMPLING_4X_HORIZONTAL = 0x0008;
668 public const int IS_SUBSAMPLING_3X_VERTICAL = 0x0010;
669 public const int IS_SUBSAMPLING_3X_HORIZONTAL = 0x0020;
670 public const int IS_SUBSAMPLING_5X_VERTICAL = 0x0040;
671 public const int IS_SUBSAMPLING_5X_HORIZONTAL = 0x0080;
672 public const int IS_SUBSAMPLING_6X_VERTICAL = 0x0100;
673 public const int IS_SUBSAMPLING_6X_HORIZONTAL = 0x0200;
674 public const int IS_SUBSAMPLING_8X_VERTICAL = 0x0400;
675 public const int IS_SUBSAMPLING_8X_HORIZONTAL = 0x0800;
676 public const int IS_SUBSAMPLING_16X_VERTICAL = 0x1000;
677 public const int IS_SUBSAMPLING_16X_HORIZONTAL = 0x2000;
678
679 public const int IS_SUBSAMPLING_COLOR = 0x01;
680 public const int IS_SUBSAMPLING_MONO = 0x02;
681
682 public const int 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);
683 public const int 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);
684
685 // Compatibility
686 public const int IS_SUBSAMPLING_VERT = IS_SUBSAMPLING_2X_VERTICAL;
687 public const int IS_SUBSAMPLING_HOR = IS_SUBSAMPLING_2X_HORIZONTAL;
688
689
690 // ***********************************************
691 // binning
692 // ***********************************************
693 public const int IS_GET_BINNING = 0x8000;
694 public const int IS_GET_BINNING_MODE = 0x8001;
695 public const int IS_GET_SUPPORTED_BINNING = 0x8001;
696 public const int IS_GET_BINNING_TYPE = 0x8002;
697 public const int IS_GET_BINNING_FACTOR_HORIZONTAL = 0x8004;
698 public const int IS_GET_BINNING_FACTOR_VERTICAL = 0x8008;
699
700 public const int IS_BINNING_DISABLE = 0x0;
701
702 public const int IS_BINNING_2X_VERTICAL = 0x0001;
703 public const int IS_BINNING_2X_HORIZONTAL = 0x0002;
704 public const int IS_BINNING_4X_VERTICAL = 0x0004;
705 public const int IS_BINNING_4X_HORIZONTAL = 0x0008;
706 public const int IS_BINNING_3X_VERTICAL = 0x0010;
707 public const int IS_BINNING_3X_HORIZONTAL = 0x0020;
708 public const int IS_BINNING_5X_VERTICAL = 0x0040;
709 public const int IS_BINNING_5X_HORIZONTAL = 0x0080;
710 public const int IS_BINNING_6X_VERTICAL = 0x0100;
711 public const int IS_BINNING_6X_HORIZONTAL = 0x0200;
712 public const int IS_BINNING_8X_VERTICAL = 0x0400;
713 public const int IS_BINNING_8X_HORIZONTAL = 0x0800;
714 public const int IS_BINNING_16X_VERTICAL = 0x1000;
715 public const int IS_BINNING_16X_HORIZONTAL = 0x2000;
716
717 public const int IS_BINNING_COLOR = 0x01;
718 public const int IS_BINNING_MONO = 0x02;
719
720 public const int 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);
721 public const int 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);
722
723 // Compatibility
724 public const int IS_BINNING_VERT = IS_BINNING_2X_VERTICAL;
725 public const int IS_BINNING_HOR = IS_BINNING_2X_HORIZONTAL;
726
727
728 // ***********************************************
729 // Auto Control Parameter
730 // ***********************************************
731 public const int IS_SET_ENABLE_AUTO_GAIN = 0x8800;
732 public const int IS_GET_ENABLE_AUTO_GAIN = 0x8801;
733 public const int IS_SET_ENABLE_AUTO_SHUTTER = 0x8802;
734 public const int IS_GET_ENABLE_AUTO_SHUTTER = 0x8803;
735 public const int IS_SET_ENABLE_AUTO_WHITEBALANCE = 0x8804;
736 public const int IS_GET_ENABLE_AUTO_WHITEBALANCE = 0x8805;
737 public const int IS_SET_ENABLE_AUTO_FRAMERATE = 0x8806;
738 public const int IS_GET_ENABLE_AUTO_FRAMERATE = 0x8807;
739 public const int IS_SET_ENABLE_AUTO_SENSOR_GAIN = 0x8808;
740 public const int IS_GET_ENABLE_AUTO_SENSOR_GAIN = 0x8809;
741 public const int IS_SET_ENABLE_AUTO_SENSOR_SHUTTER = 0x8810;
742 public const int IS_GET_ENABLE_AUTO_SENSOR_SHUTTER = 0x8811;
743 public const int IS_SET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER = 0x8812;
744 public const int IS_GET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER = 0x8813;
745 public const int IS_SET_ENABLE_AUTO_SENSOR_FRAMERATE = 0x8814;
746 public const int IS_GET_ENABLE_AUTO_SENSOR_FRAMERATE = 0x8815;
747 public const int IS_SET_ENABLE_AUTO_SENSOR_WHITEBALANCE = 0x8816;
748 public const int IS_GET_ENABLE_AUTO_SENSOR_WHITEBALANCE = 0x8817;
749
750 public const int IS_SET_AUTO_REFERENCE = 0x8000;
751 public const int IS_GET_AUTO_REFERENCE = 0x8001;
752 public const int IS_SET_AUTO_GAIN_MAX = 0x8002;
753 public const int IS_GET_AUTO_GAIN_MAX = 0x8003;
754 public const int IS_SET_AUTO_SHUTTER_MAX = 0x8004;
755 public const int IS_GET_AUTO_SHUTTER_MAX = 0x8005;
756 public const int IS_SET_AUTO_SPEED = 0x8006;
757 public const int IS_GET_AUTO_SPEED = 0x8007;
758 public const int IS_SET_AUTO_WB_OFFSET = 0x8008;
759 public const int IS_GET_AUTO_WB_OFFSET = 0x8009;
760 public const int IS_SET_AUTO_WB_GAIN_RANGE = 0x800A;
761 public const int IS_GET_AUTO_WB_GAIN_RANGE = 0x800B;
762 public const int IS_SET_AUTO_WB_SPEED = 0x800C;
763 public const int IS_GET_AUTO_WB_SPEED = 0x800D;
764 public const int IS_SET_AUTO_WB_ONCE = 0x800E;
765 public const int IS_GET_AUTO_WB_ONCE = 0x800F;
766 public const int IS_SET_AUTO_BRIGHTNESS_ONCE = 0x8010;
767 public const int IS_GET_AUTO_BRIGHTNESS_ONCE = 0x8011;
768 public const int IS_SET_AUTO_HYSTERESIS = 0x8012;
769 public const int IS_GET_AUTO_HYSTERESIS = 0x8013;
770 public const int IS_GET_AUTO_HYSTERESIS_RANGE = 0x8014;
771 public const int IS_SET_AUTO_WB_HYSTERESIS = 0x8015;
772 public const int IS_GET_AUTO_WB_HYSTERESIS = 0x8016;
773 public const int IS_GET_AUTO_WB_HYSTERESIS_RANGE = 0x8017;
774 public const int IS_SET_AUTO_SKIPFRAMES = 0x8018;
775 public const int IS_GET_AUTO_SKIPFRAMES = 0x8019;
776 public const int IS_GET_AUTO_SKIPFRAMES_RANGE = 0x801A;
777 public const int IS_SET_AUTO_WB_SKIPFRAMES = 0x801B;
778 public const int IS_GET_AUTO_WB_SKIPFRAMES = 0x801C;
779 public const int IS_GET_AUTO_WB_SKIPFRAMES_RANGE = 0x801D;
780 public const int IS_SET_SENS_AUTO_SHUTTER_PHOTOM = 0x801E;
781 public const int IS_SET_SENS_AUTO_GAIN_PHOTOM = 0x801F;
782 public const int IS_GET_SENS_AUTO_SHUTTER_PHOTOM = 0x8020;
783 public const int IS_GET_SENS_AUTO_GAIN_PHOTOM = 0x8021;
784 public const int IS_GET_SENS_AUTO_SHUTTER_PHOTOM_DEF = 0x8022;
785 public const int IS_GET_SENS_AUTO_GAIN_PHOTOM_DEF = 0x8023;
786 public const int IS_SET_SENS_AUTO_CONTRAST_CORRECTION = 0x8024;
787 public const int IS_GET_SENS_AUTO_CONTRAST_CORRECTION = 0x8025;
788 public const int IS_GET_SENS_AUTO_CONTRAST_CORRECTION_RANGE = 0x8026;
789 public const int IS_GET_SENS_AUTO_CONTRAST_CORRECTION_INC = 0x8027;
790 public const int IS_GET_SENS_AUTO_CONTRAST_CORRECTION_DEF = 0x8028;
791 public const int IS_SET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE = 0x8029;
792 public const int IS_GET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE = 0x8030;
793 public const int IS_SET_SENS_AUTO_BACKLIGHT_COMP = 0x8031;
794 public const int IS_GET_SENS_AUTO_BACKLIGHT_COMP = 0x8032;
795 public const int IS_GET_SENS_AUTO_BACKLIGHT_COMP_RANGE = 0x8033;
796 public const int IS_GET_SENS_AUTO_BACKLIGHT_COMP_INC = 0x8034;
797 public const int IS_GET_SENS_AUTO_BACKLIGHT_COMP_DEF = 0x8035;
798 public const int IS_SET_ANTI_FLICKER_MODE = 0x8036;
799 public const int IS_GET_ANTI_FLICKER_MODE = 0x8037;
800 public const int IS_GET_ANTI_FLICKER_MODE_DEF = 0x8038;
801
802
803 // ***********************************************
804 // Auto Control definitions
805 // ***********************************************
806 public const int IS_MIN_AUTO_BRIGHT_REFERENCE = 0;
807 public const int IS_MAX_AUTO_BRIGHT_REFERENCE = 255;
808 public const int IS_DEFAULT_AUTO_BRIGHT_REFERENCE = 128;
809 public const int IS_MIN_AUTO_SPEED = 0;
810 public const int IS_MAX_AUTO_SPEED = 100;
811 public const int IS_DEFAULT_AUTO_SPEED = 50;
812 public const int IS_DEFAULT_AUTO_WB_OFFSET = 0;
813 public const int IS_MIN_AUTO_WB_OFFSET = -50;
814 public const int IS_MAX_AUTO_WB_OFFSET = 50;
815 public const int IS_DEFAULT_AUTO_WB_SPEED = 50;
816 public const int IS_MIN_AUTO_WB_SPEED = 0;
817 public const int IS_MAX_AUTO_WB_SPEED = 100;
818 public const int IS_MIN_AUTO_WB_REFERENCE = 0;
819 public const int IS_MAX_AUTO_WB_REFERENCE = 255;
820
821
822 // ***********************************************
823 // AOI types to set/get
824 // ***********************************************
825 public const int IS_SET_AUTO_BRIGHT_AOI = 0x8000;
826 public const int IS_GET_AUTO_BRIGHT_AOI = 0x8001;
827 public const int IS_SET_IMAGE_AOI = 0x8002;
828 public const int IS_GET_IMAGE_AOI = 0x8003;
829 public const int IS_SET_AUTO_WB_AOI = 0x8004;
830 public const int IS_GET_AUTO_WB_AOI = 0x8005;
831
832
833 // ***********************************************
834 // color modes
835 // ***********************************************
836 public const int IS_GET_COLOR_MODE = 0x8000;
837
838 public const int IS_SET_CM_RGB32 = 0;
839 public const int IS_SET_CM_RGB24 = 1;
840 public const int IS_SET_CM_RGB16 = 2;
841 public const int IS_SET_CM_RGB15 = 3;
842 public const int IS_SET_CM_Y8 = 6;
843 public const int IS_SET_CM_RGB8 = 7;
844 public const int IS_SET_CM_BAYER = 11;
845 public const int IS_SET_CM_UYVY = 12;
846 public const int IS_SET_CM_UYVY_MONO = 13;
847 public const int IS_SET_CM_UYVY_BAYER = 14;
848 public const int IS_SET_CM_CBYCRY = 23;
849 public const int IS_SET_CM_RGBY = 24;
850 public const int IS_SET_CM_RGB30 = 25;
851 public const int IS_SET_CM_Y12 = 26;
852 public const int IS_SET_CM_BAYER12 = 27;
853 public const int IS_SET_CM_Y16 = 28;
854 public const int IS_SET_CM_BAYER16 = 29;
855
856 public const int IS_CM_MODE_MASK = 0x007F;
857
858 // planar vs packed format
859 public const int IS_CM_FORMAT_PACKED = 0x0000;
860 public const int IS_CM_FORMAT_PLANAR = 0x2000;
861 public const int IS_CM_FORMAT_MASK = 0x2000;
862
863 // BGR vs. RGB order
864 public const int IS_CM_ORDER_BGR = 0x0000;
865 public const int IS_CM_ORDER_RGB = 0x0080;
866 public const int IS_CM_ORDER_MASK = 0x0080;
867
868 // define compliant color format names
869 public const int IS_CM_MONO8 = IS_SET_CM_Y8; // occupies 8 Bit
870 public const int IS_CM_MONO12 = IS_SET_CM_Y12; // occupies 16 Bit
871 public const int IS_CM_MONO16 = IS_SET_CM_Y16; // occupies 16 Bit
872
873 public const int IS_CM_BAYER_RG8 = IS_SET_CM_BAYER; // occupies 8 Bit
874 public const int IS_CM_BAYER_RG12 = IS_SET_CM_BAYER12; // occupies 16 Bit
875 public const int IS_CM_BAYER_RG16 = IS_SET_CM_BAYER16; // occupies 16 Bit
876
877 public const int IS_CM_BGR555_PACKED = (IS_SET_CM_RGB15 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 16 Bit
878 public const int IS_CM_BGR565_PACKED = (IS_SET_CM_RGB16 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 16 Bit
879
880 public const int IS_CM_RGB8_PACKED = (IS_SET_CM_RGB24 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED); // occupies 24 Bit
881 public const int IS_CM_BGR8_PACKED = (IS_SET_CM_RGB24 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 24 Bit
882 public const int IS_CM_RGBA8_PACKED = (IS_SET_CM_RGB32 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED); // occupies 32 Bit
883 public const int IS_CM_BGRA8_PACKED = (IS_SET_CM_RGB32 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 32 Bit
884 public const int IS_CM_RGBY8_PACKED = (IS_SET_CM_RGBY | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED); // occupies 32 Bit
885 public const int IS_CM_BGRY8_PACKED = (IS_SET_CM_RGBY | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 32 Bit
886 public const int IS_CM_RGB10V2_PACKED = (IS_SET_CM_RGB30 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PACKED); // occupies 32 Bit
887 public const int IS_CM_BGR10V2_PACKED = (IS_SET_CM_RGB30 | IS_CM_ORDER_BGR | IS_CM_FORMAT_PACKED); // occupies 32 Bit
888
889 //public const int IS_CM_YUV422_PACKED; //no compliant version
890 public const int IS_CM_UYVY_PACKED = (IS_SET_CM_UYVY | IS_CM_FORMAT_PACKED); // occupies 16 Bit
891 public const int IS_CM_UYVY_MONO_PACKED = (IS_SET_CM_UYVY_MONO | IS_CM_FORMAT_PACKED);
892 public const int IS_CM_UYVY_BAYER_PACKED = (IS_SET_CM_UYVY_BAYER | IS_CM_FORMAT_PACKED);
893 public const int IS_CM_CBYCRY_PACKED = (IS_SET_CM_CBYCRY | IS_CM_FORMAT_PACKED); // occupies 16 Bit
894
895 //public const int IS_CM_RGB8_PLANAR //no compliant version
896 //public const int IS_CM_RGB12_PLANAR //no compliant version
897 //public const int IS_CM_RGB16_PLANAR //no compliant version
898
899 public const int IS_CM_ALL_POSSIBLE = 0xFFFF;
900
901
902 // ***********************************************
903 // Hotpixel correction
904 // ***********************************************
905 public const int IS_GET_BPC_MODE = 0x8000;
906 public const int IS_GET_BPC_THRESHOLD = 0x8001;
907 public const int IS_GET_BPC_SUPPORTED_MODE = 0x8002;
908
909 public const int IS_BPC_DISABLE = 0;
910 public const int IS_BPC_ENABLE_LEVEL_1 = 1;
911 public const int IS_BPC_ENABLE_LEVEL_2 = 2;
912 public const int IS_BPC_ENABLE_USER = 4;
913 public const int IS_BPC_ENABLE_SOFTWARE = IS_BPC_ENABLE_LEVEL_2;
914 public const int IS_BPC_ENABLE_HARDWARE = IS_BPC_ENABLE_LEVEL_1;
915
916 public const int IS_SET_BADPIXEL_LIST = 0x01;
917 public const int IS_GET_BADPIXEL_LIST = 0x02;
918 public const int IS_GET_LIST_SIZE = 0x03;
919
920
921 // ***********************************************
922 // color correction definitions
923 // ***********************************************
924 public const int IS_GET_CCOR_MODE = 0x8000;
925
926 public const int IS_GET_SUPPORTED_CCOR_MODE = 0x8001;
927 public const int IS_GET_DEFAULT_CCOR_MODE = 0x8002;
928 public const int IS_GET_CCOR_FACTOR = 0x8003;
929 public const int IS_GET_CCOR_FACTOR_MIN = 0x8004;
930 public const int IS_GET_CCOR_FACTOR_MAX = 0x8005;
931 public const int IS_GET_CCOR_FACTOR_DEFAULT = 0x8006;
932
933 public const int IS_CCOR_DISABLE = 0x0;
934 public const int IS_CCOR_ENABLE = 0x1;
935
936 public const int IS_CCOR_ENABLE_NORMAL = IS_CCOR_ENABLE;
937 public const int IS_CCOR_ENABLE_BG40_ENHANCED = 0x0002;
938 public const int IS_CCOR_ENABLE_HQ_ENHANCED = 0x0004;
939 public const int IS_CCOR_SET_IR_AUTOMATIC = 0x0080;
940 public const int IS_CCOR_FACTOR = 0x0100;
941
942 public const int IS_CCOR_ENABLE_MASK = (IS_CCOR_ENABLE_NORMAL | IS_CCOR_ENABLE_BG40_ENHANCED | IS_CCOR_ENABLE_HQ_ENHANCED);
943
944
945 // ***********************************************
946 // bayer algorithm modes
947 // ***********************************************
948 public const int IS_GET_BAYER_CV_MODE = 0x8000;
949
950 public const int IS_SET_BAYER_CV_NORMAL = 0x0000;
951 public const int IS_SET_BAYER_CV_BETTER = 0x0001;
952 public const int IS_SET_BAYER_CV_BEST = 0x0002;
953
954
955 // ***********************************************
956 // color converter modes
957 // ***********************************************
958 public const int IS_CONV_MODE_NONE = 0x0000;
959 public const int IS_CONV_MODE_SOFTWARE = 0x0001;
960 public const int IS_CONV_MODE_SOFTWARE_3X3 = 0x0002;
961 public const int IS_CONV_MODE_SOFTWARE_5X5 = 0x0004;
962 public const int IS_CONV_MODE_HARDWARE_3X3 = 0x0008;
963
964
965 // ***********************************************
966 // Edge enhancement
967 // ***********************************************
968 public const int IS_GET_EDGE_ENHANCEMENT = 0x8000;
969
970 public const int IS_EDGE_EN_DISABLE = 0;
971 public const int IS_EDGE_EN_STRONG = 1;
972 public const int IS_EDGE_EN_WEAK = 2;
973
974
975 // ***********************************************
976 // white balance modes
977 // ***********************************************
978 public const int IS_GET_WB_MODE = 0x8000;
979
980 public const int IS_SET_WB_DISABLE = 0x0;
981 public const int IS_SET_WB_USER = 0x1;
982 public const int IS_SET_WB_AUTO_ENABLE = 0x2;
983 public const int IS_SET_WB_AUTO_ENABLE_ONCE = 0x4;
984
985 public const int IS_SET_WB_DAYLIGHT_65 = 0x101;
986 public const int IS_SET_WB_COOL_WHITE = 0x102;
987 public const int IS_SET_WB_U30 = 0x103;
988 public const int IS_SET_WB_ILLUMINANT_A = 0x104;
989 public const int IS_SET_WB_HORIZON = 0x105;
990
991
992 // ***********************************************
993 // flash strobe constants
994 // ***********************************************
995 public const int IS_GET_FLASHSTROBE_MODE = 0x8000;
996 public const int IS_GET_FLASHSTROBE_LINE = 0x8001;
997 public const int IS_GET_SUPPORTED_FLASH_IO_PORTS = 0x8002;
998
999 public const int IS_SET_FLASH_OFF = 0;
1000 public const int IS_SET_FLASH_ON = 1;
1001 public const int IS_SET_FLASH_LO_ACTIVE = IS_SET_FLASH_ON;
1002 public const int IS_SET_FLASH_HI_ACTIVE = 2;
1003 public const int IS_SET_FLASH_HIGH = 3;
1004 public const int IS_SET_FLASH_LOW = 4;
1005 public const int IS_SET_FLASH_LO_ACTIVE_FREERUN = 5;
1006 public const int IS_SET_FLASH_HI_ACTIVE_FREERUN = 6;
1007 public const int IS_SET_FLASH_IO_1 = 0x0010;
1008 public const int IS_SET_FLASH_IO_2 = 0x0020;
1009 public const int IS_SET_FLASH_IO_3 = 0x0040;
1010 public const int IS_SET_FLASH_IO_4 = 0x0080;
1011 public const int 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);
1012
1013
1014 public const int IS_GET_FLASH_DELAY = -1;
1015 public const int IS_GET_FLASH_DURATION = -2;
1016 public const int IS_GET_MAX_FLASH_DELAY = -3;
1017 public const int IS_GET_MAX_FLASH_DURATION = -4;
1018 public const int IS_GET_MIN_FLASH_DELAY = -5;
1019 public const int IS_GET_MIN_FLASH_DURATION = -6;
1020 public const int IS_GET_FLASH_DELAY_GRANULARITY = -7;
1021 public const int IS_GET_FLASH_DURATION_GRANULARITY = -8;
1022
1023
1024 // ***********************************************
1025 // Digital IO constants
1026 // ***********************************************
1027 public const int IS_GET_IO = 0x8000;
1028 public const int IS_GET_IO_MASK = 0x8000;
1029 public const int IS_GET_SUPPORTED_IO_PORTS = 0x8004;
1030
1031
1032 // ***********************************************
1033 // EEPROM defines
1034 // ***********************************************
1035 public const int IS_EEPROM_MIN_USER_ADDRESS = 0;
1036 public const int IS_EEPROM_MAX_USER_ADDRESS = 63;
1037 public const int IS_EEPROM_MAX_USER_SPACE = 64;
1038
1039
1040 // ***********************************************
1041 // error report modes
1042 // ***********************************************
1043 public const int IS_GET_ERR_REP_MODE = 0x8000;
1044 public const int IS_DISABLE_ERR_REP = 0;
1045 public const int IS_ENABLE_ERR_REP = 1;
1046
1047
1048 // ***********************************************
1049 // display mode slectors
1050 // ***********************************************
1051 public const int IS_GET_DISPLAY_MODE = 0x8000;
1052 public const int IS_GET_DISPLAY_SIZE_X = 0x8000;
1053 public const int IS_GET_DISPLAY_SIZE_Y = 0x8001;
1054 public const int IS_GET_DISPLAY_POS_X = 0x8000;
1055 public const int IS_GET_DISPLAY_POS_Y = 0x8001;
1056
1057 public const int IS_SET_DM_DIB = 0x1;
1058 public const int IS_SET_DM_DIRECTDRAW = 0x2;
1059 public const int IS_SET_DM_DIRECT3D = 0x4;
1060 public const int IS_SET_DM_ALLOW_SYSMEM = 0x40;
1061 public const int IS_SET_DM_ALLOW_PRIMARY = 0x80;
1062
1063 // -- overlay display mode ---
1064 public const int IS_GET_DD_OVERLAY_SCALE = 0x8000;
1065
1066 public const int IS_SET_DM_ALLOW_OVERLAY = 0x100;
1067 public const int IS_SET_DM_ALLOW_SCALING = 0x200;
1068 public const int IS_SET_DM_MONO = 0x800;
1069 public const int IS_SET_DM_BAYER = 0x1000;
1070 public const int IS_SET_DM_YCBCR = 0x4000;
1071
1072 // -- backbuffer display mode ---
1073 public const int IS_SET_DM_BACKBUFFER = 0x2000;
1074
1075
1076
1077
1078 // ----------------------------------------------------------------------------
1079 // DirectRenderer commands
1080 // ----------------------------------------------------------------------------
1081 public const int DR_GET_OVERLAY_DC = 1;
1082 public const int DR_GET_MAX_OVERLAY_SIZE = 2;
1083 public const int DR_GET_OVERLAY_KEY_COLOR = 3;
1084 public const int DR_RELEASE_OVERLAY_DC = 4;
1085 public const int DR_SHOW_OVERLAY = 5;
1086 public const int DR_HIDE_OVERLAY = 6;
1087 public const int DR_SET_OVERLAY_SIZE = 7;
1088 public const int DR_SET_OVERLAY_POSITION = 8;
1089 public const int DR_SET_OVERLAY_KEY_COLOR = 9;
1090 public const int DR_SET_HWND = 10;
1091 public const int DR_ENABLE_SCALING = 11;
1092 public const int DR_DISABLE_SCALING = 12;
1093 public const int DR_CLEAR_OVERLAY = 13;
1094 public const int DR_ENABLE_SEMI_TRANSPARENT_OVERLAY = 14;
1095 public const int DR_DISABLE_SEMI_TRANSPARENT_OVERLAY = 15;
1096 public const int DR_CHECK_COMPATIBILITY = 16;
1097 public const int DR_SET_VSYNC_OFF = 17;
1098 public const int DR_SET_VSYNC_AUTO = 18;
1099 public const int DR_SET_USER_SYNC = 19;
1100 public const int DR_GET_USER_SYNC_POSITION_RANGE = 20;
1101 public const int DR_LOAD_OVERLAY_FROM_FILE = 21;
1102 public const int DR_STEAL_NEXT_FRAME = 22;
1103 public const int DR_SET_STEAL_FORMAT = 23;
1104 public const int DR_GET_STEAL_FORMAT = 24;
1105 public const int DR_ENABLE_IMAGE_SCALING = 25;
1106 public const int DR_GET_OVERLAY_SIZE = 26;
1107 public const int DR_CHECK_COLOR_MODE_SUPPORT = 27;
1108
1109 // ***********************************************
1110 // DirectDraw keying color constants
1111 // ***********************************************
1112 public const int IS_GET_KC_RED = 0x8000;
1113 public const int IS_GET_KC_GREEN = 0x8001;
1114 public const int IS_GET_KC_BLUE = 0x8002;
1115 public const int IS_GET_KC_RGB = 0x8003;
1116 public const int IS_GET_KC_INDEX = 0x8004;
1117
1118 public const int IS_SET_KC_DEFAULT = 0xFF00FF;
1119 public const int IS_SET_KC_DEFAULT_8 = 253;
1120
1121
1122 // ***********************************************
1123 // memoryboard
1124 // ***********************************************
1125 public const int IS_MEMORY_GET_COUNT = 0x8000;
1126 public const int IS_MEMORY_GET_DELAY = 0x8001;
1127 public const int IS_MEMORY_MODE_DISABLE = 0x0;
1128 public const int IS_MEMORY_USE_TRIGGER = 0xFFFF;
1129
1130
1131 // ***********************************************
1132 // Testimage modes
1133 // ***********************************************
1134 public const int IS_GET_TEST_IMAGE = 0x8000;
1135
1136 public const int IS_SET_TEST_IMAGE_DISABLED = 0x0000;
1137 public const int IS_SET_TEST_IMAGE_MEMORY_1 = 0x0001;
1138 public const int IS_SET_TEST_IMAGE_MEMORY_2 = 0x0002;
1139 public const int IS_SET_TEST_IMAGE_MEMORY_3 = 0x0003;
1140
1141 // ***********************************************
1142 // Led settings
1143 // ***********************************************
1144 public const int IS_SET_LED_OFF = 0x0000;
1145 public const int IS_SET_LED_ON = 0x0001;
1146 public const int IS_SET_LED_TOGGLE = 0x0002;
1147 public const int IS_GET_LED = 0x8000;
1148
1149 // ***********************************************
1150 // save options
1151 // ***********************************************
1152 public const int IS_SAVE_USE_ACTUAL_IMAGE_SIZE = 0x00010000;
1153
1154 // ***********************************************
1155 // renumeration modes
1156 // ***********************************************
1157 public const int IS_RENUM_BY_CAMERA = 0;
1158 public const int IS_RENUM_BY_HOST = 1;
1159
1160 // ***********************************************
1161 // event constants
1162 // ***********************************************
1163 public const int IS_SET_EVENT_FRAME = 2;
1164 public const int IS_SET_EVENT_EXTTRIG = 3;
1165 public const int IS_SET_EVENT_VSYNC = 4;
1166 public const int IS_SET_EVENT_SEQ = 5;
1167 public const int IS_SET_EVENT_STEAL = 6;
1168 public const int IS_SET_EVENT_TRANSFER_FAILED = 8;
1169 public const int IS_SET_EVENT_DEVICE_RECONNECTED = 9;
1170 public const int IS_SET_EVENT_MEMORY_MODE_FINISH = 10;
1171 public const int IS_SET_EVENT_FRAME_RECEIVED = 11;
1172 public const int IS_SET_EVENT_WB_FINISHED = 12;
1173 public const int IS_SET_EVENT_AUTOBRIGHTNESS_FINISHED = 13;
1174 public const int IS_SET_EVENT_OVERLAY_DATA_LOST = 16;
1175
1176 public const int IS_SET_EVENT_REMOVE = 128;
1177 public const int IS_SET_EVENT_REMOVAL = 129;
1178 public const int IS_SET_EVENT_NEW_DEVICE = 130;
1179
1180
1181 // ***********************************************
1182 // Window message defines
1183 // ***********************************************
1184 public const int IS_UEYE_MESSAGE = 1280; // WM_USER = 0x400, WM_USER + 0x100 = 0x500 (1280)
1185 public const int IS_FRAME = 0x0;
1186 public const int IS_SEQUENCE = 0x1;
1187 public const int IS_TRIGGER = 0x2;
1188 public const int IS_TRANSFER_FAILED = 0x3;
1189 public const int IS_DEVICE_RECONNECTED = 0x4;
1190 public const int IS_MEMORY_MODE_FINISH = 0x5;
1191 public const int IS_FRAME_RECEIVED = 0x6;
1192 public const int IS_GENERIC_ERROR = 0x7;
1193 public const int IS_STEAL_VIDEO = 0x8;
1194 public const int IS_WB_FINISHED = 0x9;
1195 public const int IS_AUTOBRIGHTNESS_FINISHED = 0xA;
1196 public const int IS_OVERLAY_DATA_LOST = 0xB;
1197
1198 public const int IS_DEVICE_REMOVED = 0x1000;
1199 public const int IS_DEVICE_REMOVAL = 0x1001;
1200 public const int IS_NEW_DEVICE = 0x1002;
1201
1202
1203 // ***********************************************
1204 // camera id constants
1205 // ***********************************************
1206 public const int IS_GET_CAMERA_ID = 0x8000;
1207
1208
1209 // ***********************************************
1210 // camera info constants
1211 // ***********************************************
1212 public const int IS_GET_STATUS = 0x8000;
1213
1214 public const int IS_EXT_TRIGGER_EVENT_CNT = 0;
1215 public const int IS_FIFO_OVR_CNT = 1;
1216 public const int IS_SEQUENCE_CNT = 2;
1217 public const int IS_LAST_FRAME_FIFO_OVR = 3;
1218 public const int IS_SEQUENCE_SIZE = 4;
1219 public const int IS_STEAL_FINISHED = 6;
1220 public const int IS_BOARD_REVISION = 9;
1221 public const int IS_MIRROR_BITMAP_UPDOWN = 10;
1222 public const int IS_BUS_OVR_CNT = 11;
1223 public const int IS_STEAL_ERROR_CNT = 12;
1224 public const int IS_WAIT_TIMEOUT = 19;
1225 public const int IS_TRIGGER_MISSED = 20;
1226 public const int IS_LAST_CAPTURE_ERROR = 21;
1227 public const int IS_PARAMETER_SET_1 = 22;
1228 public const int IS_PARAMETER_SET_2 = 23;
1229 public const int IS_STANDBY = 24;
1230 public const int IS_STANDBY_SUPPORTED = 25;
1231 public const int IS_QUEUED_IMAGE_EVENT_CNT = 26;
1232
1233
1234 // ***********************************************
1235 // interface type defines
1236 // ***********************************************
1237 public const int IS_INTERFACE_TYPE_USB = 0x40;
1238 public const int IS_INTERFACE_TYPE_ETH = 0x80;
1239
1240
1241 // ***********************************************
1242 // board type defines
1243 // ***********************************************
1244 public const int IS_BOARD_TYPE_FALCON = 1;
1245 public const int IS_BOARD_TYPE_EAGLE = 2;
1246 public const int IS_BOARD_TYPE_FALCON2 = 3;
1247 public const int IS_BOARD_TYPE_FALCON_PLUS = 7;
1248 public const int IS_BOARD_TYPE_FALCON_QUATTRO = 9;
1249 public const int IS_BOARD_TYPE_FALCON_DUO = 10;
1250 public const int IS_BOARD_TYPE_EAGLE_QUATTRO = 11;
1251 public const int IS_BOARD_TYPE_EAGLE_DUO = 12;
1252 public const int IS_BOARD_TYPE_UEYE_USB = (IS_INTERFACE_TYPE_USB + 0); // 0x40
1253 public const int IS_BOARD_TYPE_UEYE_USB_SE = IS_BOARD_TYPE_UEYE_USB; // 0x40
1254 public const int IS_BOARD_TYPE_UEYE_USB_RE = IS_BOARD_TYPE_UEYE_USB; // 0x40
1255 public const int IS_BOARD_TYPE_UEYE_USB_ME = (IS_INTERFACE_TYPE_USB + 1); // 0x41
1256 public const int IS_BOARD_TYPE_UEYE_USB_LE = (IS_INTERFACE_TYPE_USB + 2); // 0x42
1257 public const int IS_BOARD_TYPE_UEYE_USB_XS = (IS_INTERFACE_TYPE_USB + 3); // 0x43
1258 public const int IS_BOARD_TYPE_UEYE_ETH = IS_INTERFACE_TYPE_ETH; // 0x80
1259 public const int IS_BOARD_TYPE_UEYE_ETH_HE = IS_BOARD_TYPE_UEYE_ETH; // 0x80
1260 public const int IS_BOARD_TYPE_UEYE_ETH_SE = (IS_INTERFACE_TYPE_ETH + 1); // 0x81
1261 public const int IS_BOARD_TYPE_UEYE_ETH_RE = IS_BOARD_TYPE_UEYE_ETH_SE; // 0x81
1262 // ***********************************************
1263 // camera type defines
1264 // ***********************************************
1265 public const int IS_CAMERA_TYPE_UEYE_USB = IS_BOARD_TYPE_UEYE_USB_SE;
1266 public const int IS_CAMERA_TYPE_UEYE_USB_SE = IS_BOARD_TYPE_UEYE_USB_SE;
1267 public const int IS_CAMERA_TYPE_UEYE_USB_RE = IS_BOARD_TYPE_UEYE_USB_RE;
1268 public const int IS_CAMERA_TYPE_UEYE_USB_ME = IS_BOARD_TYPE_UEYE_USB_ME;
1269 public const int IS_CAMERA_TYPE_UEYE_USB_LE = IS_BOARD_TYPE_UEYE_USB_LE;
1270 public const int IS_CAMERA_TYPE_UEYE_ETH = IS_BOARD_TYPE_UEYE_ETH_HE;
1271 public const int IS_CAMERA_TYPE_UEYE_ETH_HE = IS_BOARD_TYPE_UEYE_ETH_HE;
1272 public const int IS_CAMERA_TYPE_UEYE_ETH_SE = IS_BOARD_TYPE_UEYE_ETH_SE;
1273 public const int IS_CAMERA_TYPE_UEYE_ETH_RE = IS_BOARD_TYPE_UEYE_ETH_RE;
1274 // ***********************************************
1275 // readable operation system defines
1276 // ***********************************************
1277 public const int IS_OS_UNDETERMINED = 0;
1278 public const int IS_OS_WIN95 = 1;
1279 public const int IS_OS_WINNT40 = 2;
1280 public const int IS_OS_WIN98 = 3;
1281 public const int IS_OS_WIN2000 = 4;
1282 public const int IS_OS_WINXP = 5;
1283 public const int IS_OS_WINME = 6;
1284 public const int IS_OS_WINNET = 7;
1285 public const int IS_OS_WINSERVER2003 = 8;
1286 public const int IS_OS_WINVISTA = 9;
1287 public const int IS_OS_LINUX24 = 10;
1288 public const int IS_OS_LINUX26 = 11;
1289 public const int IS_OS_WIN7 = 12;
1290
1291 // ***********************************************
1292 // usb bus speed
1293 // ***********************************************
1294 public const int IS_USB_10 = 0x0001;
1295 public const int IS_USB_11 = 0x0002;
1296 public const int IS_USB_20 = 0x0004;
1297 public const int IS_USB_30 = 0x0008;
1298 public const int IS_ETHERNET_10 = 0x0080;
1299 public const int IS_ETHERNET_100 = 0x0100;
1300 public const int IS_ETHERNET_1000 = 0x0200;
1301 public const int IS_ETHERNET_10000 = 0x0400;
1302
1303 public const int IS_USB_LOW_SPEED = 1;
1304 public const int IS_USB_FULL_SPEED = 12;
1305 public const int IS_USB_HIGH_SPEED = 480;
1306 public const int IS_USB_SUPER_SPEED = 5000;
1307 public const int IS_ETHERNET_10Base = 10;
1308 public const int IS_ETHERNET_100Base = 100;
1309 public const int IS_ETHERNET_1000Base = 1000;
1310 public const int IS_ETHERNET_10GBase = 10000;
1311
1312 // ***********************************************
1313 // HDR
1314 // ***********************************************
1315 public const int IS_HDR_NOT_SUPPORTED = 0;
1316 public const int IS_HDR_KNEEPOINTS = 1;
1317 public const int IS_DISABLE_HDR = 0;
1318 public const int IS_ENABLE_HDR = 1;
1319
1320 // ----------------------------------------------
1321 // Test images
1322 // ----------------------------------------------
1323 public const int IS_TEST_IMAGE_NONE = 0x00000000;
1324 public const int IS_TEST_IMAGE_WHITE = 0x00000001;
1325 public const int IS_TEST_IMAGE_BLACK = 0x00000002;
1326 public const int IS_TEST_IMAGE_HORIZONTAL_GREYSCALE = 0x00000004;
1327 public const int IS_TEST_IMAGE_VERTICAL_GREYSCALE = 0x00000008;
1328 public const int IS_TEST_IMAGE_DIAGONAL_GREYSCALE = 0x00000010;
1329 public const int IS_TEST_IMAGE_WEDGE_GRAY = 0x00000020;
1330 public const int IS_TEST_IMAGE_WEDGE_COLOR = 0x00000040;
1331 public const int IS_TEST_IMAGE_ANIMATED_WEDGE_GRAY = 0x00000080;
1332
1333 public const int IS_TEST_IMAGE_ANIMATED_WEDGE_COLOR = 0x00000100;
1334 public const int IS_TEST_IMAGE_MONO_BARS = 0x00000200;
1335 public const int IS_TEST_IMAGE_COLOR_BARS1 = 0x00000400;
1336 public const int IS_TEST_IMAGE_COLOR_BARS2 = 0x00000800;
1337 public const int IS_TEST_IMAGE_GREYSCALE1 = 0x00001000;
1338 public const int IS_TEST_IMAGE_GREY_AND_COLOR_BARS = 0x00002000;
1339 public const int IS_TEST_IMAGE_MOVING_GREY_AND_COLOR_BARS = 0x00004000;
1340 public const int IS_TEST_IMAGE_ANIMATED_LINE = 0x00008000;
1341
1342 public const int IS_TEST_IMAGE_ALTERNATE_PATTERN = 0x00010000;
1343 public const int IS_TEST_IMAGE_VARIABLE_GREY = 0x00020000;
1344 public const int IS_TEST_IMAGE_MONOCHROME_HORIZONTAL_BARS = 0x00040000;
1345 public const int IS_TEST_IMAGE_MONOCHROME_VERTICAL_BARS = 0x00080000;
1346 public const int IS_TEST_IMAGE_CURSOR_H = 0x00100000;
1347 public const int IS_TEST_IMAGE_CURSOR_V = 0x00200000;
1348 public const int IS_TEST_IMAGE_COLDPIXEL_GRID = 0x00400000;
1349 public const int IS_TEST_IMAGE_HOTPIXEL_GRID = 0x00800000;
1350
1351 public const int IS_TEST_IMAGE_VARIABLE_RED_PART = 0x01000000;
1352 public const int IS_TEST_IMAGE_VARIABLE_GREEN_PART = 0x02000000;
1353 public const int IS_TEST_IMAGE_VARIABLE_BLUE_PART = 0x04000000;
1354 public const int IS_TEST_IMAGE_SHADING_IMAGE = 0x08000000;
1355 public const int IS_TEST_IMAGE_WEDGE_GRAY_SENSOR = 0x10000000;
1356 public const int IS_TEST_IMAGE_ANIMATED_WEDGE_GRAY_SENSOR = 0x20000000;
1357 public const int IS_TEST_IMAGE_RAMPING_PATTERN = 0x40000000;
1358 // = 0x80000000;
1359
1360
1361 // ----------------------------------------------------------------------------
1362 // Sensor scaler
1363 // ----------------------------------------------------------------------------
1364 public const int IS_ENABLE_SENSOR_SCALER = 1;
1365 public const int IS_ENABLE_ANTI_ALIASING = 2;
1366
1367
1368 // ***********************************************
1369 // Timeouts
1370 // ***********************************************
1371 public const int IS_TRIGGER_TIMEOUT = 0;
1372
1373
1374 // ***********************************************
1375 // SetOptimalCameraTiming
1376 // ***********************************************
1377 public const int IS_BEST_PCLK_RUN_ONCE = 0;
1378
1379 // ***********************************************
1380 // sequence flags
1381 // ***********************************************
1382 public const int IS_LOCK_LAST_BUFFER = 0x8002;
1383 public const int IS_GET_ALLOC_ID_OF_THIS_BUF = 0x8004;
1384 public const int IS_GET_ALLOC_ID_OF_LAST_BUF = 0x8008;
1385 public const int IS_USE_ALLOC_ID = 0x8000;
1386 public const int IS_USE_CURRENT_IMG_SIZE = 0xC000;
1387
1388 // ***********************************************
1389 // BOARDINFO structure
1390 // ***********************************************
1391 public struct CAMINFO
1392 {
1393 public string SerNo; //12
1394 public string id; //20
1395 public string Version; //10
1396 public string Date; //12
1397 public byte Select;
1398 public byte Type;
1399 public string Reserverd; //8
1400 }
1401
1402
1403 // ***********************************************
1404 // SENSORINFO structure
1405 // ***********************************************
1406 public struct SENSORINFO
1407 {
1408 public int SensorID;
1409 public string strSensorName; //32
1410 public byte nColorMode;
1411 public int nMaxWidth;
1412 public int nMaxHeight;
1413 public bool bMasterGain;
1414 public bool bRGain;
1415 public bool bGGain;
1416 public bool bBGain;
1417 public bool bGlobShutter;
1418 public string reserved; //16
1419 }
1420
1421
1422 // ***********************************************
1423 // REVISIONINFO structure
1424 // ***********************************************
1425 public struct REVISIONINFO
1426 {
1427 public int size; // 2
1428 public int Sensor; // 2
1429 public int Cypress; // 2
1430 public long Blackfin; // 4
1431 public int DspFirmware; // 2
1432 // --12
1433 public int USB_Board; // 2
1434 public int Sensor_Board; // 2
1435 public int Processing_Board; // 2
1436 public int Memory_Board; // 2
1437 public int Housing; // 2
1438 public int Filter; // 2
1439 public int Timing_Board; // 2
1440 public int Product; // 2
1441 // --24
1442 public string reserved; // --128
1443 }
1444
1445
1446 // ************************************************************************/
1447 // Capture errors */
1448 // ************************************************************************/
1449 enum UEYE_CAPTURE_ERROR
1450 {
1451 IS_CAPERR_API_NO_DEST_MEM = 0xa2,
1452 IS_CAPERR_API_CONVERSION_FAILED = 0xa3,
1453 IS_CAPERR_API_IMAGE_LOCKED = 0xa5,
1454
1455 IS_CAPERR_DRV_OUT_OF_BUFFERS = 0xb2,
1456 IS_CAPERR_DRV_DEVICE_NOT_READY = 0xb4,
1457
1458 IS_CAPERR_USB_TRANSFER_FAILED = 0xc7,
1459
1460 IS_CAPERR_DEV_TIMEOUT = 0xd6,
1461
1462 IS_CAPERR_ETH_BUFFER_OVERRUN = 0xe4,
1463 IS_CAPERR_ETH_MISSED_IMAGES = 0xe5
1464 }
1465
1466 public struct UEYE_CAPTURE_ERROR_INFO
1467 {
1468 public long dwCapErrCnt_Total;
1469 public byte[] reserved;
1470 public long[] adwCapErrCnt_Detail; // access via UEYE_CAPTURE_ERROR
1471 }
1472
1473
1474 // ***********************************************
1475 // UEYE_CAMERA_INFO structure
1476 // ***********************************************
1477 public struct UEYE_CAMERA_INFO
1478 {
1479 public long dwCameraID; // this is the user defineable camera ID
1480 public long dwDeviceID; // this is the systems enumeration ID
1481 public long dwSensorID; // this is the sensor ID e.g. IS_SENSOR_UI141X_M
1482 public long dwInUse; // flag, whether the camera is in use or not
1483 public string SerNo; // serial numer of the camera 16
1484 public string Model; // model name of the camera 16
1485 public long dwStatus; // various flags with camera status
1486 public string dwReserved;
1487 }
1488
1489 // usage of the list:
1490 // 1. call the DLL with .dwCount = 0
1491 // 2. DLL returns .dwCount = N (N = number of available cameras)
1492 // 3. call DLL with .dwCount = N and a pointer to UEYE_CAMERA_LIST with
1493 // and array of UEYE_CAMERA_INFO[N]
1494 // 4. DLL will fill in the array with the camera infos and
1495 // will update the .dwCount member with the actual number of cameras
1496 // because there may be a change in number of cameras between step 2 and 3
1497 // 5. check if there's a difference in actual .dwCount and formerly
1498 // reported value of N and call DLL again with an updated array size
1499 // ***********************************************
1500 // UEYE_CAMERA_LIST structure
1501 // ***********************************************
1502 public struct UEYE_CAMERA_LIST
1503 {
1504 public long dwCount;
1505 public UEYE_CAMERA_INFO [] uci;
1506 }
1507
1508
1509 // ***********************************************
1510 // auto feature structs and definitions
1511 // ***********************************************
1512 public const int AC_SHUTTER = 0x00000001;
1513 public const int AC_GAIN = 0x00000002;
1514 public const int AC_WHITEBAL = 0x00000004;
1515 public const int AC_WB_RED_CHANNEL = 0x00000008;
1516 public const int AC_WB_GREEN_CHANNEL = 0x00000010;
1517 public const int AC_WB_BLUE_CHANNEL = 0x00000020;
1518 public const int AC_FRAMERATE = 0x00000040;
1519 public const int AC_SENSOR_SHUTTER = 0x00000080;
1520 public const int AC_SENSOR_GAIN = 0x00000100;
1521 public const int AC_SENSOR_GAIN_SHUTTER = 0x00000200;
1522 public const int AC_SENSOR_FRAMERATE = 0x00000400;
1523 public const int AC_SENSOR_WB = 0x00000800;
1524 public const int AC_SENSOR_AUTO_REFERENCE = 0x00001000;
1525 public const int AC_SENSOR_AUTO_SPEED = 0x00002000;
1526 public const int AC_SENSOR_AUTO_HYSTERESIS = 0x00004000;
1527 public const int AC_SENSOR_AUTO_SKIPFRAMES = 0x00008000;
1528 public const int AC_SENSOR_AUTO_CONTRAST_CORRECTION = 0x00010000;
1529 public const int AC_SENSOR_AUTO_CONTRAST_FDT_AOI = 0x00020000;
1530 public const int AC_SENSOR_AUTO_BACKLIGHT_COMP = 0x00040000;
1531
1532 public const int ACS_ADJUSTING = 0x00000001;
1533 public const int ACS_FINISHED = 0x00000002;
1534 public const int ACS_DISABLED = 0x00000004;
1535
1536 // ***********************************************
1537 // Global Shutter definitions
1538 // ***********************************************
1539 public const int IS_SET_GLOBAL_SHUTTER_ON = 0x0001;
1540 public const int IS_SET_GLOBAL_SHUTTER_OFF = 0x0000;
1541 public const int IS_GET_GLOBAL_SHUTTER = 0x0010;
1542 public const int IS_GET_SUPPORTED_GLOBAL_SHUTTER = 0x0020;
1543
1544
1545 // ***********************************************
1546 // AUTO_BRIGHT_STATUS structure
1547 // ***********************************************
1548 public struct AUTO_BRIGHT_STATUS
1549 {
1550 public long curValue; // current average greylevel
1551 public long curError; // current auto brightness error
1552 public long curController; // current active brightness controller -> AC_x
1553 public long curCtrlStatus; // current control status -> ACS_x
1554 }
1555
1556
1557 // ***********************************************
1558 // AUTO_WB_STATUS structure
1559 // ***********************************************
1560 public struct AUTO_WB_CHANNEL_STATUS
1561 {
1562 public long curValue; // current average greylevel
1563 public long curError; // current auto wb error
1564 public long curCtrlStatus; // current control status -> ACS_x
1565 }
1566
1567 // ***********************************************
1568 // AUTO_WB_STATUS structure
1569 // ***********************************************
1570 public struct AUTO_WB_STATUS
1571 {
1572 public AUTO_WB_CHANNEL_STATUS RedChannel;
1573 public AUTO_WB_CHANNEL_STATUS GreenChannel;
1574 public AUTO_WB_CHANNEL_STATUS BlueChannel;
1575 public long curController; // current active wb controller -> AC_x
1576 }
1577
1578 // ***********************************************
1579 // auto shutter photometry capabilities
1580 // ***********************************************
1581 public const int AS_PM_NONE = 0;
1582 public const int AS_PM_SENS_CENTER_WEIGHTED = 0x00000001; // sensor auto shutter: center weighted
1583 public const int AS_PM_SENS_CENTER_SPOT = 0x00000002; // sensor auto shutter: center spot
1584 public const int AS_PM_SENS_PORTRAIT = 0x00000004; // sensor auto shutter: portrait
1585 public const int AS_PM_SENS_LANDSCAPE = 0x00000008; // sensor auto shutter: landscape
1586
1587 // ***********************************************
1588 // auto gain photometry capabilities
1589 // ***********************************************
1590 public const int AG_PM_NONE = 0;
1591 public const int AG_PM_SENS_CENTER_WEIGHTED = 0x00000001; // sensor auto gain: center weighted
1592 public const int AG_PM_SENS_CENTER_SPOT = 0x00000002; // sensor auto gain: center spot
1593 public const int AG_PM_SENS_PORTRAIT = 0x00000004; // sensor auto gain: portrait
1594 public const int AG_PM_SENS_LANDSCAPE = 0x00000008; // sensor auto gain: landscape
1595
1596 // ***********************************************
1597 // anti flicker modes
1598 // ***********************************************
1599 public const int ANTIFLCK_MODE_OFF = 0;
1600 public const int ANTIFLCK_MODE_SENS_AUTO = 0x00000001;
1601 public const int ANTIFLCK_MODE_SENS_50_FIXED = 0x00000002;
1602 public const int ANTIFLCK_MODE_SENS_60_FIXED = 0x00000004;
1603
1604 // ***********************************************
1605 // whitebalance modes
1606 // ***********************************************
1607 public const int WB_MODE_DISABLE = 0;
1608 public const int WB_MODE_AUTO = 0x00000001;
1609 public const int WB_MODE_ALL_PULLIN = 0x00000002;
1610 public const int WB_MODE_INCANDESCENT_LAMP = 0x00000004;
1611 public const int WB_MODE_FLUORESCENT_DL = 0x00000008;
1612 public const int WB_MODE_OUTDOOR_CLEAR_SKY = 0x00000010;
1613 public const int WB_MODE_OUTDOOR_CLOUDY = 0x00000020;
1614
1615 // ***********************************************
1616 // UEYE_AUTO_INFO structure
1617 // ***********************************************
1618 public struct UEYE_AUTO_INFO
1619 {
1620 public long AutoAbility; // autocontrol ability
1621 public AUTO_BRIGHT_STATUS sBrightCtrlStatus; // brightness autocontrol status
1622 public AUTO_WB_STATUS sWBCtrlStatus; // white balance autocontrol status
1623 public long AShutterPhotomCaps; // auto shutter photometry capabilities(AUTO_SHUTTER_PHOTOM)
1624 public long AGainPhotomCaps; // auto gain photometry capabilities (AUTO_GAIN_PHOTOM)
1625 public long AAntiFlickerCaps; // auto anti-flicker capabilities
1626 public long SensorWBModeCaps; // white balance mode capabilities
1627 public string reserved;
1628 }
1629
1630 // --------------------------------------------------------------------
1631 // new datatypes only valid for uEye ETH - BEGIN
1632 // --------------------------------------------------------------------
1633
1634 // ***********************************************
1635 // IP V4 address
1636 // ***********************************************
1637 //using System.Runtime.InteropServices;
1638 [StructLayout(LayoutKind.Explicit)]
1639 public struct UEYE_ETH_ADDR_IPV4
1640 {
1641 [FieldOffset(0)] public byte by1;
1642 [FieldOffset(1)] public byte by2;
1643 [FieldOffset(2)] public byte by3;
1644 [FieldOffset(3)] public byte by4;
1645
1646 [FieldOffset(0)] public uint dwAddr;
1647 }
1648
1649 // ***********************************************
1650 // Ethernet address
1651 // ***********************************************
1652 public struct UEYE_ETH_ADDR_MAC
1653 {
1654 public string abyOctet; // [6]
1655 }
1656
1657 // ***********************************************
1658 // IP configuration
1659 // ***********************************************
1660 public struct UEYE_ETH_IP_CONFIGURATION
1661 {
1662 public UEYE_ETH_ADDR_IPV4 ipAddress; // IP address
1663 public UEYE_ETH_ADDR_IPV4 ipSubnetmask; // IP subnetmask
1664 }
1665
1666 // ***********************************************
1667 // values for UEYE_ETH_DEVICE_INFO_HEARTBEAT::dwStatus
1668 // ***********************************************
1669 public const uint IS_ETH_DEVSTATUS_READY_TO_OPERATE = 0x00000001; // device is ready to operate
1670 public const uint IS_ETH_DEVSTATUS_TESTING_IP_CURRENT = 0x00000002; // device is (arp-)probing its current ip
1671 public const uint IS_ETH_DEVSTATUS_TESTING_IP_PERSISTENT = 0x00000004; // device is (arp-)probing its persistent ip
1672 public const uint IS_ETH_DEVSTATUS_TESTING_IP_RANGE = 0x00000008; // device is (arp-)probing the autocfg ip range
1673
1674 public const uint IS_ETH_DEVSTATUS_INAPPLICABLE_IP_CURRENT = 0x00000010; // current ip is inapplicable
1675 public const uint IS_ETH_DEVSTATUS_INAPPLICABLE_IP_PERSISTENT = 0x00000020; // persistent ip is inapplicable
1676 public const uint IS_ETH_DEVSTATUS_INAPPLICABLE_IP_RANGE = 0x00000040; // autocfg ip range is inapplicable
1677
1678 public const uint IS_ETH_DEVSTATUS_UNPAIRED = 0x00000100; // device is unpaired
1679 public const uint IS_ETH_DEVSTATUS_PAIRING_IN_PROGRESS = 0x00000200; // device is being paired
1680 public const uint IS_ETH_DEVSTATUS_PAIRED = 0x00000400; // device is paired
1681
1682 public const uint IS_ETH_DEVSTATUS_FORCE_100MBPS = 0x00001000; // device phy is configured to 100 Mbps */
1683 public const uint IS_ETH_DEVSTATUS_NO_COMPORT = 0x00002000; // device does not support ueye eth comport */
1684
1685 public const uint IS_ETH_DEVSTATUS_RECEIVING_FW_STARTER = 0x00010000; // device is receiving the starter firmware
1686 public const uint IS_ETH_DEVSTATUS_RECEIVING_FW_RUNTIME = 0x00020000; // device is receiving the runtime firmware
1687 public const uint IS_ETH_DEVSTATUS_INAPPLICABLE_FW_RUNTIME = 0x00040000; // runtime firmware is inapplicable
1688 public const uint IS_ETH_DEVSTATUS_INAPPLICABLE_FW_STARTER = 0x00080000; // starter firmware is inapplicable
1689
1690 public const uint IS_ETH_DEVSTATUS_REBOOTING_FW_RUNTIME = 0x00100000; // device is rebooting to runtime firmware
1691 public const uint IS_ETH_DEVSTATUS_REBOOTING_FW_STARTER = 0x00200000; // device is rebooting to starter firmware
1692 public const uint IS_ETH_DEVSTATUS_REBOOTING_FW_FAILSAFE = 0x00400000; // device is rebooting to failsafe firmware
1693
1694 public const uint IS_ETH_DEVSTATUS_RUNTIME_FW_ERR0 = 0x80000000; // checksum error runtime firmware
1695
1696 // ***********************************************
1697 // heartbeat info transmitted periodically by a device
1698 // contained in UEYE_ETH_DEVICE_INFO
1699 // ***********************************************
1700 public struct UEYE_ETH_DEVICE_INFO_HEARTBEAT
1701 {
1702 public string abySerialNumber; // camera's serial number (string) // [12]
1703 public byte byDeviceType; // device type / board type, 0x80 for ETH
1704 public byte byCameraID; // camera id
1705 public ushort wSensorID; // size of camera's image memory in MB
1706 public ushort wSizeImgMem_MB; // size of camera's image memory in MB
1707 public uint dwVerStarterFirmware; // starter firmware version
1708 public uint dwVerRuntimeFirmware; // runtime firmware version
1709 public uint dwStatus; // camera status flags
1710 public ushort wTemperature; // camera temperature
1711 public ushort wLinkSpeed_Mb; // link speed in Mb
1712 public UEYE_ETH_ADDR_MAC macDevice; // camera's MAC address
1713 public ushort wComportOffset; // comport offset from 100, valid range -99 to +156
1714 public UEYE_ETH_IP_CONFIGURATION ipcfgPersistentIpCfg; // persistent IP configuration
1715 public UEYE_ETH_IP_CONFIGURATION ipcfgCurrentIpCfg; // current IP configuration
1716 public UEYE_ETH_ADDR_MAC macPairedHost; // paired host's MAC address
1717 public UEYE_ETH_ADDR_IPV4 ipPairedHostIp; // paired host's IP address
1718 public UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin; // begin of IP address range
1719 public UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd; // end of IP address range
1720 public string abyUserSpace; // user space data (first 8 bytes) // [8]
1721 }
1722
1723 // ***********************************************
1724 // values for UEYE_ETH_DEVICE_INFO_CONTROL::dwControlStatus
1725 // ***********************************************
1726 public const uint IS_ETH_CTRLSTATUS_AVAILABLE= 0x00000001; // device is available TO US
1727 public const uint IS_ETH_CTRLSTATUS_ACCESSIBLE1 = 0x00000002; // device is accessible BY US, i.e. directly 'unicastable'
1728 public const uint IS_ETH_CTRLSTATUS_ACCESSIBLE2 = 0x00000004; // device is accessible BY US, i.e. not on persistent ip and adapters ip autocfg range is valid
1729 public const uint IS_ETH_CTRLSTATUS_PERSISTENT_IP_USED = 0x00000010; // device is running on persistent ip configuration
1730 public const uint IS_ETH_CTRLSTATUS_COMPATIBLE = 0x00000020; // device is compatible TO US
1731 public const uint IS_ETH_CTRLSTATUS_ADAPTER_ON_DHCP = 0x00000040; // adapter is configured to use dhcp
1732 public const uint IS_ETH_CTRLSTATUS_UNPAIRING_IN_PROGRESS = 0x00000100; // device is being unpaired FROM US
1733 public const uint IS_ETH_CTRLSTATUS_PAIRING_IN_PROGRESS = 0x00000200; // device is being paired TO US
1734 public const uint IS_ETH_CTRLSTATUS_PAIRED = 0x00001000; // device is paired TO US
1735 public const uint IS_ETH_CTRLSTATUS_FW_UPLOAD_STARTER = 0x00010000; // device is receiving the starter firmware
1736 public const uint IS_ETH_CTRLSTATUS_FW_UPLOAD_RUNTIME = 0x00020000; // device is receiving the runtime firmware
1737 public const uint IS_ETH_CTRLSTATUS_REBOOTING = 0x00100000; // device is rebooting
1738 public const uint IS_ETH_CTRLSTATUS_INITIALIZED = 0x08000000; // device object is initialized
1739 public const uint IS_ETH_CTRLSTATUS_TO_BE_DELETED = 0x40000000; // device object is being deleted
1740 public const uint IS_ETH_CTRLSTATUS_TO_BE_REMOVED = 0x80000000; // device object is being removed
1741
1742 // ***********************************************
1743 // control info for a listed device
1744 // contained in UEYE_ETH_DEVICE_INFO
1745 // ***********************************************
1746 public struct UEYE_ETH_DEVICE_INFO_CONTROL
1747 {
1748 public uint dwDeviceID; // device's unique id
1749 public uint dwControlStatus; // device control status
1750 }
1751
1752 // ***********************************************
1753 // Ethernet configuration
1754 // ***********************************************
1755 public struct UEYE_ETH_ETHERNET_CONFIGURATION
1756 {
1757 public UEYE_ETH_IP_CONFIGURATION ipcfg;
1758 public UEYE_ETH_ADDR_MAC mac;
1759 }
1760
1761 // ***********************************************
1762 // autocfg ip setup
1763 // ***********************************************
1764 public struct UEYE_ETH_AUTOCFG_IP_SETUP
1765 {
1766 public UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin; // begin of ip address range for devices
1767 public UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd; // end of ip address range for devices
1768 }
1769
1770 // ***********************************************
1771 // values for incoming packets filter setup
1772 // notice: arp and icmp (ping) packets are always passed!
1773 // ***********************************************
1774 public const int IS_ETH_PCKTFLT_PASSALL = 0; // pass all packets to OS
1775 public const int IS_ETH_PCKTFLT_BLOCKUEGET = 1; // block UEGET packets to the OS
1776 public const int IS_ETH_PCKTFLT_BLOCKALL = 2; // block all packets to the OS
1777
1778 // ***********************************************
1779 // control info for a device's network adapter
1780 // contained in UEYE_ETH_DEVICE_INFO
1781 // ***********************************************
1782 public struct UEYE_ETH_ADAPTER_INFO
1783 {
1784 public uint dwAdapterID; // adapter's unique id
1785 public UEYE_ETH_ETHERNET_CONFIGURATION ethcfg; // adapter's eth configuration
1786 public bool bIsEnabledDHCP; // adapter's dhcp enabled flag
1787 public UEYE_ETH_AUTOCFG_IP_SETUP autoCfgIp;
1788 public bool bIsValidAutoCfgIpRange; // the given range is valid when:
1789 // - begin and end are valid ip addresses
1790 // - begin and end are in the subnet of the adapter
1791 public uint dwCntDevicesKnown; // count of listed Known devices
1792 public uint dwCntDevicesPaired; // count of listed Paired devices
1793 public ushort wPacketFilter; // Setting for the Incoming Packets Filter. see UEYE_ETH_PACKETFILTER_SETUP enum above.
1794 }
1795
1796 // ***********************************************
1797 // driver info
1798 // contained in UEYE_ETH_DEVICE_INFO
1799 // ***********************************************
1800 public struct UEYE_ETH_DRIVER_INFO
1801 {
1802 public uint dwMinVerStarterFirmware; // minimum version compatible starter firmware
1803 public uint dwMaxVerStarterFirmware; //maximum version compatible starter firmware
1804 }
1805
1806 // ***********************************************
1807 // use GetEthDeviceInfo() to obtain this data.
1808 // ***********************************************
1809 public struct UEYE_ETH_DEVICE_INFO
1810 {
1811 public UEYE_ETH_DEVICE_INFO_HEARTBEAT infoDevHeartbeat;
1812 public UEYE_ETH_DEVICE_INFO_CONTROL infoDevControl;
1813 public UEYE_ETH_ADAPTER_INFO infoAdapter;
1814 public UEYE_ETH_DRIVER_INFO infoDriver;
1815 }
1816
1817
1818 // ***********************************************
1819 // ***********************************************
1820 public struct UEYE_COMPORT_CONFIGURATION
1821 {
1822 public int wComportNumber;
1823 }
1824
1825 // --------------------------------------------------------------------
1826 // new datatypes only valid for uEye ETH - END
1827 // --------------------------------------------------------------------
1828
1829
1830 // ***********************************************
1831 // exports from uEye_api.dll
1832 // ***********************************************
1833 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_StopLiveVideo")] // is_StopLiveVideo
1834 private static extern int is_StopLiveVideo(int hCam, int mode);
1835 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_FreezeVideo")] // is_FreezeVideo
1836 private static extern int is_FreezeVideo(int hCam, int wait);
1837 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_CaptureVideo")] // is_CaptureVideo
1838 private static extern int is_CaptureVideo (int hCam, int Wait);
1839 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_IsVideoFinish")] // is_IsVideoFinish
1840 private static extern int is_IsVideoFinish (int hCam, ref int pBool);
1841 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_HasVideoStarted")] // is_HasVideoStarted
1842 private static extern int is_HasVideoStarted (int hCam, ref int pBool);
1843
1844 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBrightness")] // is_SetBrightness
1845 private static extern int is_SetBrightness (int hCam, int bright);
1846 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetContrast")] // is_SetContrast
1847 private static extern int is_SetContrast (int hCam, int Cont);
1848 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetGamma")] // is_SetGamma
1849 private static extern int is_SetGamma (int hCam, int mode);
1850
1851 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_AllocImageMem")] // is_AllocImageMem
1852 private static extern int is_AllocImageMem (int hCam, int width, int height, int bits, ref IntPtr ppcImg, ref int pid);
1853 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_FreeImageMem")] // is_FreeImageMem
1854 private static extern int is_FreeImageMem (int hCam, IntPtr pImgMem, int id);
1855 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetImageMem")] // is_SetImageMem
1856 private static extern int is_SetImageMem (int hCam, IntPtr pcImg, int id);
1857 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetImageMem")] // is_GetImageMem
1858 private static extern int is_GetImageMem (int hCam, ref IntPtr ppMem);
1859 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetActiveImageMem")] // is_GetActiveImageMem
1860 private static extern int is_GetActiveImageMem (int hCam, ref IntPtr ppcMem, ref int pnID);
1861 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_InquireImageMem")] // is_InquireImageMem
1862 private static extern int is_InquireImageMem (int hCam, IntPtr pcMem, int nID, ref int pnX, ref int pnY, ref int pnBits, ref int pnPitch);
1863 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetImageMemPitch")] // is_GetImageMemPitch
1864 private static extern int is_GetImageMemPitch (int hCam, ref int pPitch);
1865
1866 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetAllocatedImageMem")] // is_SetAllocatedImageMem
1867 private static extern int is_SetAllocatedImageMem (int hCam, int width, int height, int bpp, IntPtr pImgMem, ref int id);
1868 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveImageMem")] // is_SaveImageMem
1869 private static extern int is_SaveImageMem (int hCam, byte[] strFile, IntPtr pMem, int nId);
1870 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_CopyImageMem")] // is_CopyImageMem
1871 private static extern int is_CopyImageMem (int hCam, IntPtr pcSource, int nID, IntPtr pcDest);
1872 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_CopyImageMemLines")] // is_CopyImageMemLines
1873 private static extern int is_CopyImageMemLines (int hCam, IntPtr pcSource, int nID, int nLines, IntPtr pcDest);
1874
1875 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_AddToSequence")] // is_AddToSequence
1876 private static extern int is_AddToSequence (int hCam, IntPtr pMem, int nId);
1877 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ClearSequence")] // is_ClearSequence
1878 private static extern int is_ClearSequence(int hCam);
1879 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetActSeqBuf")] // is_GetActSeqBuf
1880 private static extern int is_GetActSeqBuf (int hCam, ref int pnNum, ref IntPtr ppcMem, ref IntPtr ppcMemLast);
1881 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LockSeqBuf")] // is_LockSeqBuf
1882 private static extern int is_LockSeqBuf (int hCam, int nNum, IntPtr pcMem);
1883 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_UnlockSeqBuf")] // is_UnlockSeqBuf
1884 private static extern int is_UnlockSeqBuf (int hCam, int nNum, IntPtr pcMem);
1885
1886 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetImageSize")] // is_SetImageSize
1887 private static extern int is_SetImageSize (int hCam, int X, int Y);
1888 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetImagePos")] // is_SetImagePos
1889 private static extern int is_SetImagePos (int hCam, int X, int Y);
1890
1891 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetError")] // is_GetError
1892 private static extern int is_GetError (int hCam, ref int pErr, IntPtr ppcErr);
1893 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetErrorReport")] // is_SetErrorReport
1894 private static extern int is_SetErrorReport (int hCam, int mode);
1895
1896 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ReadEEPROM")] // is_ReadEEPROM
1897 private static extern int is_ReadEEPROM (int hCam, int Adr, byte[] pcString, int count);
1898 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_WriteEEPROM")] // is_WriteEEPROM
1899 private static extern int is_WriteEEPROM (int hCam, int Adr, byte[] pcString, int count);
1900 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveImage")] // is_SaveImage
1901 private static extern int is_SaveImage (int hCam, byte[] pcString);
1902
1903 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetColorMode")] // is_SetColorMode
1904 private static extern int is_SetColorMode (int hCam, int ColorMode);
1905 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetColorDepth")] // is_GetColorDepth
1906 private static extern int is_GetColorDepth (int hCam, ref int pnCol, ref int pnColMode);
1907 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_RenderBitmap")] // is_RenderBitmap
1908 private static extern int is_RenderBitmap (int hCam, int MemID, int hWnd, int mode);
1909
1910 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetDisplayMode")] // is_SetDisplayMode
1911 private static extern int is_SetDisplayMode(int hCam, int mode );
1912 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetDC")] // is_GetDC
1913 private static extern int is_GetDC (int hCam, ref int phDC);
1914 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ReleaseDC")] // is_ReleaseDC
1915 private static extern int is_ReleaseDC (int hCam, int hDC);
1916 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_UpdateDisplay")] // is_UpdateDisplay
1917 private static extern int is_UpdateDisplay (int hCam);
1918 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetDisplayPos")] // is_SetDisplayPos
1919 private static extern int is_SetDisplayPos (int hCam, int X, int Y);
1920 // Direct Draw
1921 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LockDDOverlayMem")] // is_LockDDOverlayMem
1922 private static extern int is_LockDDOverlayMem (int hCam, ref IntPtr ppMem, ref int pPitch);
1923 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_UnlockDDOverlayMem")] // is_UnlockDDOverlayMem
1924 private static extern int is_UnlockDDOverlayMem(int hCam);
1925 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LockDDMem")] // is_LockDDMem
1926 private static extern int is_LockDDMem (int hCam, ref IntPtr ppMem, ref int pPitch);
1927 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_UnlockDDMem")] // is_UnlockDDMem
1928 private static extern int is_UnlockDDMem(int hCam);
1929 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetDDUpdateTime")] // is_SetDDUpdateTime
1930 private static extern int is_SetDDUpdateTime (int hCam, int ms);
1931 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_EnableDDOverlay")] // is_EnableDDOverlay
1932 private static extern int is_EnableDDOverlay (int hCam);
1933 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_DisableDDOverlay")] // is_DisableDDOverlay
1934 private static extern int is_DisableDDOverlay (int hCam);
1935 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ShowDDOverlay")] // is_ShowDDOverlay
1936 private static extern int is_ShowDDOverlay (int hCam);
1937 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_HideDDOverlay")] // is_HideDDOverlay
1938 private static extern int is_HideDDOverlay (int hCam);
1939 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetDDOvlSurface")] // is_GetDDOvlSurface
1940 private static extern int is_GetDDOvlSurface(int hCam, ref IntPtr ppDDSurf);
1941 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetKeyColor")] // is_SetKeyColor
1942 private static extern int is_SetKeyColor (int hCam, int r, int g, int b);
1943 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_StealVideo")] // is_StealVideo
1944 private static extern int is_StealVideo (int hCam, int Wait);
1945 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetHwnd")] // is_SetHwnd
1946 private static extern int is_SetHwnd (int hCam, int hWnd);
1947
1948 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetVsyncCount")] // is_GetVsyncCount
1949 private static extern int is_GetVsyncCount (int hCam, ref long pIntr, ref long pActIntr);
1950 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetOsVersion")] // is_GetOsVersion
1951 private static extern int is_GetOsVersion();
1952 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetDLLVersion")] // is_GetDLLVersion
1953 private static extern int is_GetDLLVersion ();
1954
1955 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_InitEvent")] // is_InitEvent
1956 private static extern int is_InitEvent (int hCam, int hEv, int which);
1957 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ExitEvent")] // is_ExitEvent
1958 private static extern int is_ExitEvent (int hCam, int which);
1959 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_EnableEvent")] // is_EnableEvent
1960 private static extern int is_EnableEvent (int hCam, int which);
1961 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_DisableEvent")] // is_DisableEvent
1962 private static extern int is_DisableEvent (int hCam, int which);
1963
1964 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetIO")] // is_SetIO
1965 private static extern int is_SetIO( ref int phCam, int nIO );
1966 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetFlashStrobe")] // is_SetFlashStrobe
1967 private static extern int is_SetFlashStrobe (int hCam, int nMode, int nField);
1968 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetExternalTrigger")] // is_SetExternalTrigger
1969 private static extern int is_SetExternalTrigger (int hCam, int nTriggerMode);
1970 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetRopEffect")] // is_SetRopEffect
1971 private static extern int is_SetRopEffect (int hCam, int effect, int param, int reserved);
1972
1973 // Camera functions
1974 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_InitCamera")] // is_InitCamera
1975 private static extern int is_InitCamera( ref int phCam, int hwnd );
1976 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ExitCamera")] // is_ExitCamera
1977 private static extern int is_ExitCamera (int hCam );
1978 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetCameraInfo")] // is_GetCameraInfo
1979 private static extern int is_GetCameraInfo (int hCam, byte[] pInfo);
1980 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_CameraStatus")] // is_CameraStatus
1981 private static extern int is_CameraStatus (int hCam, int nInfo, int ulValue);
1982 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetCameraType")] // is_GetCameraType
1983 private static extern int is_GetCameraType(int hCam);
1984 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetNumberOfCameras")] // is_GetNumberOfCameras
1985 private static extern int is_GetNumberOfCameras(ref int pnNumCams);
1986
1987 // Pixelclock
1988 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetPixelClockRange")] // is_GetPixelClockRange
1989 private static extern int is_GetPixelClockRange (int hCam, ref int pnMin, ref int pnMax);
1990 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetPixelClock")] // is_SetPixelClock
1991 private static extern int is_SetPixelClock (int hCam, int Clock);
1992 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetUsedBandwidth")] // is_GetUsedBandwidth
1993 private static extern int is_GetUsedBandwidth(int hCam);
1994 // Framerate
1995 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetFrameTimeRange")] // is_GetFrameTimeRange
1996 private static extern int is_GetFrameTimeRange (int hCam, ref double min, ref double max, ref double intervall);
1997 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetFrameRate")] // is_SetFrameRate
1998 private static extern int is_SetFrameRate (int hCam, double FPS, ref double newFPS);
1999 // Exposure
2000 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetExposureRange")] // is_GetExposureRange
2001 private static extern int is_GetExposureRange (int hCam, ref double min, ref double max, ref double intervall);
2002 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetExposureTime")] // is_SetExposureTime
2003 private static extern int is_SetExposureTime (int hCam, double EXP, ref double newEXP);
2004 // Get Frames per Second
2005 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetFramesPerSecond")] // is_GetFramesPerSecond
2006 private static extern int is_GetFramesPerSecond (int hCam, ref double dblFPS);
2007
2008 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetIOMask")] // is_SetIOMask
2009 private static extern int is_SetIOMask (int hCam, int nMask);
2010
2011 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetSensorInfo")] // is_GetSensorInfo
2012 private static extern int is_GetSensorInfo (int hCam, byte[] pSensorInfo);
2013 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetRevisionInfo")] // is_GetRevisionInfo
2014 private static extern int is_GetRevisionInfo (int hCam, byte[] pRevisionInfo);
2015
2016 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_EnableAutoExit")] // is_EnableAutoExit
2017 private static extern int is_EnableAutoExit (int hCam, int nMode);
2018 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_EnableMessage")] // is_EnableMessage
2019 private static extern int is_EnableMessage (int hCam, int which, int hWnd);
2020
2021 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetHardwareGain")] // is_SetHardwareGain
2022 private static extern int is_SetHardwareGain (int hCam, int nMaster, int nRed, int nGreen, int nBlue);
2023
2024 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetRenderMode")] // is_SetRenderMode
2025 private static extern int is_SetRenderMode (int hCam, int nMode);
2026
2027 // enable/disable WhiteBalance
2028 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetWhiteBalance")] // is_SetWhiteBalance
2029 private static extern int is_SetWhiteBalance (int hCam, int nMode);
2030 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetWhiteBalanceMultipliers")]// is_SetWhiteBalanceMultipliers
2031 private static extern int is_SetWhiteBalanceMultipliers (int hCam, double dblRed, double dblGreen, double dblBlue);
2032 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetWhiteBalanceMultipliers")]// is_GetWhiteBalanceMultipliers
2033 private static extern int is_GetWhiteBalanceMultipliers (int hCam, ref double pdblRed, ref double pdblGreen, ref double pdblBlue);
2034
2035 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetEdgeEnhancement")] // is_SetEdgeEnhancement
2036 private static extern int is_SetEdgeEnhancement (int hCam, int nEnable);
2037 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetColorCorrection")] // is_SetColorCorrection
2038 private static extern int is_SetColorCorrection (int hCam, int nEnable, double[] factors);
2039 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBlCompensation")] // is_SetBlCompensation
2040 private static extern int is_SetBlCompensation (int hCam, int nEnable, int offset, int reserved);
2041
2042 // Hot Pixel Correction
2043 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBadPixelCorrection")] // is_SetBadPixelCorrection
2044 private static extern int is_SetBadPixelCorrection (int hCam, int nEnable, int threshold);
2045 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LoadBadPixelCorrectionTable")]// is_LoadBadPixelCorrectionTable
2046 private static extern int is_LoadBadPixelCorrectionTable (int hCam, byte[] File);
2047 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveBadPixelCorrectionTable")]// is_SaveBadPixelCorrectionTable
2048 private static extern int is_SaveBadPixelCorrectionTable (int hCam, byte[] File);
2049 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBadPixelCorrectionTable")]// is_SetBadPixelCorrectionTable
2050 private static extern int is_SetBadPixelCorrectionTable (int hCam, int nMode, byte[] pList);
2051
2052 // Memoryboard
2053 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetMemoryMode")] // is_SetMemoryMode
2054 private static extern int is_SetMemoryMode (int hCam, int nCount,int nDelay);
2055 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_TransferImage")] // is_TransferImage
2056 private static extern int is_TransferImage (int hCam, int nMemID, int seqID, int imageNr, int reserved);
2057 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_TransferMemorySequence")] // is_TransferMemorySequence
2058 private static extern int is_TransferMemorySequence (int hCam, int seqID,int StartNr, int nCount, int nSeqPos);
2059 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_MemoryFreezeVideo")] // is_MemoryFreezeVideo
2060 private static extern int is_MemoryFreezeVideo (int hCam, int nMemID, int Wait);
2061 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetLastMemorySequence")] // is_GetLastMemorySequence
2062 private static extern int is_GetLastMemorySequence (int hCam, ref int pID);
2063 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetNumberOfMemoryImages")] // is_GetNumberOfMemoryImages
2064 private static extern int is_GetNumberOfMemoryImages (int hCam, ref int nID, ref int pnCount);
2065 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetMemorySequenceWindow")] // is_GetMemorySequenceWindow
2066 private static extern int is_GetMemorySequenceWindow (int hCam, int nID,ref int left, ref int top, ref int right, ref int bottom);
2067 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_IsMemoryBoardConnected")] // is_IsMemoryBoardConnected
2068 private static extern int is_IsMemoryBoardConnected (int hCam, ref byte pConnected);
2069 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ResetMemory")] // is_ResetMemory
2070 private static extern int is_ResetMemory (int hCam, int nReserved);
2071
2072 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetSubSampling")] // is_SetSubSampling
2073 private static extern int is_SetSubSampling (int hCam, int nMode);
2074 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ForceTrigger")] // is_ForceTrigger
2075 private static extern int is_ForceTrigger(int hCam);
2076
2077 // new with driver version 1.12.0006
2078 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetBusSpeed")] // is_GetBusSpeed
2079 private static extern int is_GetBusSpeed(int hCam);
2080
2081 // new with driver version 1.12.0015
2082 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBinning")] // is_SetBinning
2083 private static extern int is_SetBinning (int hCam, int nMode);
2084
2085 // new with driver version 1.12.0017
2086 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ResetToDefault")] // is_ResetToDefault
2087 private static extern int is_ResetToDefault (int hCam);
2088 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LoadParameters")] // is_LoadParameters
2089 private static extern int is_LoadParameters (int hCam, byte[] pFilename);
2090 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveParameters")] // is_SaveParameters
2091 private static extern int is_SaveParameters (int hCam, byte[] pFilename);
2092
2093 // new with driver version 1.14.0001
2094 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetGlobalFlashDelays")] // is_GetGlobalFlashDelays
2095 private static extern int is_GetGlobalFlashDelays (int hCam, ref long pulDelay, ref long pulDuration);
2096 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetFlashDelay")] // is_SetFlashDelay
2097 private static extern int is_SetFlashDelay (int hCam, int ulDelay, int ulDuration);
2098 // new with driver version 1.14.0002
2099 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LoadImage")] // is_LoadImage
2100 private static extern int is_LoadImage (int hCam, byte[] pFilename);
2101
2102 // new with driver version 1.14.0008
2103 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetImageAOI")] // is_SetImageAOI
2104 private static extern int is_SetImageAOI (int hCam, int xPos, int yPos, int width, int height);
2105 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetCameraID")] // is_SetCameraID
2106 private static extern int is_SetCameraID (int hCam, int nID);
2107 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetBayerConversion")] // is_SetBayerConversion
2108 private static extern int is_SetBayerConversion (int hCam, int nMode);
2109 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetTestImage")] // is_SetTestImage
2110 private static extern int is_SetTestImage (int hCam, int nMode);
2111 // new with driver version 1.14.0009
2112 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetHardwareGamma")] // is_SetHardwareGamma
2113 private static extern int is_SetHardwareGamma (int hCam, int nMode);
2114
2115 // new with driver version 2.00.0001
2116 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetCameraList")] // is_GetCameraList
2117 private static extern int is_GetCameraList (byte[] pucl);
2118
2119 // new with driver version 2.00.0011
2120 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetAOI")] // is_SetAOI
2121 private static extern int is_SetAOI (int hCam, int type, ref int pXPos, ref int pYPos, ref int pWidth, ref int pHeight);
2122 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetAutoParameter")] // is_SetAutoParameter
2123 private static extern int is_SetAutoParameter (int hCam, int param, ref double pval1, ref double pval2);
2124 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetAutoInfo")] // is_GetAutoInfo
2125 private static extern int is_GetAutoInfo (int hCam, byte[] pInfo);
2126
2127 // new with driver version 2.20.0001
2128 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ConvertImage")] // is_ConvertImage
2129 private static extern int is_ConvertImage (int hCam, IntPtr pcSource, int nIDSource, ref IntPtr pcDest, ref int nIDDest, ref int reserved);
2130 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetConvertParam")] // is_SetConvertParam
2131 private static extern int is_SetConvertParam (int hCam, int ColorCorrection, int BayerConversionMode, int ColorMode, int Gamma, double[] WhiteBalanceMultipliers);
2132
2133 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveImageEx")] // is_SaveImageEx
2134 private static extern int is_SaveImageEx (int hCam, byte[] File, int fileFormat, int Param);
2135 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SaveImageMemEx")] // is_SaveImageMemEx
2136 private static extern int is_SaveImageMemEx (int hCam, byte[] File, IntPtr pcMem, int nID, int FileFormat, int Param);
2137 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_LoadImageMem")] // is_LoadImageMem
2138 private static extern int is_LoadImageMem (int hCam, byte[] File, ref IntPtr ppcImgMem, ref int pid);
2139
2140 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetImageHistogram")] // is_GetImageHistogram
2141 private static extern int is_GetImageHistogram(int hCam, int nID, int ColorMode, IntPtr pHistoMem);
2142 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetTriggerDelay")] // is_SetTriggerDelay
2143 private static extern int is_SetTriggerDelay (int hCam, int us);
2144
2145 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetGainBoost")] // is_SetGainBoost
2146 private static extern int is_SetGainBoost (int hCam, int mode);
2147
2148 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetLED")] // is_SetLED
2149 private static extern int is_SetLED (int hCam, int nValue);
2150
2151 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetGlobalShutter")] // is_SetGlobalShutter
2152 private static extern int is_SetGlobalShutter (int hf, int mode );
2153
2154 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetExtendedRegister")] // is_SetExtendedRegister
2155 private static extern int is_SetExtendedRegister (int hf, int index, ushort val );
2156
2157
2158 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetHWGainFactor")] // is_SetHWGainFactor
2159 private static extern int is_SetHWGainFactor (int hCam, int nMode, int nFactor);
2160
2161 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_PrepareStealVideo")] // is_PrepareStealVideo
2162 private static extern int is_PrepareStealVideo (int hCam, int nMode, int StealColorMode);
2163
2164 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_Renumerate")] // is_Renumerate
2165 private static extern int is_Renumerate (int hCam, int nMode);
2166
2167 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetExtendedRegister")] // is_GetExtendedRegister
2168 private static extern int is_GetExtendedRegister (int hCam, int index, ushort[] val);
2169
2170
2171 public struct KNEEPOINT
2172 {
2173 public double x;
2174 public double y;
2175 };
2176
2177 public struct KNEEPOINTARRAY
2178 {
2179 public int NumberOfUsedKneepoints;
2180 public KNEEPOINT[] Kneepoint;
2181 };
2182
2183 public struct KNEEPOINTINFO
2184 {
2185 public int NumberOfSupportedKneepoints;
2186 public int NumberOfUsedKneepoints;
2187 public double MinValueX;
2188 public double MaxValueX;
2189 public double MinValueY;
2190 public double MaxValueY;
2191 public KNEEPOINT[] DefaultKneepoint;
2192 public int[] Reserved;
2193 };
2194
2195 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetHdrMode")] // is_GetHdrMode
2196 private static extern int is_GetHdrMode (int hCam, ref int Mode);
2197
2198 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_EnableHdr")] // is_EnableHdr
2199 private static extern int is_EnableHdr (int hCam, int Enable);
2200
2201 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetHdrKneepoints")] // is_SetHdrKneepoints
2202 private static extern int is_SetHdrKneepoints (int hCam, byte[] KneepointArray, int KneepointArraySize);
2203
2204 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetHdrKneepoints")] // is_GetHdrKneepoints
2205 private static extern int is_GetHdrKneepoints (int hCam, byte[] KneepointArray, int KneepointArraySize);
2206
2207 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetHdrKneepointInfo")] // is_GetHdrKneepointInfo
2208 private static extern int is_GetHdrKneepointInfo (int hCam, byte[] KneepointInfo, int KneepointInfoSize);
2209
2210 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_WriteI2C")] // is_WriteI2C
2211 private static extern int is_WriteI2C (int hCam, int nDeviceAddr, int nRegisterAddr, byte[] pbData, int nLen);
2212
2213 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ReadI2C")] // is_WriteI2C
2214 private static extern int is_ReadI2C (int hCam, int nDeviceAddr, int nRegisterAddr, byte[] pbData, int nLen);
2215
2216 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetOptimalCameraTiming")] // is_SetOptimalCameraTiming
2217 private static extern int is_SetOptimalCameraTiming (int hCam, int Mode, int Timeout, ref int pMaxPxlClk, ref double pMaxFrameRate);
2218
2219 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetComportNumber")] // is_GetComportNumber
2220 private static extern int is_GetComportNumber (int hCam, ref uint pComportNumber);
2221
2222 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetSupportedTestImages")] // is_GetSupportedTestImages
2223 private static extern int is_GetSupportedTestImages (int hCam, ref int SupportedTestImages);
2224
2225 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetTestImageValueRange")] // is_GetTestImageValueRange
2226 private static extern int is_GetTestImageValueRange (int hCam, int TestImage, ref int TestImageValueMin, ref int TestImageValueMax);
2227
2228 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetSensorTestImage")] // is_SetSensorTestImage
2229 private static extern int is_SetSensorTestImage (int hCam, int Param1, int Param2);
2230
2231
2232 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetCameraLUT")] // is_SetCameraLUT
2233 private static extern int is_SetCameraLUT (int hCam, uint Mode, uint NumberOfEntries, double[] pRed_grey, double[] pGreen, double[] pBlue);
2234
2235 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetCameraLUT")] // is_GetCameraLUT
2236 private static extern int is_GetCameraLUT (int hCam, uint Mode, uint NumberOfEntries, double[] pRed_grey, double[] pGreen, double[] pBlue);
2237
2238 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetColorConverter")] // is_SetColorConverter
2239 private static extern int is_SetColorConverter (int hCam, int ColorMode, int ConvertMode);
2240
2241 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetColorConverter")] // is_GetColorConverter
2242 private static extern int is_GetColorConverter (int hCam, int ColorMode, ref int pCurrentConvertMode, ref int pDefaultConvertMode, ref int pSupportedConvertModes);
2243
2244 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetCaptureErrorInfo")] // is_GetCaptureErrorInfo
2245 private static extern int is_GetCaptureErrorInfo (int hCam, byte[] pCaptureErrorInfo, int SizeCaptureErrorInfo);
2246
2247 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ResetCaptureErrorInfo")] // is_ResetCaptureErrorInfo
2248 private static extern int is_ResetCaptureErrorInfo (int hCam);
2249
2250
2251 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_WaitForNextImage")] // is_WaitForNextImage
2252 private static extern int is_WaitForNextImage (int hCam, uint timeout, ref IntPtr ppcImg, ref int pid);
2253
2254 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_InitImageQueue")] // is_InitImageQueue
2255 private static extern int is_InitImageQueue (int hCam, int Mode);
2256
2257 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_ExitImageQueue")] // is_ExitImageQueue
2258 private static extern int is_ExitImageQueue (int hCam);
2259
2260
2261 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetTimeout")] // is_SetTimeout
2262 private static extern int is_SetTimeout (int hCam, uint Mode, uint Timeout);
2263
2264 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetTimeout")] // is_GetTimeout
2265 private static extern int is_GetTimeout (int hCam, uint Mode, ref uint pTimeout);
2266
2267 /*!< get estimated duration of GigE SE starter firmware upload in milliseconds */
2268 public const int IS_SE_STARTER_FW_UPLOAD = 0x00000001;
2269
2270 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetDuration")] // is_GetDuration
2271 private static extern int is_GetDuration (int hCam, uint nMode, ref uint pnTime);
2272
2273
2274 // new with driver version 3.40.0000
2275 public struct SENSORSCALERINFO
2276 {
2277 public int nCurrMode;
2278 public int nNumberOfSteps;
2279 public double dblFactorIncrement;
2280 public double dblMinFactor;
2281 public double dblMaxFactor;
2282 public double dblCurrFactor;
2283 public byte[] bReserved;
2284 };
2285
2286 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetSensorScalerInfo")] // is_GetSensorScalerInfo
2287 private static extern int is_GetSensorScalerInfo (int hCam, ref SENSORSCALERINFO pSensorScalerInfo, int nSensorScalerInfoSize);
2288
2289 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetSensorScaler")] // is_SetSensorScaler
2290 private static extern int is_SetSensorScaler (int hCam, uint nMode, double dblFactor);
2291
2292 unsafe public struct UEYETIME
2293 {
2294 public ushort wYear;
2295 public ushort wMonth;
2296 public ushort wDay;
2297 public ushort wHour;
2298 public ushort wMinute;
2299 public ushort wSecond;
2300 public ushort wMilliseconds;
2301 public fixed byte byReserved[10];
2302 };
2303
2304
2305 public struct UEYEIMAGEINFO
2306 {
2307 public int dwFlags;
2308 public byte[] byReserved1;
2309 public ulong u64TimestampDevice;
2310 public UEYETIME TimestampSystem;
2311 public int dwIoStatus;
2312 public byte[] byReserved2;
2313 public ulong u64FrameNumber;
2314 public int dwImageBuffers;
2315 public int dwImageBuffersInUse;
2316 public int dwReserved3;
2317 public int dwImageHeight;
2318 public int dwImageWidth;
2319 };
2320
2321 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetImageInfo")] // is_GetImageInfo
2322 private static extern int is_GetImageInfo (int hCam, int nImageBufferID, ref UEYEIMAGEINFO pImageInfo, int nImageInfoSize);
2323
2324 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_DirectRenderer")] // is_DirectRenderer
2325 private static extern int is_DirectRenderer (int hCam, uint nMode, byte [] pParam, uint SizeOfParam);
2326
2327
2328 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_ImageFormat")] // is_ImageFormat
2329 private static extern int is_ImageFormat(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2330
2331 public const uint IMGFRMT_CMD_GET_NUM_ENTRIES = 1; /* Get the number of supported image formats.
2332 pParam hast to be a Pointer to IS_U32. If -1 is reported, the device
2333 supports continuous AOI settings (maybe with fixed increments) */
2334 public const uint IMGFRMT_CMD_GET_LIST = 2; /* Get a array of IMAGE_FORMAT_ELEMENTs. */
2335 public const uint IMGFRMT_CMD_SET_FORMAT = 3; /* Select a image format */
2336 public const uint IMGFRMT_CMD_GET_ARBITRARY_AOI_SUPPORTED = 4; /* Does the device supports the setting of an arbitrary AOI. */
2337 public const uint IMGFRMT_CMD_GET_FORMAT_INFO = 5; /* Get IMAGE_FORMAT_INFO for a given formatID */
2338
2339 // no trigger
2340 public const uint CAPTMODE_FREERUN = 0x00000001;
2341 public const uint CAPTMODE_SINGLE = 0x00000002;
2342
2343 // software trigger modes
2344 public const uint CAPTMODE_TRIGGER_SOFT_SINGLE = 0x00000010;
2345 public const uint CAPTMODE_TRIGGER_SOFT_CONTINUOUS = 0x00000020;
2346
2347 // hardware trigger modes
2348 public const uint CAPTMODE_TRIGGER_HW_SINGLE = 0x00000100;
2349 public const uint CAPTMODE_TRIGGER_HW_CONTINUOUS = 0x00000200;
2350
2351
2352 unsafe public struct IMAGE_FORMAT_INFO
2353 {
2354 public int nFormatID; /* Image format ID. */
2355 public uint nWidth; /* Width. */
2356 public uint nHeight; /* Height. */
2357 public uint nX0; /* Start position x. */
2358 public uint nY0; /* Start position Y. */
2359 public uint nSupportedCaptureModes; /* Flag field with supported capture modes for this resolution (Bitmask of
2360 of CAPTUREMODE enumeration). */
2361 public uint nBinningMode; /* Binning mode. */
2362 public uint nSubsamplingMode; /* Subsampling mode. */
2363 public fixed byte strFormatName[64]; /* Format name. Currently not used */
2364 public fixed uint nReserved[24];
2365 };
2366
2367
2368 unsafe public struct IMAGE_FORMAT_LIST
2369 {
2370 public uint nSizeOfListEntry; /* Size of one list entry in byte. */
2371 public uint nNumListElements; /* Number of list entries. */
2372 public fixed uint nReserved[4]; /* Reserved for future use. */
2373 public IMAGE_FORMAT_INFO FormatInfo; /* First format entry. */
2374 };
2375
2376
2377 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_FaceDetection")] // is_FaceDetection
2378 private static extern int is_FaceDetection(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2379
2380 public const uint FDT_CAP_INVALID = 0;
2381 public const uint FDT_CAP_SUPPORTED = 0x00000001; /* Face detection supported. */
2382 public const uint FDT_CAP_SEARCH_ANGLE = 0x00000002; /* Search angle. */
2383 public const uint FDT_CAP_SEARCH_AOI = 0x00000004; /* Search AOI. */
2384 public const uint FDT_CAP_INFO_POSX = 0x00000010; /* Query horizontal position (center) of detected face. */
2385 public const uint FDT_CAP_INFO_POSY = 0x00000020; /* Query vertical position(center) of detected face. */
2386 public const uint FDT_CAP_INFO_WIDTH = 0x00000040; /* Query width of detected face. */
2387 public const uint FDT_CAP_INFO_HEIGHT = 0x00000080; /* Query height of detected face. */
2388 public const uint FDT_CAP_INFO_ANGLE = 0x00000100; /* Query angle of detected face. */
2389 public const uint FDT_CAP_INFO_POSTURE = 0x00000200; /* Query posture of detected face. */
2390 public const uint FDT_CAP_INFO_FACENUMBER = 0x00000400; /* Query number of detected faces. */
2391 public const uint FDT_CAP_INFO_OVL = 0x00000800; /* Overlay: Mark the detected face in the image. */
2392 public const uint FDT_CAP_INFO_NUM_OVL = 0x00001000; /* Overlay: Limit the maximum number of overlays in one image. */
2393 public const uint FDT_CAP_INFO_OVL_LINEWIDTH = 0x00002000; /* Overlay line width. */
2394
2395
2396 unsafe public struct FDT_INFO_EL
2397 {
2398 public int nFacePosX; /* Start X position. */
2399 public int nFacePosY; /* Start Y position. */
2400 public int nFaceWidth; /* Face width. */
2401 public int nFaceHeight; /* Face height. */
2402 public int nAngle; /* Face Angle (0...360° clockwise, 0° at twelve o'clock position. -1: undefined ). */
2403 public uint nPosture; /* Face posture. */
2404 public UEYETIME TimestampSystem; /* System time stamp (device query time) . */
2405 public ulong nReserved; /* Reserved for future use. */
2406 public fixed uint nReserved2[4]; /* Reserved for future use. */
2407 };
2408
2409
2410 unsafe public struct FDT_INFO_LIST
2411 {
2412 public uint nSizeOfListEntry; /* Size of one list entry in byte(in). */
2413 public uint nNumDetectedFaces; /* Number of detected faces(out). */
2414 public uint nNumListElements; /* Number of list elements(in). */
2415 public fixed uint nReserved[4]; /* reserved for future use(out). */
2416 public FDT_INFO_EL FaceEntry; /* First face entry. */
2417 };
2418
2419
2420 public const uint FDT_CMD_GET_CAPABILITIES = 0; /* Get the capabilities for face detection. */
2421 public const uint FDT_CMD_SET_DISABLE = 1; /* Disable face detection. */
2422 public const uint FDT_CMD_SET_ENABLE = 2; /* Enable face detection. */
2423 public const uint FDT_CMD_SET_SEARCH_ANGLE = 3; /* Set the search angle. */
2424 public const uint FDT_CMD_GET_SEARCH_ANGLE = 4; /* Get the search angle parameter. */
2425 public const uint FDT_CMD_SET_SEARCH_ANGLE_ENABLE = 5; /* Enable search angle. */
2426 public const uint FDT_CMD_SET_SEARCH_ANGLE_DISABLE = 6; /* Enable search angle. */
2427 public const uint FDT_CMD_GET_SEARCH_ANGLE_ENABLE = 7; /* Get the current setting of search angle enable. */
2428 public const uint FDT_CMD_SET_SEARCH_AOI = 8; /* Set the search AOI. */
2429 public const uint FDT_CMD_GET_SEARCH_AOI = 9; /* Get the search AOI. */
2430 public const uint FDT_CMD_GET_FACE_LIST = 10; /* Get a list with detected faces. */
2431 public const uint FDT_CMD_GET_NUMBER_FACES = 11; /* Get the number of detected faces. */
2432 public const uint FDT_CMD_SET_SUSPEND = 12; /* Keep the face detection result of that moment. */
2433 public const uint FDT_CMD_SET_RESUME = 13; /* Continue with the face detection. */
2434 public const uint FDT_CMD_GET_MAX_NUM_FACES = 14; /* Get the maximum number of faces that can be detected once. */
2435 public const uint FDT_CMD_SET_INFO_MAX_NUM_OVL = 15; /* Set the maximum number of overlays displayed. */
2436 public const uint FDT_CMD_GET_INFO_MAX_NUM_OVL = 16; /* Get the setting 'maximum number of overlays displayed'. */
2437 public const uint FDT_CMD_SET_INFO_OVL_LINE_WIDTH = 17; /* Set the overlay line width. */
2438 public const uint FDT_CMD_GET_INFO_OVL_LINE_WIDTH = 18; /* Get the overlay line width. */
2439 public const uint FDT_CMD_GET_ENABLE = 19; /* Face detection enabled?. */
2440 public const uint FDT_CMD_GET_SUSPEND = 20; /* Face detection suspended?. */
2441 public const uint FDT_CMD_GET_HORIZONTAL_RESOLUTION = 21; /* Horizontal resolution of face detection. */
2442 public const uint FDT_CMD_GET_VERTICAL_RESOLUTION = 22; /* Vertical resolution of face detection. */
2443
2444
2445 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_Focus")] // is_Focus
2446 private static extern int is_Focus(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2447
2448 public const uint FOC_CAP_INVALID = 0;
2449 public const uint FOC_CAP_AUTOFOCUS_SUPPORTED = 0x00000001; /* Auto focus supported. */
2450 public const uint FOC_CAP_MANUAL_SUPPORTED = 0x00000002; /* Manual focus supported. */
2451 public const uint FOC_CAP_GET_DISTANCE = 0x00000004; /* Support for query the distance of the focused object. */
2452 public const uint FOC_CAP_SET_AUTOFOCUS_RANGE = 0x00000008; /* Support for setting focus ranges. */
2453 public const uint FOC_CAP_AUTOFOCUS_FDT_AOI = 0x00000010; /* Use of face detection AOI for autofocus supported. */
2454
2455 public const uint FOC_RANGE_NORMAL = 0x00000001; /* Normal focus range(without Macro). */
2456 public const uint FOC_RANGE_ALLRANGE = 0x00000002; /* Allrange (macro to Infinity). */
2457 public const uint FOC_RANGE_MACRO = 0x00000004; /* Macro (only macro). */
2458
2459
2460 public const uint FOC_CMD_GET_CAPABILITIES = 0; /* Get focus capabilities. */
2461 public const uint FOC_CMD_SET_DISABLE_AUTOFOCUS = 1; /* Disable autofocus. */
2462 public const uint FOC_CMD_SET_ENABLE_AUTOFOCUS = 2; /* Enable autofocus. */
2463 public const uint FOC_CMD_GET_AUTOFOCUS_ENABLE = 3; /* Autofocus enabled?. */
2464 public const uint FOC_CMD_SET_AUTOFOCUS_RANGE = 4; /* Preset autofocus range. */
2465 public const uint FOC_CMD_GET_AUTOFOCUS_RANGE = 5; /* Get preset of autofocus range. */
2466 public const uint FOC_CMD_GET_DISTANCE = 6; /* Get distance to focused object. */
2467 public const uint FOC_CMD_SET_MANUAL_FOCUS = 7; /* Set manual focus. */
2468 public const uint FOC_CMD_GET_MANUAL_FOCUS = 8; /* Get the value for manual focus. */
2469 public const uint FOC_CMD_GET_MANUAL_FOCUS_MIN = 9; /* Get the minimum manual focus value. */
2470 public const uint FOC_CMD_GET_MANUAL_FOCUS_MAX = 10; /* Get the maximum manual focus value. */
2471 public const uint FOC_CMD_GET_MANUAL_FOCUS_INC = 11; /* Get the increment of the manual focus value. */
2472 public const uint FOC_CMD_SET_ENABLE_AF_FDT_AOI = 12; /* Enable face detection AOI use for autofocus. */
2473 public const uint FOC_CMD_SET_DISABLE_AF_FDT_AOI = 13; /* Disable face detection AOI use for autofocus */
2474 public const uint FOC_CMD_GET_AF_FDT_AOI_ENABLE = 14; /* Use autofocus FDT AOI? */
2475
2476
2477 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_ImageStabilization")] // is_ImageStabilization
2478 private static extern int is_ImageStabilization(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2479
2480
2481 // image stabilization capability flags
2482 public const uint IMGSTAB_CAP_INVALID = 0;
2483 public const uint IMGSTAB_CAP_IMAGE_STABILIZATION_SUPPORTED = 0x00000001; /* Image stabilization supported. */
2484
2485 public const uint IMGSTAB_CMD_GET_CAPABILITIES = 0; /* Get the capabilities for image stabilization. */
2486 public const uint IMGSTAB_CMD_SET_DISABLE = 1; /* Disable image stabilization. */
2487 public const uint IMGSTAB_CMD_SET_ENABLE = 2; /* Enable image stabilization. */
2488 public const uint IMGSTAB_CMD_GET_ENABLE = 3; /* Image stabilization enabled? */
2489
2490
2491 // New functions and defines for 3.61 (uEye XS)
2492 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_ScenePreset")] // is_ScenePreset
2493 private static extern int is_ScenePreset(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2494
2495 public const uint SCENE_CMD_GET_SUPPORTED_PRESETS = 1; /* Get the supported scene presets */
2496 public const uint SCENE_CMD_SET_PRESET = 2; /* Set the scene preset */
2497 public const uint SCENE_CMD_GET_PRESET = 3; /* Get the current sensor scene preset */
2498 public const uint SCENE_CMD_GET_DEFAULT_PRESET = 4; /* Get the default sensor scene preset */
2499
2500 public const uint SCENE_INVALID = 0;
2501 public const uint SCENE_SENSOR_AUTOMATIC = 0x00000001;
2502 public const uint SCENE_SENSOR_PORTRAIT = 0x00000002;
2503 public const uint SCENE_SENSOR_SUNNY = 0x00000004;
2504 public const uint SCENE_SENSOR_ENTERTAINMENT = 0x00000008;
2505 public const uint SCENE_SENSOR_NIGHT = 0x00000010;
2506 public const uint SCENE_SENSOR_SPORTS = 0x00000040;
2507 public const uint SCENE_SENSOR_LANDSCAPE = 0x00000080;
2508
2509
2510 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_Zoom")] // is_Zoom
2511 private static extern int is_Zoom(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2512
2513 public const uint ZOOM_CMD_GET_CAPABILITIES = 0; /* Get the zoom capabilities. */
2514 public const uint ZOOM_CMD_DIGITAL_GET_NUM_LIST_ENTRIES = 1; /* Get the number of list entries. */
2515 public const uint ZOOM_CMD_DIGITAL_GET_LIST = 2; /* Get a list of supported zoom factors. */
2516 public const uint ZOOM_CMD_DIGITAL_SET_VALUE = 3; /* Set the digital zoom factor zoom factors. */
2517 public const uint ZOOM_CMD_DIGITAL_GET_VALUE = 4; /* Get a current digital zoom factor. */
2518
2519 public const uint ZOOM_CAP_INVALID = 0;
2520 public const uint ZOOM_CAP_DIGITAL_ZOOM = 0x00001;
2521
2522
2523 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_Sharpness")] // is_Sharpness
2524 private static extern int is_Sharpness(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2525
2526 public const uint SHARPNESS_CMD_GET_CAPABILITIES = 0; /* Get the sharpness capabilities */
2527 public const uint SHARPNESS_CMD_GET_VALUE = 1; /* Get the current sharpness value */
2528 public const uint SHARPNESS_CMD_GET_MIN_VALUE = 2; /* Get the minimum sharpness value */
2529 public const uint SHARPNESS_CMD_GET_MAX_VALUE = 3; /* Get the maximum sharpness value */
2530 public const uint SHARPNESS_CMD_GET_INCREMENT = 4; /* Get the sharpness increment */
2531 public const uint SHARPNESS_CMD_GET_DEFAULT_VALUE = 5; /* Get the default sharpness value */
2532 public const uint SHARPNESS_CMD_SET_VALUE = 6; /* Set the sharpness value */
2533
2534 public const uint SHARPNESS_CAP_INVALID = 0x0000;
2535 public const uint SHARPNESS_CAP_SHARPNESS_SUPPORTED = 0x0001;
2536
2537
2538 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_Saturation")] // is_Saturation
2539 private static extern int is_Saturation(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2540
2541 public const uint SATURATION_CMD_GET_CAPABILITIES = 0; /* Get the saturation capabilities */
2542 public const uint SATURATION_CMD_GET_VALUE = 1; /* Get the current saturation value */
2543 public const uint SATURATION_CMD_GET_MIN_VALUE = 2; /* Get the minimum saturation value */
2544 public const uint SATURATION_CMD_GET_MAX_VALUE = 3; /* Get the maximum saturation value */
2545 public const uint SATURATION_CMD_GET_INCREMENT = 4; /* Get the saturation increment */
2546 public const uint SATURATION_CMD_GET_DEFAULT_VALUE = 5; /* Get the default saturation value */
2547 public const uint SATURATION_CMD_SET_VALUE = 6; /* Set the saturation value */
2548
2549 public const uint SATURATION_CAP_INVALID = 0x0000;
2550 public const uint SATURATION_CAP_SATURATION_SUPPORTED = 0x0001;
2551
2552
2553 // Trigger debounce modes
2554 public const uint TRIGGER_DEBOUNCE_MODE_NONE = 0x0000;
2555 public const uint TRIGGER_DEBOUNCE_MODE_FALLING_EDGE = 0x0001;
2556 public const uint TRIGGER_DEBOUNCE_MODE_RISING_EDGE = 0x0002;
2557 public const uint TRIGGER_DEBOUNCE_MODE_BOTH_EDGES = 0x0004;
2558 public const uint TRIGGER_DEBOUNCE_MODE_AUTOMATIC = 0x0008;
2559
2560 // Trigger debounce commands
2561 public const uint TRIGGER_DEBOUNCE_CMD_SET_MODE = 0; /* Set a new trigger debounce mode */
2562 public const uint TRIGGER_DEBOUNCE_CMD_SET_DELAY_TIME = 1; /* Set a new trigger debounce delay time */
2563 public const uint TRIGGER_DEBOUNCE_CMD_GET_SUPPORTED_MODES = 2; /* Get the supported modes */
2564 public const uint TRIGGER_DEBOUNCE_CMD_GET_MODE = 3; /* Get the current trigger debounce mode */
2565 public const uint TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME = 4; /* Get the current trigger debounce delay time */
2566 public const uint TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MIN = 5; /* Get the minimum value for the trigger debounce delay time */
2567 public const uint TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MAX = 6; /* Get the maximum value for the trigger debounce delay time */
2568 public const uint TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_INC = 7; /* Get the increment of the trigger debounce delay time */
2569 public const uint TRIGGER_DEBOUNCE_CMD_GET_MODE_DEFAULT = 8; /* Get the default trigger debounce mode */
2570 public const uint TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_DEFAULT = 9; /* Get the default trigger debounce delay time */
2571
2572 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_TriggerDebounce")] // is_TriggerDebounce
2573 private static extern int is_TriggerDebounce(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2574
2575
2576 // RGB color models
2577 public const uint RGB_COLOR_MODEL_SRGB_D50 = 0x0001;
2578 public const uint RGB_COLOR_MODEL_SRGB_D65 = 0x0002;
2579 public const uint RGB_COLOR_MODEL_CIE_RGB_E = 0x0004;
2580 public const uint RGB_COLOR_MODEL_ECI_RGB_D50 = 0x0008;
2581 public const uint RGB_COLOR_MODEL_ADOBE_RGB_D65 = 0x0010;
2582
2583 // Color temperature commands
2584 public const uint COLOR_TEMPERATURE_CMD_SET_TEMPERATURE = 0; /* Set a new color temperature */
2585 public const uint COLOR_TEMPERATURE_CMD_SET_RGB_COLOR_MODEL = 1; /* Set a new RGB color model */
2586 public const uint COLOR_TEMPERATURE_CMD_GET_SUPPORTED_RGB_COLOR_MODELS = 2; /* Get the supported RGB color models */
2587 public const uint COLOR_TEMPERATURE_CMD_GET_TEMPERATURE = 3; /* Get the current color temperature */
2588 public const uint COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL = 4; /* Get the current RGB color model */
2589 public const uint COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MIN = 5; /* Get the minimum value for the color temperature */
2590 public const uint COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MAX = 6; /* Get the maximum value for the color temperature */
2591 public const uint COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_INC = 7; /* Get the increment of the color temperature */
2592 public const uint COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_DEFAULT = 8; /* Get the default color temperature */
2593 public const uint COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL_DEFAULT = 9; /* Get the default RGB color model */
2594
2595 [DllImport(DRIVER_DLL_NAME, EntryPoint = "is_ColorTemperature")] // is_ColorTemperature
2596 private static extern int is_ColorTemperature(int hCam, uint nCommand, IntPtr pParam, uint nSizeOfParam);
2597
2598
2599 // --------------------------------------------------------------------
2600 // new exports only valid for uEye ETH - BEGIN
2601 // --------------------------------------------------------------------
2602
2603 // is_GetEthDeviceInfo
2604 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_GetEthDeviceInfo")]
2605 private static extern int is_GetEthDeviceInfo (int hCam, byte[] pDeviceInfo, uint uStructSize);
2606
2607 // is_SetPersistentIpCfg
2608 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetPersistentIpCfg")]
2609 private static extern int is_SetPersistentIpCfg (int hCam, byte[] pIpCfg, uint uStructSize);
2610
2611 // is_SetStarterFirmware
2612 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetStarterFirmware")]
2613 private static extern int is_SetStarterFirmware (int hCam, byte[] pcFilepath, uint uFilepathLen);
2614
2615 // is_SetAutoCfgIpSetup
2616 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetAutoCfgIpSetup")]
2617 private static extern int is_SetAutoCfgIpSetup (int iAdapterID, byte[] pSetup, uint uStructSize);
2618
2619 // is_SetAutoCfgIpSetup
2620 [DllImport(DRIVER_DLL_NAME ,EntryPoint="is_SetPacketFilter")]
2621 private static extern int is_SetPacketFilter (int iAdapterID, uint uFilterSetting);
2622
2623 // --------------------------------------------------------------------
2624 // new exports only valid for uEye ETH - END
2625 // --------------------------------------------------------------------
2626
2627
2628 // internal variables
2629 private int m_hCam; // internal camera handle
2630
2631 // constructor
2632 public uEye()
2633 {
2634 m_hCam = 0;
2635 }
2636
2637 //********************************************************************************************
2638 // Helper functions
2639 //********************************************************************************************
2640
2641 // ------------------------------ GetStringFromByte --------------------------
2642 //
2643 private string GetStringFromByte(byte[] pByte, int nStart, int nLength )
2644 {
2645 int i=0;
2646 char[] pChars = new char[nLength];
2647 for ( i=0; i<nLength; i++)
2648 {
2649 pChars[i] = Convert.ToChar(pByte[nStart+i]);
2650 }
2651 string strResult = new string(pChars);
2652 return strResult;
2653 }
2654
2655
2656 // ------------------------------ GetLongFromByte --------------------------
2657 //
2658 private long GetLongFromByte(byte[] pByte, int nStart)
2659 {
2660 long b1 = (long)(pByte[nStart]);
2661 long b2 = (long)(pByte[nStart + 1] << 8);
2662 long b3 = (long)(pByte[nStart + 2] << 16);
2663 long b4 = (long)(pByte[nStart + 3] << 24);
2664
2665 long result = b1 + b2 + b3 + b4;
2666 return result;
2667 }
2668
2669
2670 // ------------------------------ SaveLongInByte --------------------------
2671 //
2672 private void SaveLongInByte(byte[] pByte, int nStart, long Number)
2673 {
2674 pByte[nStart] = (byte) ((Number & 0x000000FF));
2675 pByte[nStart + 1] = (byte) ((Number & 0x0000FF00) >> 8);
2676 pByte[nStart + 2] = (byte) ((Number & 0x00FF0000) >> 16);
2677 pByte[nStart + 3] = (byte) ((Number & 0xFF000000) >> 24);
2678 }
2679
2680
2681 // ------------------------- IsuEyeOpen -----------------
2682 //
2683 public bool IsOpen()
2684 {
2685 if ( m_hCam == 0 )
2686 return false;
2687 else
2688 return true;
2689 }
2690
2691
2692 //*************************************************************************
2693 // Function wrappers
2694 //*************************************************************************
2695
2696 // --------------------- init camera ---------------------
2697 //
2698 public int InitCamera( int hCam, int hWnd )
2699 {
2700 int ret = 0;
2701 if ( m_hCam != 0 )
2702 return IS_INVALID_CAMERA_HANDLE;
2703
2704 ret = is_InitCamera(ref hCam, hWnd);
2705 if ( ret == IS_SUCCESS )
2706 m_hCam = hCam;
2707
2708 return ret;
2709 }
2710
2711 // --------------------- ExitCamera -----------------------
2712 //
2713 public int ExitCamera()
2714 {
2715 int ret = 0;
2716 if ( m_hCam == 0 )
2717 return IS_INVALID_CAMERA_HANDLE;
2718
2719 ret = is_ExitCamera(m_hCam);
2720 if ( ret == IS_SUCCESS )
2721 m_hCam = 0;
2722
2723 return ret;
2724 }
2725
2726
2727 // --------------------- StopLiveVideo -----------------------
2728 //
2729 public int StopLiveVideo(int mode)
2730 {
2731 if ( m_hCam == 0 )
2732 return IS_INVALID_CAMERA_HANDLE;
2733
2734 return is_StopLiveVideo( m_hCam, mode );
2735 }
2736
2737 // --------------------- FreezeVideo -----------------------
2738 //
2739 public int FreezeVideo(int wait)
2740 {
2741 if ( m_hCam == 0 )
2742 return IS_INVALID_CAMERA_HANDLE;
2743
2744 return is_FreezeVideo( m_hCam, wait );
2745 }
2746
2747 // --------------------- CaptureVideo -----------------------
2748 //
2749 public int CaptureVideo(int wait)
2750 {
2751 if ( m_hCam == 0 )
2752 return IS_INVALID_CAMERA_HANDLE;
2753
2754 return is_CaptureVideo( m_hCam, wait );
2755 }
2756
2757 // --------------------- SetDisplayMode -----------------------
2758 //
2759 public int SetDisplayMode(int mode )
2760 {
2761 if ( m_hCam == 0 )
2762 return IS_INVALID_CAMERA_HANDLE;
2763
2764 return is_SetDisplayMode( m_hCam, mode );
2765 }
2766
2767 // --------------------- SetKeyColor -----------------------
2768 //
2769 public int SetKeyColor(int r, int g, int b)
2770 {
2771 if ( m_hCam == 0 )
2772 return IS_INVALID_CAMERA_HANDLE;
2773
2774 return is_SetKeyColor( m_hCam, r, g, b);
2775 }
2776
2777 // --------------------- AllocImageMem -----------------------
2778 //
2779 public int AllocImageMem(int width, int height, int bits, ref IntPtr ppcImg, ref int pid)
2780 {
2781 if ( m_hCam == 0 )
2782 return IS_INVALID_CAMERA_HANDLE;
2783
2784 return is_AllocImageMem( m_hCam, width, height, bits, ref ppcImg, ref pid);
2785 }
2786
2787
2788 // --------------------- SetImageMem -----------------------
2789 //
2790 public int SetImageMem(IntPtr pcImg, int id )
2791 {
2792 if ( m_hCam == 0 )
2793 return IS_INVALID_CAMERA_HANDLE;
2794
2795 return is_SetImageMem( m_hCam, pcImg, id );
2796 }
2797
2798 // --------------------- GetImageMem -----------------------
2799 //
2800 public int GetImageMem(ref IntPtr ppMem)
2801 {
2802 if ( m_hCam == 0 )
2803 return IS_INVALID_CAMERA_HANDLE;
2804
2805 return is_GetImageMem( m_hCam, ref ppMem );
2806 }
2807
2808 // --------------------- SetBrightness -----------------------
2809 //
2810 public int SetBrightness(int bright)
2811 {
2812 if ( m_hCam == 0 )
2813 return IS_INVALID_CAMERA_HANDLE;
2814
2815 return is_SetBrightness( m_hCam, bright );
2816 }
2817
2818 // --------------------- SetContrast -----------------------
2819 //
2820 public int SetContrast(int cont)
2821 {
2822 if ( m_hCam == 0 )
2823 return IS_INVALID_CAMERA_HANDLE;
2824
2825 return is_SetContrast( m_hCam, cont );
2826 }
2827
2828 // --------------------- SetGamma -----------------------
2829 //
2830 public int SetGamma(int gamma)
2831 {
2832 if ( m_hCam == 0 )
2833 return IS_INVALID_CAMERA_HANDLE;
2834
2835 return is_SetGamma( m_hCam, gamma );
2836 }
2837
2838 // --------------------- SetColorMode -----------------------
2839 //
2840 public int SetColorMode(int ColorMode)
2841 {
2842 if ( m_hCam == 0 )
2843 return IS_INVALID_CAMERA_HANDLE;
2844
2845 return is_SetColorMode( m_hCam, ColorMode );
2846 }
2847
2848 // --------------------- GetImageMemPitch -----------------------
2849 //
2850 public int GetImageMemPitch(ref int pPitch)
2851 {
2852 if ( m_hCam == 0 )
2853 return IS_INVALID_CAMERA_HANDLE;
2854
2855 return is_GetImageMemPitch( m_hCam, ref pPitch );
2856 }
2857
2858 // --------------------- SetImageSize -----------------------
2859 //
2860 public int SetImageSize(int width, int height)
2861 {
2862 if ( m_hCam == 0 )
2863 return IS_INVALID_CAMERA_HANDLE;
2864
2865 return is_SetImageSize( m_hCam, width, height );
2866 }
2867 public int GetDisplayWidth ()
2868 {
2869 return SetImageSize( IS_GET_IMAGE_SIZE_X, 0 );
2870 }
2871 public int GetDisplayHeight ()
2872 {
2873 return SetImageSize( IS_GET_IMAGE_SIZE_Y, 0 );
2874 }
2875
2876
2877 // --------------------- SetImagePos -----------------------
2878 //
2879 public int SetImagePos(int x, int y)
2880 {
2881 if ( m_hCam == 0 )
2882 return IS_INVALID_CAMERA_HANDLE;
2883
2884 return is_SetImagePos( m_hCam, x, y );
2885 }
2886 public int GetDisplayPos (ref int x, ref int y)
2887 {
2888 x = SetImagePos( IS_GET_IMAGE_POS_X, 0 );
2889 y = SetImagePos( IS_GET_IMAGE_POS_Y, 0 );
2890 return IS_SUCCESS;
2891 }
2892
2893
2894 // --------------------- GetError -----------------------
2895 //
2896 public int GetError(ref int pErr, IntPtr ppcErr)
2897 {
2898 if ( m_hCam == 0 )
2899 return IS_INVALID_CAMERA_HANDLE;
2900
2901 return is_GetError( m_hCam, ref pErr, ppcErr );
2902 }
2903
2904 // --------------------- SetErrorReport -----------------------
2905 //
2906 public int SetErrorReport(int mode)
2907 {
2908 if ( m_hCam == 0 )
2909 return IS_INVALID_CAMERA_HANDLE;
2910
2911 return is_SetErrorReport( m_hCam, mode );
2912 }
2913
2914 // --------------------- GetCameraInfo -----------------------
2915 //
2916 public int GetCameraInfo( ref CAMINFO pBoardinfo)
2917 {
2918 if ( m_hCam == 0 )
2919 return IS_INVALID_CAMERA_HANDLE;
2920
2921 // read board info
2922 byte[] pTemp = new byte[64];
2923 int ret = is_GetCameraInfo( m_hCam, pTemp );
2924
2925 // copy structure if success
2926 if ( ret == IS_SUCCESS )
2927 {
2928 pBoardinfo.SerNo = GetStringFromByte( pTemp, 0, 12 );
2929 pBoardinfo.id = GetStringFromByte( pTemp, 12, 20 );
2930 pBoardinfo.Version = GetStringFromByte( pTemp, 32, 10 );
2931 pBoardinfo.Date = GetStringFromByte( pTemp, 42, 12 );
2932 pBoardinfo.Select = pTemp[54];
2933 pBoardinfo.Type = pTemp[55];
2934 }
2935 return ret;
2936 }
2937
2938 // --------------------- GetCameraList -----------------------
2939 //
2940 public int GetCameraList(ref UEYE_CAMERA_LIST pucl)
2941 {
2942 int nRet;
2943 long SizeOfStructure;
2944 long NumberOfCameras = pucl.dwCount;
2945
2946 if(NumberOfCameras == 0)
2947 {
2948 SizeOfStructure = 4 + 112;
2949 byte[] pTemp = new byte[SizeOfStructure];
2950
2951 nRet = is_GetCameraList(pTemp);
2952 if(nRet == IS_SUCCESS)
2953 {
2954 pucl.dwCount = GetLongFromByte(pTemp, 0);
2955 }
2956 }
2957 else
2958 {
2959 SizeOfStructure = 4 + NumberOfCameras * 112;
2960 byte [] pTemp = new byte[SizeOfStructure];
2961 SaveLongInByte(pTemp, 0, NumberOfCameras);
2962
2963 nRet = is_GetCameraList(pTemp);
2964 if(nRet == IS_SUCCESS)
2965 {
2966 pucl.dwCount = GetLongFromByte(pTemp, 0);
2967
2968 int i=0;
2969 for(i = 0; i < NumberOfCameras; i++)
2970 {
2971 int Offset = i * 112;
2972
2973 pucl.uci[i].dwCameraID = GetLongFromByte(pTemp, 4 + Offset);
2974 pucl.uci[i].dwDeviceID = GetLongFromByte(pTemp, 8 + Offset);
2975 pucl.uci[i].dwSensorID = GetLongFromByte(pTemp, 12 + Offset);
2976 pucl.uci[i].dwInUse = GetLongFromByte(pTemp, 16 + Offset);
2977 pucl.uci[i].SerNo = GetStringFromByte( pTemp, 20 + Offset, 16 );
2978 pucl.uci[i].Model = GetStringFromByte( pTemp, 36 + Offset, 16 );
2979 pucl.uci[i].dwStatus = GetLongFromByte(pTemp, 52 + Offset);
2980 }
2981 }
2982 }
2983
2984 return nRet;
2985 }
2986
2987
2988 // --------------------- ReadEEPROM -----------------------
2989 //
2990 public int ReadEEPROM(int Adr, byte[] pcString, int count)
2991 {
2992 if ( m_hCam == 0 )
2993 return IS_INVALID_CAMERA_HANDLE;
2994
2995 return is_ReadEEPROM( m_hCam, Adr, pcString, count );
2996 }
2997
2998 // --------------------- WriteEEPROM -----------------------
2999 //
3000 public int WriteEEPROM(int Adr, byte[] pcString, int count)
3001 {
3002 if ( m_hCam == 0 )
3003 return IS_INVALID_CAMERA_HANDLE;
3004
3005 return is_WriteEEPROM( m_hCam, Adr, pcString, count );
3006 }
3007
3008 // --------------------- SaveImage -----------------------
3009 //
3010 public int SaveImage( byte[] pcString)
3011 {
3012 if ( m_hCam == 0 )
3013 return IS_INVALID_CAMERA_HANDLE;
3014
3015 return is_SaveImage( m_hCam, pcString);
3016 }
3017
3018
3019 // --------------------- SetDisplayPos -----------------------
3020 //
3021 public int SetDisplayPos(int Adr, int X, int Y )
3022 {
3023 if ( m_hCam == 0 )
3024 return IS_INVALID_CAMERA_HANDLE;
3025
3026 return is_SetDisplayPos( m_hCam, X, Y);
3027 }
3028
3029 // --------------------- FreeImageMem -----------------------
3030 //
3031 public int FreeImageMem(IntPtr pImgMem, int id)
3032 {
3033 if ( m_hCam == 0 )
3034 return IS_INVALID_CAMERA_HANDLE;
3035
3036 return is_FreeImageMem( m_hCam, pImgMem, id);
3037 }
3038
3039
3040 // --------------------- IsVideoFinish -----------------------
3041 //
3042 public int IsVideoFinish(ref int pBool)
3043 {
3044 if ( m_hCam == 0 )
3045 return IS_INVALID_CAMERA_HANDLE;
3046
3047 return is_IsVideoFinish( m_hCam, ref pBool);
3048 }
3049
3050
3051 // --------------------- HasVideoStarted -----------------------
3052 //
3053 public int HasVideoStarted(ref int pBool)
3054 {
3055 if ( m_hCam == 0 )
3056 return IS_INVALID_CAMERA_HANDLE;
3057
3058 return is_HasVideoStarted( m_hCam, ref pBool);
3059 }
3060
3061
3062 // --------------------- GetDC -----------------------
3063 //
3064 public int GetDC( ref int phDC)
3065 {
3066 if ( m_hCam == 0 )
3067 return IS_INVALID_CAMERA_HANDLE;
3068
3069 return is_GetDC( m_hCam, ref phDC);
3070 }
3071
3072
3073 // --------------------- ReleaseDC -----------------------
3074 //
3075 public int ReleaseDC( int hDC)
3076 {
3077 if ( m_hCam == 0 )
3078 return IS_INVALID_CAMERA_HANDLE;
3079
3080 return is_ReleaseDC( m_hCam, hDC);
3081 }
3082
3083
3084 // --------------------- LockDDOverlayMem -----------------------
3085 //
3086 public int LockDDOverlayMem( ref IntPtr ppMem, ref int pPitch )
3087 {
3088 if ( m_hCam == 0 )
3089 return IS_INVALID_CAMERA_HANDLE;
3090
3091 return is_LockDDOverlayMem( m_hCam, ref ppMem, ref pPitch );
3092 }
3093
3094
3095 // --------------------- UnlockDDOverlayMem -----------------------
3096 //
3097 public int UnlockDDOverlayMem()
3098 {
3099 if ( m_hCam == 0 )
3100 return IS_INVALID_CAMERA_HANDLE;
3101
3102 return is_UnlockDDOverlayMem( m_hCam );
3103 }
3104
3105 // --------------------- LockDDMem -----------------------
3106 //
3107 public int LockDDMem(ref IntPtr ppMem, ref int pPitch)
3108 {
3109 if ( m_hCam == 0 )
3110 return IS_INVALID_CAMERA_HANDLE;
3111
3112 return is_LockDDMem( m_hCam, ref ppMem, ref pPitch );
3113 }
3114
3115 // --------------------- UnlockDDMem -----------------------
3116 //
3117 public int UnlockDDMem()
3118 {
3119 if ( m_hCam == 0 )
3120 return IS_INVALID_CAMERA_HANDLE;
3121
3122 return is_UnlockDDMem( m_hCam );
3123 }
3124
3125
3126 // -------------------- GetDDOvlSurface ---------------------
3127 //
3128 public int GetDDOvlSurface(ref IntPtr ppDDSurf)
3129 {
3130 if ( m_hCam == 0 )
3131 return IS_INVALID_CAMERA_HANDLE;
3132
3133 return is_GetDDOvlSurface( m_hCam, ref ppDDSurf );
3134 }
3135
3136
3137 // --------------------- InitEvent -----------------------
3138 //
3139 public int InitEvent(int hEv, int which)
3140 {
3141 if ( m_hCam == 0 )
3142 return IS_INVALID_CAMERA_HANDLE;
3143
3144 return is_InitEvent( m_hCam, hEv, which );
3145 }
3146
3147
3148 // --------------------- ExitEvent -----------------------
3149 //
3150 public int ExitEvent( int which)
3151 {
3152 if ( m_hCam == 0 )
3153 return IS_INVALID_CAMERA_HANDLE;
3154
3155 return is_ExitEvent( m_hCam, which );
3156 }
3157
3158 // --------------------- EnableEvent -----------------------
3159 //
3160 public int EnableEvent( int which)
3161 {
3162 if ( m_hCam == 0 )
3163 return IS_INVALID_CAMERA_HANDLE;
3164
3165 return is_EnableEvent( m_hCam, which );
3166 }
3167
3168 // --------------------- DisableEvent -----------------------
3169 //
3170 public int DisableEvent( int which)
3171 {
3172 if ( m_hCam == 0 )
3173 return IS_INVALID_CAMERA_HANDLE;
3174
3175 return is_DisableEvent( m_hCam, which );
3176 }
3177
3178
3179 // --------------------- SetHwnd -----------------------
3180 //
3181 public int SetHwnd( int hWnd )
3182 {
3183 if ( m_hCam == 0 )
3184 return IS_INVALID_CAMERA_HANDLE;
3185
3186 return is_SetHwnd( m_hCam, hWnd );
3187 }
3188
3189 // --------------------- GetActiveImageMem -----------------------
3190 //
3191 public int GetActiveImageMem( ref IntPtr ppcMem, ref int pnID )
3192 {
3193 if ( m_hCam == 0 )
3194 return IS_INVALID_CAMERA_HANDLE;
3195
3196 return is_GetActiveImageMem( m_hCam, ref ppcMem, ref pnID );
3197 }
3198
3199 // --------------------- InquireImageMem -----------------------
3200 //
3201 public int InquireImageMem( IntPtr pcMem, int nID, ref int pnX, ref int pnY, ref int pnBits, ref int pnPitch )
3202 {
3203 if ( m_hCam == 0 )
3204 return IS_INVALID_CAMERA_HANDLE;
3205
3206 return is_InquireImageMem( m_hCam, pcMem, nID, ref pnX, ref pnY, ref pnBits, ref pnPitch );
3207 }
3208
3209
3210 // --------------------- AddToSequence -----------------------
3211 //
3212 public int AddToSequence( IntPtr pMem, int nId )
3213 {
3214 if ( m_hCam == 0 )
3215 return IS_INVALID_CAMERA_HANDLE;
3216
3217 return is_AddToSequence( m_hCam, pMem, nId );
3218 }
3219
3220
3221 // --------------------- ClearSequence -----------------------
3222 //
3223 public int ClearSequence()
3224 {
3225 if ( m_hCam == 0 )
3226 return IS_INVALID_CAMERA_HANDLE;
3227
3228 return is_ClearSequence( m_hCam );
3229 }
3230
3231
3232 // --------------------- ClearSequence -----------------------
3233 //
3234 public int GetActSeqBuf( ref int pnNum, ref IntPtr ppcMem, ref IntPtr ppcMemLast )
3235 {
3236 if ( m_hCam == 0 )
3237 return IS_INVALID_CAMERA_HANDLE;
3238
3239 return is_GetActSeqBuf( m_hCam, ref pnNum, ref ppcMem, ref ppcMemLast );
3240 }
3241
3242 // --------------------- LockSeqBuf -----------------------
3243 //
3244 public int LockSeqBuf( int nNum, IntPtr pcMem )
3245 {
3246 if ( m_hCam == 0 )
3247 return IS_INVALID_CAMERA_HANDLE;
3248
3249 return is_LockSeqBuf( m_hCam, nNum, pcMem );
3250 }
3251
3252 // --------------------- UnlockSeqBuf -----------------------
3253 //
3254 public int UnlockSeqBuf( int nNum, IntPtr pcMem )
3255 {
3256 if ( m_hCam == 0 )
3257 return IS_INVALID_CAMERA_HANDLE;
3258
3259 return is_UnlockSeqBuf( m_hCam, nNum, pcMem );
3260 }
3261
3262 // --------------------- GetColorDepth -----------------------
3263 //
3264 public int GetColorDepth( int nNum, ref int pnCol, ref int pnColMode )
3265 {
3266 if ( m_hCam == 0 )
3267 return IS_INVALID_CAMERA_HANDLE;
3268
3269 return is_GetColorDepth( m_hCam, ref pnCol, ref pnColMode );
3270 }
3271
3272 // --------------------- SaveImageMem -----------------------
3273 //
3274 public int SaveImageMem( byte[] strFile, IntPtr pMem, int nId)
3275 {
3276 if ( m_hCam == 0 )
3277 return IS_INVALID_CAMERA_HANDLE;
3278
3279 return is_SaveImageMem ( m_hCam, strFile, pMem, nId);
3280 }
3281
3282
3283 // --------------------- CopyImageMem -----------------------
3284 //
3285 public int CopyImageMem( IntPtr pcSource, int nID, IntPtr pcDest)
3286 {
3287 if ( m_hCam == 0 )
3288 return IS_INVALID_CAMERA_HANDLE;
3289
3290 return is_CopyImageMem ( m_hCam, pcSource, nID, pcDest );
3291 }
3292
3293 // --------------------- CopyImageMemLines -----------------------
3294 //
3295 public int CopyImageMemLines(int hCam, IntPtr pcSource, int nID, int nLines, IntPtr pcDest)
3296 {
3297 if ( m_hCam == 0 )
3298 return IS_INVALID_CAMERA_HANDLE;
3299
3300 return is_CopyImageMemLines ( m_hCam, pcSource, nID, nLines, pcDest);
3301 }
3302
3303 // --------------------- GetOsVersion -----------------------
3304 //
3305 static public int GetOsVersion()
3306 {
3307 return is_GetOsVersion();
3308 }
3309
3310 // --------------------- SetAllocatedImageMem --------------
3311 //
3312 public int SetAllocatedImageMem( int width, int height, int bpp, IntPtr pImgMem, ref int id)
3313 {
3314 if ( m_hCam == 0 )
3315 return IS_INVALID_CAMERA_HANDLE;
3316
3317 return is_SetAllocatedImageMem ( m_hCam, width, height, bpp, pImgMem, ref id);
3318 }
3319
3320 // --------------------- SetRopEffect -----------------------
3321 //
3322 public int SetRopEffect(int effect, int param, int reserved)
3323 {
3324 if ( m_hCam == 0 )
3325 return IS_INVALID_CAMERA_HANDLE;
3326
3327 return is_SetRopEffect ( m_hCam, effect, param, reserved);
3328 }
3329
3330 // --------------------- SetFlashStrobe -----------------------
3331 //
3332 public int SetFlashStrobe( int nMode, int nField)
3333 {
3334 return is_SetFlashStrobe ( m_hCam, nMode, nField);
3335 }
3336
3337 // --------------------- SetExternalTrigger -----------------------
3338 //
3339 public int SetExternalTrigger( int nTriggerMode)
3340 {
3341 if ( m_hCam == 0 )
3342 return IS_INVALID_CAMERA_HANDLE;
3343
3344 return is_SetExternalTrigger ( m_hCam, nTriggerMode);
3345 }
3346
3347 // --------------------- RenderBitmap -----------------------
3348 //
3349 public int RenderBitmap(int MemID, int hWnd, int mode)
3350 {
3351 if ( m_hCam == 0 )
3352 return IS_INVALID_CAMERA_HANDLE;
3353
3354 return is_RenderBitmap ( m_hCam, MemID, hWnd, mode);
3355 }
3356
3357 // --------------------- GetDLLVersion -----------------------
3358 //
3359 static public int GetDLLVersion()
3360 {
3361 return is_GetDLLVersion ();
3362 }
3363
3364 // --------------------- GetPixelClockRange -----------------------
3365 //
3366 public int GetPixelClockRange(ref int pnMin, ref int pnMax)
3367 {
3368 if ( m_hCam == 0 )
3369 return IS_INVALID_CAMERA_HANDLE;
3370
3371 return is_GetPixelClockRange ( m_hCam, ref pnMin, ref pnMax);
3372 }
3373
3374 // --------------------- SetPixelClock -----------------------
3375 //
3376 public int SetPixelClock(int Clock)
3377 {
3378 if ( m_hCam == 0 )
3379 return IS_INVALID_CAMERA_HANDLE;
3380
3381 return is_SetPixelClock ( m_hCam, Clock);
3382 }
3383
3384 // --------------------- GetSensorInfo -----------------------
3385 //
3386 public int GetSensorInfo( ref SENSORINFO pSensorInfo)
3387 {
3388 if ( m_hCam == 0 )
3389 return IS_INVALID_CAMERA_HANDLE;
3390
3391 byte[] pTemp = new byte[64];
3392 int ret = is_GetSensorInfo ( m_hCam, pTemp);
3393
3394 if ( ret == IS_SUCCESS )
3395 {
3396 pSensorInfo.SensorID = (pTemp[1]<<8) + (pTemp[0]);
3397 pSensorInfo.strSensorName = GetStringFromByte( pTemp, 2, 32 );
3398 pSensorInfo.nColorMode = pTemp[34];
3399 pSensorInfo.nMaxWidth = (pTemp[39]<<24) + (pTemp[38]<<16) + (pTemp[37]<<8) + (pTemp[36]);
3400 pSensorInfo.nMaxHeight = (pTemp[43]<<24) + (pTemp[42]<<16) + (pTemp[41]<<8) + (pTemp[40]);
3401 pSensorInfo.bMasterGain = Convert.ToBoolean(pTemp[44]);
3402 pSensorInfo.bRGain = Convert.ToBoolean(pTemp[48]);
3403 pSensorInfo.bGGain = Convert.ToBoolean(pTemp[52]);
3404 pSensorInfo.bBGain = Convert.ToBoolean(pTemp[56]);
3405 pSensorInfo.bGlobShutter = Convert.ToBoolean(pTemp[60]);
3406 }
3407
3408 return ret;
3409 }
3410
3411 // --------------------- EnableMessage -----------------------
3412 //
3413 public int EnableMessage(int which, int hWnd)
3414 {
3415 return is_EnableMessage ( m_hCam, which, hWnd);
3416 }
3417
3418 // --------------------- SetHardwareGain -----------------------
3419 //
3420 public int SetHardwareGain( int nMaster, int nRed, int nGreen, int nBlue )
3421 {
3422 if ( m_hCam == 0 )
3423 return IS_INVALID_CAMERA_HANDLE;
3424
3425 return is_SetHardwareGain ( m_hCam, nMaster, nRed, nGreen, nBlue);
3426 }
3427
3428 // --------------------- GetFramesPerSecond -----------------------
3429 //
3430 public int GetFramesPerSecond( ref double dblFPS )
3431 {
3432 if ( m_hCam == 0 )
3433 return IS_INVALID_CAMERA_HANDLE;
3434
3435 return is_GetFramesPerSecond ( m_hCam, ref dblFPS);
3436 }
3437
3438 // --------------------- EnableAutoExit -----------------------
3439 //
3440 public int EnableAutoExit( int nMode )
3441 {
3442 if ( m_hCam == 0 )
3443 return IS_INVALID_CAMERA_HANDLE;
3444
3445 return is_EnableAutoExit ( m_hCam, nMode);
3446 }
3447
3448 // --------------------- SetWhiteBalance -----------------------
3449 //
3450 public int SetWhiteBalance( int nMode )
3451 {
3452 if ( m_hCam == 0 )
3453 return IS_INVALID_CAMERA_HANDLE;
3454
3455 return is_SetWhiteBalance ( m_hCam, nMode);
3456 }
3457
3458 // --------------------- SetWhiteBalanceMultipliers -----------------------
3459 //
3460 public int SetWhiteBalanceMultipliers(double dblRed, double dblGreen, double dblBlue)
3461 {
3462 if ( m_hCam == 0 )
3463 return IS_INVALID_CAMERA_HANDLE;
3464
3465 return is_SetWhiteBalanceMultipliers ( m_hCam, dblRed, dblGreen, dblBlue);
3466 }
3467
3468 // --------------------- GetWhiteBalanceMultipliers -----------------------
3469 //
3470 public int GetWhiteBalanceMultipliers(ref double pdblRed, ref double pdblGreen, ref double pdblBlue)
3471 {
3472 if ( m_hCam == 0 )
3473 return IS_INVALID_CAMERA_HANDLE;
3474
3475 return is_GetWhiteBalanceMultipliers ( m_hCam, ref pdblRed, ref pdblGreen, ref pdblBlue);
3476 }
3477
3478 // --------------------- SetFrameRate -----------------------
3479 //
3480 public int SetFrameRate( double FPS, ref double newFPS)
3481 {
3482 if ( m_hCam == 0 )
3483 return IS_INVALID_CAMERA_HANDLE;
3484
3485 return is_SetFrameRate ( m_hCam, FPS, ref newFPS);
3486 }
3487
3488 // --------------------- SetExposureTime -----------------------
3489 //
3490 public int SetExposureTime( double EXP, ref double newEXP)
3491 {
3492 if ( m_hCam == 0 )
3493 return IS_INVALID_CAMERA_HANDLE;
3494
3495 return is_SetExposureTime ( m_hCam, EXP, ref newEXP);
3496 }
3497
3498 // --------------------- SetEdgeEnhancement -----------------------
3499 //
3500 public int SetEdgeEnhancement( int nEnable )
3501 {
3502 if ( m_hCam == 0 )
3503 return IS_INVALID_CAMERA_HANDLE;
3504
3505 return is_SetEdgeEnhancement ( m_hCam, nEnable);
3506 }
3507
3508
3509 // --------------------- CameraStatus -----------------------
3510 //
3511 public long CameraStatus( int nInfo, int ulValue)
3512 {
3513 if ( m_hCam == 0 )
3514 return IS_INVALID_CAMERA_HANDLE;
3515
3516 return is_CameraStatus ( m_hCam, nInfo, ulValue);
3517 }
3518
3519 // --------------------- GetCameraType -----------------------
3520 //
3521 public int GetCameraType()
3522 {
3523 if ( m_hCam == 0 )
3524 return IS_INVALID_CAMERA_HANDLE;
3525
3526 return is_GetCameraType(m_hCam);
3527 }
3528
3529 // --------------------- GetNumberOfCameras -----------------------
3530 //
3531 static public int GetNumberOfCameras(ref int pnNumCams)
3532 {
3533 return is_GetNumberOfCameras(ref pnNumCams);
3534 }
3535
3536 // --------------------- SetColorCorrection -----------------------
3537 //
3538 public int SetColorCorrection(int nEnable, double[] factors)
3539 {
3540 if ( m_hCam == 0 )
3541 return IS_INVALID_CAMERA_HANDLE;
3542
3543 return is_SetColorCorrection ( m_hCam, nEnable, factors);
3544 }
3545
3546 // --------------------- SetBlCompensation -----------------------
3547 //
3548 public int SetBlCompensation(int nEnable, int offset, int reserved)
3549 {
3550 if ( m_hCam == 0 )
3551 return IS_INVALID_CAMERA_HANDLE;
3552
3553 return is_SetBlCompensation ( m_hCam, nEnable, offset, reserved);
3554 }
3555
3556
3557 // --------------------- SetBadPixelCorrection -----------------------
3558 //
3559 public int SetBadPixelCorrection( int nEnable, int threshold)
3560 {
3561 if ( m_hCam == 0 )
3562 return IS_INVALID_CAMERA_HANDLE;
3563
3564 return is_SetBadPixelCorrection ( m_hCam, nEnable, threshold);
3565 }
3566
3567 // --------------------- LoadBadPixelCorrectionTable -----------------------
3568 //
3569 public int LoadBadPixelCorrectionTable( byte[] File )
3570 {
3571 if ( m_hCam == 0 )
3572 return IS_INVALID_CAMERA_HANDLE;
3573
3574 return is_LoadBadPixelCorrectionTable ( m_hCam, File);
3575 }
3576
3577 // --------------------- SaveBadPixelCorrectionTable -----------------------
3578 //
3579 public int SaveBadPixelCorrectionTable( byte[] File )
3580 {
3581 if ( m_hCam == 0 )
3582 return IS_INVALID_CAMERA_HANDLE;
3583
3584 return is_SaveBadPixelCorrectionTable ( m_hCam, File);
3585 }
3586
3587 // --------------------- SetBadPixelCorrectionTable -----------------------
3588 //
3589 public int SetBadPixelCorrectionTable( int nMode, byte[] pList)
3590 {
3591 if ( m_hCam == 0 )
3592 return IS_INVALID_CAMERA_HANDLE;
3593
3594 return is_SetBadPixelCorrectionTable ( m_hCam, nMode, pList);
3595 }
3596
3597
3598 // --------------------- GetUsedBandwidth -----------------------
3599 //
3600 public int GetUsedBandwidth()
3601 {
3602 return is_GetUsedBandwidth( 0 );
3603 }
3604
3605
3606 // --------------------- GetFrameTimeRange -----------------------
3607 //
3608 public int GetFrameTimeRange( ref double min, ref double max, ref double intervall)
3609 {
3610 if ( m_hCam == 0 )
3611 return IS_INVALID_CAMERA_HANDLE;
3612
3613 return is_GetFrameTimeRange ( m_hCam, ref min, ref max, ref intervall);
3614 }
3615
3616
3617 // --------------------- GetExposureRange -----------------------
3618 //
3619 public int GetExposureRange( ref double min, ref double max, ref double intervall)
3620 {
3621 if ( m_hCam == 0 )
3622 return IS_INVALID_CAMERA_HANDLE;
3623
3624 return is_GetExposureRange (m_hCam, ref min, ref max, ref intervall);
3625 }
3626
3627
3628 // --------------------- SetMemoryMode -----------------------
3629 //
3630 public int SetMemoryMode(int nCount,int nDelay)
3631 {
3632 if ( m_hCam == 0 )
3633 return IS_INVALID_CAMERA_HANDLE;
3634
3635 return is_SetMemoryMode ( m_hCam, nCount, nDelay);
3636 }
3637
3638 // --------------------- TransferImage -----------------------
3639 //
3640 public int TransferImage( int nMemID, int seqID, int imageNr, int reserved)
3641 {
3642 if ( m_hCam == 0 )
3643 return IS_INVALID_CAMERA_HANDLE;
3644
3645 return is_TransferImage ( m_hCam, nMemID, seqID, imageNr, reserved);
3646 }
3647
3648
3649 // --------------------- TransferMemorySequence -----------------------
3650 //
3651 public int TransferMemorySequence( int seqID, int StartNr, int nCount, int nSeqPos)
3652 {
3653 if ( m_hCam == 0 )
3654 return IS_INVALID_CAMERA_HANDLE;
3655
3656 return is_TransferMemorySequence ( m_hCam, seqID, StartNr, nCount, nSeqPos);
3657 }
3658
3659 // --------------------- MemoryFreezeVideo -----------------------
3660 //
3661 public int MemoryFreezeVideo( int nMemID, int Wait )
3662 {
3663 if ( m_hCam == 0 )
3664 return IS_INVALID_CAMERA_HANDLE;
3665
3666 return is_MemoryFreezeVideo ( m_hCam, nMemID, Wait);
3667 }
3668
3669
3670 // --------------------- GetLastMemorySequence -----------------------
3671 //
3672 public int GetLastMemorySequence( ref int pID )
3673 {
3674 if ( m_hCam == 0 )
3675 return IS_INVALID_CAMERA_HANDLE;
3676
3677 return is_GetLastMemorySequence ( m_hCam, ref pID);
3678 }
3679
3680
3681 // --------------------- GetNumberOfMemoryImages -----------------------
3682 //
3683 public int GetNumberOfMemoryImages( ref int nID, ref int pnCount)
3684 {
3685 if ( m_hCam == 0 )
3686 return IS_INVALID_CAMERA_HANDLE;
3687
3688 return is_GetNumberOfMemoryImages ( m_hCam, ref nID, ref pnCount);
3689 }
3690
3691
3692 // --------------------- GetMemorySequenceWindow -----------------------
3693 //
3694 public int GetMemorySequenceWindow( int nID,ref int left, ref int top, ref int right, ref int bottom)
3695 {
3696 if ( m_hCam == 0 )
3697 return IS_INVALID_CAMERA_HANDLE;
3698
3699 return is_GetMemorySequenceWindow ( m_hCam, nID,ref left, ref top, ref right, ref bottom);
3700 }
3701
3702
3703 // --------------------- IsMemoryBoardConnected -----------------------
3704 //
3705 public bool IsMemoryBoardConnected()
3706 {
3707 if ( m_hCam == 0 )
3708 return false;
3709
3710 byte pConnected = 0;
3711 if ( is_IsMemoryBoardConnected ( m_hCam, ref pConnected) != IS_SUCCESS )
3712 return false;
3713
3714 if ( pConnected == 0 )
3715 return false;
3716
3717 return true;
3718 }
3719
3720
3721 // --------------------- ResetMemory -----------------------
3722 //
3723 public int ResetMemory()
3724 {
3725 if ( m_hCam == 0 )
3726 return IS_INVALID_CAMERA_HANDLE;
3727
3728 return is_ResetMemory ( m_hCam, 0);
3729 }
3730
3731
3732 // --------------------- SetSubSampling -----------------------
3733 //
3734 public int SetSubSampling( int mode)
3735 {
3736 if ( m_hCam == 0 )
3737 return IS_INVALID_CAMERA_HANDLE;
3738
3739 return is_SetSubSampling ( m_hCam, mode);
3740 }
3741
3742 // --------------------- SetBinning -----------------------
3743 //
3744 public int SetBinning( int mode )
3745 {
3746 if ( m_hCam == 0 )
3747 return IS_INVALID_CAMERA_HANDLE;
3748
3749 return is_SetBinning ( m_hCam, mode);
3750 }
3751
3752 // --------------------- ForceTrigger -----------------------
3753 //
3754 public int ForceTrigger()
3755 {
3756 if ( m_hCam == 0 )
3757 return IS_INVALID_CAMERA_HANDLE;
3758
3759 return is_ForceTrigger( m_hCam);
3760 }
3761
3762
3763 // --------------------- GetBusSpeed -----------------------
3764 //
3765 public int GetBusSpeed()
3766 {
3767 if ( m_hCam == 0 )
3768 return IS_INVALID_CAMERA_HANDLE;
3769
3770 return is_GetBusSpeed(m_hCam);
3771 }
3772
3773 public int SetDDUpdateTime(int ms)
3774 {
3775 if ( m_hCam == 0 )
3776 return IS_INVALID_CAMERA_HANDLE;
3777
3778 return is_SetDDUpdateTime(m_hCam, ms);
3779 }
3780
3781
3782 public int EnableDDOverlay()
3783 {
3784 if ( m_hCam == 0 )
3785 return IS_INVALID_CAMERA_HANDLE;
3786
3787 return is_EnableDDOverlay( m_hCam );
3788 }
3789
3790 public int DisableDDOverlay()
3791 {
3792 if ( m_hCam == 0 )
3793 return IS_INVALID_CAMERA_HANDLE;
3794 return is_DisableDDOverlay( m_hCam);
3795 }
3796
3797
3798 public int ShowDDOverlay()
3799 {
3800 if ( m_hCam == 0 )
3801 return IS_INVALID_CAMERA_HANDLE;
3802 return is_ShowDDOverlay( m_hCam);
3803 }
3804
3805 public int HideDDOverlay()
3806 {
3807 if ( m_hCam == 0 )
3808 return IS_INVALID_CAMERA_HANDLE;
3809 return is_HideDDOverlay(m_hCam);
3810 }
3811
3812 public int ConvertImage(IntPtr pcSource, int nIDSource, ref IntPtr pcDest, ref int nIDDest, ref int reserved)
3813 {
3814 if ( m_hCam == 0 )
3815 return IS_INVALID_CAMERA_HANDLE;
3816 return is_ConvertImage (m_hCam, pcSource, nIDSource, ref pcDest, ref nIDDest, ref reserved);
3817 }
3818
3819 public int SetConvertParam(int ColorCorrection, int BayerConversionMode, int ColorMode, int Gamma, double[] WhiteBalanceMultipliers)
3820 {
3821 if ( m_hCam == 0 )
3822 return IS_INVALID_CAMERA_HANDLE;
3823 return is_SetConvertParam (m_hCam, ColorCorrection, BayerConversionMode, ColorMode, Gamma, WhiteBalanceMultipliers);
3824 }
3825
3826 public int SaveImageEx(byte[] File, int fileFormat, int Param)
3827 {
3828 if ( m_hCam == 0 )
3829 return IS_INVALID_CAMERA_HANDLE;
3830 return is_SaveImageEx (m_hCam, File, fileFormat, Param);
3831 }
3832
3833 public int SaveImageMemEx( byte[] File, IntPtr pcMem, int nID, int FileFormat, int Param)
3834 {
3835 if ( m_hCam == 0 )
3836 return IS_INVALID_CAMERA_HANDLE;
3837 return is_SaveImageMemEx(m_hCam, File, pcMem, nID, FileFormat, Param);
3838 }
3839
3840 public int LoadImageMem(byte[] File, ref IntPtr ppcImgMem, ref int pid)
3841 {
3842 if ( m_hCam == 0 )
3843 return IS_INVALID_CAMERA_HANDLE;
3844 return is_LoadImageMem (m_hCam,File, ref ppcImgMem, ref pid);
3845 }
3846
3847 public int GetImageHistogram(int nID, int ColorMode, IntPtr pHistoMem)
3848 {
3849 if ( m_hCam == 0 )
3850 return IS_INVALID_CAMERA_HANDLE;
3851 return is_GetImageHistogram(m_hCam, nID, ColorMode, pHistoMem);
3852 }
3853
3854
3855 public int SetTriggerDelay(int us)
3856 {
3857 if ( m_hCam == 0 )
3858 return IS_INVALID_CAMERA_HANDLE;
3859 return is_SetTriggerDelay(m_hCam, us);
3860 }
3861
3862 public int SetGainBoost(int mode)
3863 {
3864 if ( m_hCam == 0 )
3865 return IS_INVALID_CAMERA_HANDLE;
3866 return is_SetGainBoost(m_hCam, mode);
3867 }
3868
3869 public int SetLED(int nValue)
3870 {
3871 if ( m_hCam == 0 )
3872 return IS_INVALID_CAMERA_HANDLE;
3873 return is_SetLED(m_hCam, nValue);
3874 }
3875
3876 public int SetGlobalShutter(int mode)
3877 {
3878 if ( m_hCam == 0 )
3879 return IS_INVALID_CAMERA_HANDLE;
3880 return is_SetGlobalShutter(m_hCam, mode);
3881 }
3882
3883 public int SetExtendedRegister(int index, ushort val)
3884 {
3885 if ( m_hCam == 0 )
3886 return IS_INVALID_CAMERA_HANDLE;
3887 return is_SetExtendedRegister(m_hCam, index,val);
3888 }
3889
3890 public int SetHWGainFactor(int nMode, int nFactor)
3891 {
3892 if ( m_hCam == 0 )
3893 return IS_INVALID_CAMERA_HANDLE;
3894 return is_SetHWGainFactor(m_hCam, nMode, nFactor);
3895 }
3896
3897 public int SetFlashDelay(int ulDelay, int ulDuration)
3898
3899 {
3900
3901 if (m_hCam == 0)
3902 return IS_INVALID_CAMERA_HANDLE;
3903
3904 return is_SetFlashDelay(m_hCam, ulDelay, ulDuration);
3905
3906 }
3907
3908 public int GetGlobalFlashDelay(ref long pulDelay, ref long pulDuration)
3909
3910 {
3911
3912 if (m_hCam == 0)
3913 return IS_INVALID_CAMERA_HANDLE;
3914
3915 return is_GetGlobalFlashDelays (m_hCam, ref pulDelay, ref pulDuration);
3916
3917 }
3918
3919
3920 public int PrepareStealVideo(int nMode, int StealColorMode)
3921 {
3922
3923 if (m_hCam == 0)
3924 return IS_INVALID_CAMERA_HANDLE;
3925
3926 return is_PrepareStealVideo (m_hCam, nMode, StealColorMode);
3927
3928 }
3929
3930 public int StealVideo(int Wait)
3931 {
3932
3933 if (m_hCam == 0)
3934 return IS_INVALID_CAMERA_HANDLE;
3935
3936 return is_StealVideo (m_hCam, Wait);
3937
3938 }
3939
3940 public int LoadParameters(byte[] pFilename)
3941 {
3942
3943 if (m_hCam == 0)
3944 return IS_INVALID_CAMERA_HANDLE;
3945
3946 return is_LoadParameters (m_hCam, pFilename);
3947
3948 }
3949
3950 public int SaveParameters(byte[] pFilename)
3951 {
3952
3953 if (m_hCam == 0)
3954 return IS_INVALID_CAMERA_HANDLE;
3955
3956 return is_SaveParameters (m_hCam, pFilename);
3957
3958 }
3959
3960 public int SetAutoParameter( int param, ref double pval1, ref double pval2)
3961 {
3962
3963 if (m_hCam == 0)
3964 return IS_INVALID_CAMERA_HANDLE;
3965
3966 return is_SetAutoParameter (m_hCam, param, ref pval1, ref pval2);
3967
3968 }
3969
3970
3971 public int Renumerate(int nMode)
3972 {
3973
3974 if (m_hCam == 0)
3975 return IS_INVALID_CAMERA_HANDLE;
3976
3977 return is_Renumerate (m_hCam, nMode);
3978
3979 }
3980
3981 public int GetHdrMode(ref int Mode)
3982 {
3983 if (m_hCam == 0)
3984 return IS_INVALID_CAMERA_HANDLE;
3985
3986 return is_GetHdrMode (m_hCam, ref Mode);
3987 }
3988
3989 public int EnableHdr(int Enable)
3990 {
3991 if (m_hCam == 0)
3992 return IS_INVALID_CAMERA_HANDLE;
3993
3994 return is_EnableHdr (m_hCam, Enable);
3995 }
3996
3997
3998 public int SetHdrKneepoints (ref KNEEPOINTARRAY KneepointArray, int KneepointArraySize)
3999 {
4000 int i, j;
4001
4002 if (m_hCam == 0)
4003 return IS_INVALID_CAMERA_HANDLE;
4004
4005 // Temporary byte array
4006 byte[] pTemp = new byte[KneepointArraySize];
4007 byte [] temp = new byte[4];
4008 //Byte [] temp2 = new byte[8];
4009
4010 // Get 4 bytes (NumberOfUsedKneepoints) and copy them to temp
4011 temp = System.BitConverter.GetBytes(KneepointArray.NumberOfUsedKneepoints);
4012 for(i=0; i<4; i++)
4013 pTemp[i] = temp[i];
4014
4015 // The nest 4 bytes are not used (alignment)
4016
4017 // copy the kneepoint values to temp
4018 for(i=0; i<10; i++)
4019 {
4020 temp = System.BitConverter.GetBytes(KneepointArray.Kneepoint[i].x);
4021 for(j=0; j<8; j++)
4022 pTemp[8 + 16*i + j] = temp[j];
4023
4024 temp = System.BitConverter.GetBytes(KneepointArray.Kneepoint[i].y);
4025 for(j=0; j<8; j++)
4026 pTemp[16 + 16*i + j] = temp[j];
4027 }
4028
4029 int ret = is_SetHdrKneepoints (m_hCam, pTemp, KneepointArraySize);
4030 return ret;
4031 }
4032
4033
4034 public int GetHdrKneepoints (ref KNEEPOINTARRAY KneepointArray, int KneepointArraySize)
4035 {
4036 if (m_hCam == 0)
4037 return IS_INVALID_CAMERA_HANDLE;
4038
4039 // Temporary byte array
4040 byte[] pTemp = new byte[KneepointArraySize];
4041
4042 int ret = is_GetHdrKneepoints (m_hCam, pTemp, KneepointArraySize);
4043 if(ret == IS_SUCCESS)
4044 {
4045 KneepointArray.NumberOfUsedKneepoints = System.BitConverter.ToInt32(pTemp, 0);
4046
4047 for(int i=0; i<10; i++)
4048 {
4049 KneepointArray.Kneepoint[i].x = System.BitConverter.ToDouble(pTemp, 8 + i*16);
4050 KneepointArray.Kneepoint[i].y = System.BitConverter.ToDouble(pTemp, 16 + i*16);
4051 }
4052 }
4053
4054 return ret;
4055 }
4056
4057 public int GetHdrKneepointInfo (ref KNEEPOINTINFO KneepointInfo, int KneepointInfoSize)
4058 {
4059 if (m_hCam == 0)
4060 return IS_INVALID_CAMERA_HANDLE;
4061
4062 // Temporary byte array
4063 byte[] pTemp = new byte[KneepointInfoSize];
4064
4065 // Get Hdr info from API
4066 int ret = is_GetHdrKneepointInfo (m_hCam, pTemp, KneepointInfoSize);
4067
4068 if(ret == IS_SUCCESS)
4069 {
4070 // Convert the bytes fromthe array to the correct data types
4071 KneepointInfo.NumberOfSupportedKneepoints = System.BitConverter.ToInt32(pTemp, 0);
4072 KneepointInfo.NumberOfSupportedKneepoints = System.BitConverter.ToInt32(pTemp, 4);
4073 KneepointInfo.MinValueX = System.BitConverter.ToDouble(pTemp, 8);
4074 KneepointInfo.MaxValueX = System.BitConverter.ToDouble(pTemp, 16);
4075 KneepointInfo.MinValueY = System.BitConverter.ToDouble(pTemp, 24);
4076 KneepointInfo.MaxValueY = System.BitConverter.ToDouble(pTemp, 32);
4077
4078 for(int i=0; i<10; i++)
4079 {
4080 KneepointInfo.DefaultKneepoint[i].x = System.BitConverter.ToDouble(pTemp, 40 + i*16);
4081 KneepointInfo.DefaultKneepoint[i].y = System.BitConverter.ToDouble(pTemp, 48 + i*16);
4082 }
4083 }
4084
4085 return ret;
4086 }
4087
4088 public int SetOptimalCameraTiming (int Mode, int Timeout, ref int pMaxPxlClk, ref double pMaxFrameRate)
4089 {
4090 if (m_hCam == 0)
4091 return IS_INVALID_CAMERA_HANDLE;
4092
4093 return is_SetOptimalCameraTiming (m_hCam, Mode, Timeout, ref pMaxPxlClk, ref pMaxFrameRate);
4094 }
4095
4096 public int WaitForNextImage (uint timeout, ref IntPtr ppcImg, ref int pid)
4097 {
4098 if (m_hCam == 0)
4099 return IS_INVALID_CAMERA_HANDLE;
4100
4101 return is_WaitForNextImage (m_hCam, timeout, ref ppcImg, ref pid);
4102 }
4103
4104 public int InitImageQueue (int Mode)
4105 {
4106 if (m_hCam == 0)
4107 return IS_INVALID_CAMERA_HANDLE;
4108
4109 return is_InitImageQueue (m_hCam, Mode);
4110 }
4111
4112 public int ExitImageQueue ()
4113 {
4114 if (m_hCam == 0)
4115 return IS_INVALID_CAMERA_HANDLE;
4116
4117 return is_ExitImageQueue (m_hCam);
4118 }
4119
4120 public int SetTimeout (uint Mode, uint Timeout)
4121 {
4122 if (m_hCam == 0)
4123 return IS_INVALID_CAMERA_HANDLE;
4124
4125 return is_SetTimeout (m_hCam, Mode, Timeout);
4126 }
4127
4128 public int GetTimeout (uint Mode, ref uint pTimeout)
4129 {
4130 if (m_hCam == 0)
4131 return IS_INVALID_CAMERA_HANDLE;
4132
4133 return is_GetTimeout (m_hCam, Mode, ref pTimeout);
4134 }
4135
4136
4137 public int ImageFormat(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4138 {
4139 if (m_hCam == 0)
4140 {
4141 return IS_INVALID_CAMERA_HANDLE;
4142 }
4143
4144 return is_ImageFormat(m_hCam, nCommand, pParam, nSizeOfParam);
4145 }
4146
4147
4148 public int FaceDetection(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4149 {
4150 if (m_hCam == 0)
4151 {
4152 return IS_INVALID_CAMERA_HANDLE;
4153 }
4154
4155 return is_FaceDetection(m_hCam, nCommand, pParam, nSizeOfParam);
4156 }
4157
4158
4159 public int ImageStabilization(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4160 {
4161 if (m_hCam == 0)
4162 {
4163 return IS_INVALID_CAMERA_HANDLE;
4164 }
4165
4166 return is_ImageStabilization(m_hCam, nCommand, pParam, nSizeOfParam);
4167 }
4168
4169
4170 public int Focus(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4171 {
4172 if (m_hCam == 0)
4173 {
4174 return IS_INVALID_CAMERA_HANDLE;
4175 }
4176
4177 return is_Focus(m_hCam, nCommand, pParam, nSizeOfParam);
4178 }
4179
4180 public int ScenePreset(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4181 {
4182 if (m_hCam == 0)
4183 {
4184 return IS_INVALID_CAMERA_HANDLE;
4185 }
4186
4187 return is_ScenePreset(m_hCam, nCommand, pParam, nSizeOfParam);
4188 }
4189
4190 public int Zoom(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4191 {
4192 if (m_hCam == 0)
4193 {
4194 return IS_INVALID_CAMERA_HANDLE;
4195 }
4196
4197 return is_Zoom(m_hCam, nCommand, pParam, nSizeOfParam);
4198 }
4199
4200 public int Sharpness(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4201 {
4202 if (m_hCam == 0)
4203 {
4204 return IS_INVALID_CAMERA_HANDLE;
4205 }
4206
4207 return is_Sharpness(m_hCam, nCommand, pParam, nSizeOfParam);
4208 }
4209
4210 public int Saturation(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4211 {
4212 if (m_hCam == 0)
4213 {
4214 return IS_INVALID_CAMERA_HANDLE;
4215 }
4216
4217 return is_Saturation(m_hCam, nCommand, pParam, nSizeOfParam);
4218 }
4219
4220 public int TriggerDebounce(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4221 {
4222 if (m_hCam == 0)
4223 {
4224 return IS_INVALID_CAMERA_HANDLE;
4225 }
4226
4227 return is_TriggerDebounce(m_hCam, nCommand, pParam, nSizeOfParam);
4228 }
4229
4230 public int ColorTemperature(uint nCommand, IntPtr pParam, uint nSizeOfParam)
4231 {
4232 if (m_hCam == 0)
4233 {
4234 return IS_INVALID_CAMERA_HANDLE;
4235 }
4236
4237 return is_ColorTemperature(m_hCam, nCommand, pParam, nSizeOfParam);
4238 }
4239
4240 // --------------------------------------------------------------------
4241 // new wrappers only valid for uEye ETH - BEGIN
4242 // --------------------------------------------------------------------
4243
4244 // --------------------- GetEthDeviceInfo -----------------------
4245 //
4246 public int GetEthDeviceInfo( int iDeviceID, ref UEYE_ETH_DEVICE_INFO pDeviceInfo)
4247 {
4248 const int k_iDllSize_DeviceInfo= 640;
4249 const int k_iDllSize_DeviceInfo_Hrtbt= 248;
4250 const int k_iDllSize_DeviceInfo_Ctrl= 152;
4251 const int k_iDllSize_AdapterInfo= 160;
4252 //const int k_iDllSize_DriverInfo= 80;
4253 //const int k_iDllSize_EthCfg= 18;
4254 //const int k_iDllSize_AddrIpV4= 4;
4255 //const int k_iDllSize_AddrMAC= 6;
4256 //const int k_iDllSize_IpCfg= 12;
4257 //const int k_iDllSize_AutocfgIp_Stp= 12;
4258
4259 int off= 0;
4260
4261 byte[] pTemp = new byte[k_iDllSize_DeviceInfo];
4262 int ret = is_GetEthDeviceInfo( iDeviceID, pTemp, k_iDllSize_DeviceInfo);
4263
4264 if ( ret == IS_SUCCESS )
4265 {
4266 // copy UEYE_ETH_DEVICE_INFO_HEARTBEAT data
4267 off= 0;
4268 pDeviceInfo.infoDevHeartbeat.abySerialNumber= GetStringFromByte( pTemp, off, 12);
4269 off+= 12;
4270 pDeviceInfo.infoDevHeartbeat.byDeviceType= pTemp[off];
4271 off++;
4272 pDeviceInfo.infoDevHeartbeat.byCameraID= pTemp[off];
4273 off++;
4274 pDeviceInfo.infoDevHeartbeat.wSensorID= (ushort)((pTemp[off+1]<<8) + (pTemp[off]));
4275 off+= 2;
4276 pDeviceInfo.infoDevHeartbeat.wSizeImgMem_MB= (ushort)((pTemp[off+1]<<8) + (pTemp[off]));
4277 off+= 2;
4278 off+= 2;
4279 pDeviceInfo.infoDevHeartbeat.dwVerStarterFirmware= (uint)((pTemp[off+3]<<24) + (pTemp[off+2]<<16) + (pTemp[off+1]<<8) + (pTemp[off]));
4280 off+= 4;
4281 pDeviceInfo.infoDevHeartbeat.dwVerRuntimeFirmware = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4282 off+= 4;
4283 pDeviceInfo.infoDevHeartbeat.dwStatus = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4284 off+= 4;
4285 off+= 4;
4286 pDeviceInfo.infoDevHeartbeat.wTemperature = (ushort)((pTemp[off + 1] << 8) + (pTemp[off]));
4287 off+= 2;
4288 pDeviceInfo.infoDevHeartbeat.wLinkSpeed_Mb = (ushort)((pTemp[off + 1] << 8) + (pTemp[off]));
4289 off+= 2;
4290 pDeviceInfo.infoDevHeartbeat.macDevice.abyOctet= GetStringFromByte( pTemp, off, 6);
4291 off+= 6;
4292 pDeviceInfo.infoDevHeartbeat.wComportOffset = (ushort)((pTemp[off + 1] << 8) + (pTemp[off]));
4293 off+= 2;
4294 pDeviceInfo.infoDevHeartbeat.ipcfgPersistentIpCfg.ipAddress.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4295 off+= 4;
4296 pDeviceInfo.infoDevHeartbeat.ipcfgPersistentIpCfg.ipSubnetmask.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4297 off+= 4;
4298 off+= 4;
4299 pDeviceInfo.infoDevHeartbeat.ipcfgCurrentIpCfg.ipAddress.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4300 off+= 4;
4301 pDeviceInfo.infoDevHeartbeat.ipcfgCurrentIpCfg.ipSubnetmask.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4302 off+= 4;
4303 off+= 4;
4304 pDeviceInfo.infoDevHeartbeat.macPairedHost.abyOctet= GetStringFromByte( pTemp, off, 6);
4305 off+= 6;
4306 off+= 2;
4307 pDeviceInfo.infoDevHeartbeat.ipPairedHostIp.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4308 off+= 4;
4309 pDeviceInfo.infoDevHeartbeat.ipAutoCfgIpRangeBegin.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4310 off+= 4;
4311 pDeviceInfo.infoDevHeartbeat.ipAutoCfgIpRangeEnd.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4312 off+= 4;
4313 pDeviceInfo.infoDevHeartbeat.abyUserSpace= GetStringFromByte( pTemp, off, 8);
4314
4315 // copy UEYE_ETH_DEVICE_INFO_CONTROL data
4316 off= (int)k_iDllSize_DeviceInfo_Hrtbt;
4317 pDeviceInfo.infoDevControl.dwDeviceID = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4318 off+= 4;
4319 pDeviceInfo.infoDevControl.dwControlStatus = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4320
4321 // copy UEYE_ETH_ADAPTER_INFO data
4322 off= k_iDllSize_DeviceInfo_Hrtbt+ k_iDllSize_DeviceInfo_Ctrl;
4323 pDeviceInfo.infoAdapter.dwAdapterID = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4324 off+= 4;
4325 off+= 4;
4326 pDeviceInfo.infoAdapter.ethcfg.ipcfg.ipAddress.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4327 off+= 4;
4328 pDeviceInfo.infoAdapter.ethcfg.ipcfg.ipSubnetmask.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4329 off+= 4;
4330 off+= 4;
4331 pDeviceInfo.infoAdapter.ethcfg.mac.abyOctet= GetStringFromByte( pTemp, off, 6);
4332 off+= 6;
4333 off+= 2;
4334 pDeviceInfo.infoAdapter.bIsEnabledDHCP= Convert.ToBoolean(pTemp[off]);
4335 off+= 4;
4336 pDeviceInfo.infoAdapter.autoCfgIp.ipAutoCfgIpRangeBegin.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4337 off+= 4;
4338 pDeviceInfo.infoAdapter.autoCfgIp.ipAutoCfgIpRangeEnd.dwAddr = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4339 off+= 4;
4340 off+= 4;
4341 pDeviceInfo.infoAdapter.bIsValidAutoCfgIpRange= Convert.ToBoolean(pTemp[off]);
4342 off+= 4;
4343 pDeviceInfo.infoAdapter.dwCntDevicesKnown = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4344 off+= 4;
4345 pDeviceInfo.infoAdapter.dwCntDevicesPaired = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4346 off+= 4;
4347 pDeviceInfo.infoAdapter.wPacketFilter = (ushort)((pTemp[off + 1] << 8) + (pTemp[off]));
4348
4349 // copy UEYE_ETH_DRIVER_INFO data
4350 off= k_iDllSize_DeviceInfo_Hrtbt+ k_iDllSize_DeviceInfo_Ctrl+ k_iDllSize_AdapterInfo;
4351 pDeviceInfo.infoDriver.dwMinVerStarterFirmware = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4352 off+= 4;
4353 pDeviceInfo.infoDriver.dwMaxVerStarterFirmware = (uint)((pTemp[off + 3] << 24) + (pTemp[off + 2] << 16) + (pTemp[off + 1] << 8) + (pTemp[off]));
4354 }
4355
4356 return ret;
4357 }
4358
4359 // --------------------- SetPersistentIpCfg -----------------------
4360 //
4361 public int SetPersistentIpCfg( int iDeviceID, ref UEYE_ETH_IP_CONFIGURATION pIpCfg)
4362 {
4363 const uint k_uDllSize_IpCfg= 12;
4364
4365 uint off= 0;
4366
4367 byte[] pTemp = new byte[k_uDllSize_IpCfg];
4368
4369 // copy the UEYE_ETH_IP_CONFIGURATION data
4370 off= 0;
4371 pTemp[off]= pIpCfg.ipAddress.by1;
4372 off+= 1;
4373 pTemp[off]= pIpCfg.ipAddress.by2;
4374 off+= 1;
4375 pTemp[off]= pIpCfg.ipAddress.by3;
4376 off+= 1;
4377 pTemp[off]= pIpCfg.ipAddress.by4;
4378 off+= 1;
4379 pTemp[off]= pIpCfg.ipSubnetmask.by1;
4380 off+= 1;
4381 pTemp[off]= pIpCfg.ipSubnetmask.by2;
4382 off+= 1;
4383 pTemp[off]= pIpCfg.ipSubnetmask.by3;
4384 off+= 1;
4385 pTemp[off]= pIpCfg.ipSubnetmask.by4;
4386 off+= 1;
4387 pTemp[off]= 0xff;
4388 off+= 1;
4389 pTemp[off]= 0xff;
4390 off+= 1;
4391 pTemp[off]= 0xff;
4392 off+= 1;
4393 pTemp[off]= 0xff;
4394
4395 return is_SetPersistentIpCfg( iDeviceID, pTemp, k_uDllSize_IpCfg);
4396 }
4397
4398 // --------------------- SetStarterFirmware -----------------------
4399 //
4400 public int SetStarterFirmware( int iDeviceID, byte[] pcFilepath, uint uFilepathLen)
4401 {
4402 return is_SetStarterFirmware( iDeviceID, pcFilepath, uFilepathLen);
4403 }
4404
4405 // --------------------- SetAutoCfgIpSetup -----------------------
4406 //
4407 public int SetAutoCfgIpSetup( int iAdapterID, ref UEYE_ETH_AUTOCFG_IP_SETUP pSetup)
4408 {
4409 const uint k_uDllSize_AutocfgIp_Stp= 12;
4410
4411 uint off= 0;
4412
4413 byte[] pTemp = new byte[k_uDllSize_AutocfgIp_Stp];
4414
4415 // copy the UEYE_ETH_AUTOCFG_IP_SETUP data
4416 off= 0;
4417 pTemp[off]= pSetup.ipAutoCfgIpRangeBegin.by1;
4418 off+= 1;
4419 pTemp[off]= pSetup.ipAutoCfgIpRangeBegin.by2;
4420 off+= 1;
4421 pTemp[off]= pSetup.ipAutoCfgIpRangeBegin.by3;
4422 off+= 1;
4423 pTemp[off]= pSetup.ipAutoCfgIpRangeBegin.by4;
4424 off+= 1;
4425 pTemp[off]= pSetup.ipAutoCfgIpRangeEnd.by1;
4426 off+= 1;
4427 pTemp[off]= pSetup.ipAutoCfgIpRangeEnd.by2;
4428 off+= 1;
4429 pTemp[off]= pSetup.ipAutoCfgIpRangeEnd.by3;
4430 off+= 1;
4431 pTemp[off]= pSetup.ipAutoCfgIpRangeEnd.by4;
4432 off+= 1;
4433 pTemp[off]= 0;
4434 off+= 1;
4435 pTemp[off]= 0;
4436 off+= 1;
4437 pTemp[off]= 0;
4438 off+= 1;
4439 pTemp[off]= 0;
4440
4441 return is_SetAutoCfgIpSetup( iAdapterID, pTemp, k_uDllSize_AutocfgIp_Stp);
4442 }
4443
4444 // --------------------- SetAutoCfgIpSetup -----------------------
4445 //
4446 public int SetPacketFilter( int iAdapterID, uint uFilterSetting)
4447 {
4448 return is_SetPacketFilter( iAdapterID, uFilterSetting);
4449 }
4450
4451 // --------------------- GetComportNumber -----------------------
4452 //
4453 public int GetComportNumber( ref uint pComportNumber)
4454 {
4455 if (m_hCam == 0)
4456 return IS_INVALID_CAMERA_HANDLE;
4457
4458 return is_GetComportNumber(m_hCam, ref pComportNumber);
4459 }
4460
4461 // ------------------- GetSupportedTestImages -----------------------
4462 //
4463 public int GetSupportedTestImages( ref int SupportedTestImages)
4464 {
4465 if (m_hCam == 0)
4466 return IS_INVALID_CAMERA_HANDLE;
4467
4468 return is_GetSupportedTestImages(m_hCam, ref SupportedTestImages);
4469 }
4470
4471 // ------------------- GetTestImageValueRange -----------------------
4472 //
4473 public int GetTestImageValueRange( int TestImage, ref int TestImageValueMin, ref int TestImageValueMax)
4474 {
4475 if (m_hCam == 0)
4476 return IS_INVALID_CAMERA_HANDLE;
4477
4478 return is_GetTestImageValueRange(m_hCam, TestImage, ref TestImageValueMin, ref TestImageValueMax);
4479 }
4480
4481 // ------------------- SetSensorTestImage -----------------------
4482 //
4483 public int SetSensorTestImage( int Param1, int Param2)
4484 {
4485 if (m_hCam == 0)
4486 return IS_INVALID_CAMERA_HANDLE;
4487
4488 return is_SetSensorTestImage(m_hCam, Param1, Param2);
4489 }
4490
4491
4492
4493 // ------------------- SetCameraLUT -----------------------
4494 //
4495 public int SetCameraLUT( uint Mode, uint NumberOfEntries, double[] Red_Grey, double[] Green, double[] Blue)
4496 {
4497 if (m_hCam == 0)
4498 return IS_INVALID_CAMERA_HANDLE;
4499
4500 return is_SetCameraLUT(m_hCam, Mode, NumberOfEntries, Red_Grey, Green, Blue);
4501 }
4502
4503
4504 // ------------------- GetCameraLUT -----------------------
4505 //
4506 public int GetCameraLUT( uint Mode, uint NumberOfEntries, double[] Red_Grey, double[] Green, double[] Blue)
4507 {
4508 if (m_hCam == 0)
4509 return IS_INVALID_CAMERA_HANDLE;
4510
4511 return is_GetCameraLUT(m_hCam, Mode, NumberOfEntries, Red_Grey, Green, Blue);
4512 }
4513
4514
4515 // ------------------- SetColorConverter -----------------------
4516 //
4517 public int SetColorConverter( int ColorMode, int ConvertMode)
4518 {
4519 if (m_hCam == 0)
4520 return IS_INVALID_CAMERA_HANDLE;
4521
4522 return is_SetColorConverter(m_hCam, ColorMode, ConvertMode);
4523 }
4524
4525
4526 // ------------------- GetColorConverter -----------------------
4527 //
4528 public int GetColorConverter( int ColorMode, ref int pCurrentConvertMode, ref int pDefaultConvertMode, ref int pSupportedConvertModes)
4529 {
4530 if (m_hCam == 0)
4531 return IS_INVALID_CAMERA_HANDLE;
4532
4533 return is_GetColorConverter(m_hCam, ColorMode, ref pCurrentConvertMode, ref pDefaultConvertMode, ref pSupportedConvertModes);
4534 }
4535
4536
4537 // ------------------- GetCaptureErrorInfo -----------------------
4538 //
4539 public int GetCaptureErrorInfo( ref UEYE_CAPTURE_ERROR_INFO pCaptureErrorInfo, int SizeCaptureErrorInfo)
4540 {
4541 if (m_hCam == 0)
4542 return IS_INVALID_CAMERA_HANDLE;
4543
4544 // Temporary byte array
4545 byte[] pTemp = new byte[SizeCaptureErrorInfo];
4546
4547 int ret = is_GetCaptureErrorInfo(m_hCam, pTemp, SizeCaptureErrorInfo);
4548 if(ret == IS_SUCCESS)
4549 {
4550 pCaptureErrorInfo.dwCapErrCnt_Total = pTemp[0];
4551 int i;
4552 for(i=0; i<256; i++)
4553 {
4554 pCaptureErrorInfo.adwCapErrCnt_Detail[i] = pTemp[64 + i];
4555 }
4556 }
4557
4558 return ret;
4559 }
4560
4561
4562 // ------------------- ResetCaptureErrorInfo -----------------------
4563 //
4564 public int ResetCaptureErrorInfo()
4565 {
4566 if (m_hCam == 0)
4567 return IS_INVALID_CAMERA_HANDLE;
4568
4569 return is_ResetCaptureErrorInfo(m_hCam);
4570 }
4571
4572
4573 // ------------------- GetDuration -----------------------
4574 //
4575 public int GetDuration (uint nMode, ref uint pnTime)
4576 {
4577 return is_GetDuration (0, nMode, ref pnTime);
4578 }
4579
4580
4581 // ------------------- GetSensorScalerInfo -----------------------
4582 //
4583 public int GetSensorScalerInfo (ref SENSORSCALERINFO pSensorScalerInfo, int nSensorScalerInfoSize)
4584 {
4585 if (m_hCam == 0)
4586 return IS_INVALID_CAMERA_HANDLE;
4587
4588 return is_GetSensorScalerInfo (m_hCam, ref pSensorScalerInfo, nSensorScalerInfoSize);
4589 }
4590
4591
4592 // ------------------- SetSensorScaler -----------------------
4593 //
4594 public int SetSensorScaler (uint nMode, double dblFactor)
4595 {
4596 if (m_hCam == 0)
4597 return IS_INVALID_CAMERA_HANDLE;
4598
4599 return is_SetSensorScaler (m_hCam, nMode, dblFactor);
4600 }
4601
4602
4603 // ------------------- GetImageInfo -----------------------
4604 //
4605 public int GetImageInfo (int nImageBufferID, ref UEYEIMAGEINFO pImageInfo, int nImageInfoSize)
4606 {
4607 if (m_hCam == 0)
4608 return IS_INVALID_CAMERA_HANDLE;
4609
4610 return is_GetImageInfo (m_hCam, nImageBufferID, ref pImageInfo, nImageInfoSize);
4611 }
4612
4613
4614 // ------------------- DirectRenderer -----------------------
4615 //
4616 public int DirectRenderer (uint nMode, ref byte [] pParam, uint SizeOfParam)
4617 {
4618 if (m_hCam == 0)
4619 return IS_INVALID_CAMERA_HANDLE;
4620
4621 return is_DirectRenderer (m_hCam, nMode, pParam, SizeOfParam);
4622 }
4623}
4624
Note: See TracBrowser for help on using the repository browser.