/*****************************************************************************/ /*! \file ueye.h * \author (c) 2004-2019 by Imaging Development Systems GmbH * \date Date: 2019/11/29 * \version PRODUCTVERSION: 4.93 * * \brief Library interface for IDS uEye - camera family. * definition of exported API functions and constants *//***************************************************************************/ #ifndef __IDS_HEADER__ #define __IDS_HEADER__ #pragma pack(push, 8) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* make sure __LINUX__ is defined */ #if defined __linux__ # if !defined __LINUX__ # define __LINUX__ # endif /* !defined __LINUX__ */ #endif /* defined __linux__ */ // ---------------------------------------------------------------------------- // Version definition // ---------------------------------------------------------------------------- #ifndef UEYE_VERSION # define UEYE_VERSION(major, minor, build) (((major)<<24) + ((minor)<<16) + (build)) #endif #ifndef UEYE_VERSION_CODE # define UEYE_VERSION_CODE UEYE_VERSION(4, 93, 0) #endif // ---------------------------------------------------------------------------- // Driver name // ---------------------------------------------------------------------------- #if defined(__linux__) || defined(__LINUX__) # define DRIVER_DLL_NAME "libueye_api.so" #elif defined (_WIN64) # define DRIVER_DLL_NAME "ueye_api_64.dll" #else # define DRIVER_DLL_NAME "ueye_api.dll" #endif // ---------------------------------------------------------------------------- // Color modes // ---------------------------------------------------------------------------- #define IS_COLORMODE_INVALID 0 #define IS_COLORMODE_MONOCHROME 1 #define IS_COLORMODE_BAYER 2 #define IS_COLORMODE_CBYCRY 4 #define IS_COLORMODE_JPEG 8 // ---------------------------------------------------------------------------- // Sensor Types // ---------------------------------------------------------------------------- #define IS_SENSOR_INVALID 0x0000 // CMOS Sensors #define IS_SENSOR_UI141X_M 0x0001 // VGA rolling shutter, monochrome #define IS_SENSOR_UI141X_C 0x0002 // VGA rolling shutter, color #define IS_SENSOR_UI144X_M 0x0003 // SXGA rolling shutter, monochrome #define IS_SENSOR_UI144X_C 0x0004 // SXGA rolling shutter, SXGA color #define IS_SENSOR_UI154X_M 0x0030 // SXGA rolling shutter, monochrome #define IS_SENSOR_UI154X_C 0x0031 // SXGA rolling shutter, color #define IS_SENSOR_UI145X_C 0x0008 // UXGA rolling shutter, color #define IS_SENSOR_UI146X_C 0x000a // QXGA rolling shutter, color #define IS_SENSOR_UI148X_M 0x000b // 5MP rolling shutter, monochrome #define IS_SENSOR_UI148X_C 0x000c // 5MP rolling shutter, color #define IS_SENSOR_UI121X_M 0x0010 // VGA global shutter, monochrome #define IS_SENSOR_UI121X_C 0x0011 // VGA global shutter, VGA color #define IS_SENSOR_UI122X_M 0x0012 // WVGA global shutter, monochrome #define IS_SENSOR_UI122X_C 0x0013 // WVGA global shutter, color #define IS_SENSOR_UI164X_C 0x0015 // SXGA rolling shutter, color #define IS_SENSOR_UI155X_C 0x0017 // UXGA rolling shutter, color #define IS_SENSOR_UI1223_M 0x0018 // WVGA global shutter, monochrome #define IS_SENSOR_UI1223_C 0x0019 // WVGA global shutter, color #define IS_SENSOR_UI149X_M 0x003E // 10MP rolling shutter, monochrome #define IS_SENSOR_UI149X_C 0x003F // 10MP rolling shutter, color #define IS_SENSOR_UI1225_M 0x0022 // WVGA global shutter, monochrome, LE model #define IS_SENSOR_UI1225_C 0x0023 // WVGA global shutter, color, LE model #define IS_SENSOR_UI1645_C 0x0025 // SXGA rolling shutter, color, LE model #define IS_SENSOR_UI1555_C 0x0027 // UXGA rolling shutter, color, LE model #define IS_SENSOR_UI1545_M 0x0028 // SXGA rolling shutter, monochrome, LE model #define IS_SENSOR_UI1545_C 0x0029 // SXGA rolling shutter, color, LE model #define IS_SENSOR_UI1455_C 0x002B // UXGA rolling shutter, color, LE model #define IS_SENSOR_UI1465_C 0x002D // QXGA rolling shutter, color, LE model #define IS_SENSOR_UI1485_M 0x002E // 5MP rolling shutter, monochrome, LE model #define IS_SENSOR_UI1485_C 0x002F // 5MP rolling shutter, color, LE model #define IS_SENSOR_UI1495_M 0x0040 // 10MP rolling shutter, monochrome, LE model #define IS_SENSOR_UI1495_C 0x0041 // 10MP rolling shutter, color, LE model #define IS_SENSOR_UI112X_M 0x004A // 0768x576, HDR sensor, monochrome #define IS_SENSOR_UI112X_C 0x004B // 0768x576, HDR sensor, color #define IS_SENSOR_UI1008_M 0x004C #define IS_SENSOR_UI1008_C 0x004D #define IS_SENSOR_UI1005_M 0x020A #define IS_SENSOR_UI1005_C 0x020B #define IS_SENSOR_UI1007_M 0x0076 #define IS_SENSOR_UI1007_C 0x0077 #define IS_SENSOR_UI1240_M 0x0050 // SXGA global shutter, monochrome #define IS_SENSOR_UI1240_C 0x0051 // SXGA global shutter, color #define IS_SENSOR_UI1240_NIR 0x0062 // SXGA global shutter, NIR #define IS_SENSOR_UI1240LE_M 0x0054 // SXGA global shutter, monochrome, single board #define IS_SENSOR_UI1240LE_C 0x0055 // SXGA global shutter, color, single board #define IS_SENSOR_UI1240LE_NIR 0x0064 // SXGA global shutter, NIR, single board #define IS_SENSOR_UI1240ML_M 0x0066 // SXGA global shutter, monochrome, single board #define IS_SENSOR_UI1240ML_C 0x0067 // SXGA global shutter, color, single board #define IS_SENSOR_UI1240ML_NIR 0x0200 // SXGA global shutter, NIR, single board #define IS_SENSOR_UI1243_M_SMI 0x0078 #define IS_SENSOR_UI1243_C_SMI 0x0079 #define IS_SENSOR_UI1543_M 0x0032 // SXGA rolling shutter, monochrome, single board #define IS_SENSOR_UI1543_C 0x0033 // SXGA rolling shutter, color, single board #define IS_SENSOR_UI1544_M 0x003A // SXGA rolling shutter, monochrome, single board #define IS_SENSOR_UI1544_C 0x003B // SXGA rolling shutter, color, single board #define IS_SENSOR_UI1543_M_WO 0x003C // SXGA rolling shutter, monochrome, single board #define IS_SENSOR_UI1543_C_WO 0x003D // SXGA rolling shutter, color, single board #define IS_SENSOR_UI1453_C 0x0035 // UXGA rolling shutter, color, single board #define IS_SENSOR_UI1463_C 0x0037 // QXGA rolling shutter, color, single board #define IS_SENSOR_UI1483_M 0x0038 // QSXG rolling shutter, monochrome, single board #define IS_SENSOR_UI1483_C 0x0039 // QSXG rolling shutter, color, single board #define IS_SENSOR_UI1493_M 0x004E // 10Mp rolling shutter, monochrome, single board #define IS_SENSOR_UI1493_C 0x004F // 10MP rolling shutter, color, single board #define IS_SENSOR_UI1463_M_WO 0x0044 // QXGA rolling shutter, monochrome, single board #define IS_SENSOR_UI1463_C_WO 0x0045 // QXGA rolling shutter, color, single board #define IS_SENSOR_UI1553_C_WN 0x0047 // UXGA rolling shutter, color, single board #define IS_SENSOR_UI1483_M_WO 0x0048 // QSXGA rolling shutter, monochrome, single board #define IS_SENSOR_UI1483_C_WO 0x0049 // QSXGA rolling shutter, color, single board #define IS_SENSOR_UI1580_M 0x005A // 5MP rolling shutter, monochrome #define IS_SENSOR_UI1580_C 0x005B // 5MP rolling shutter, color #define IS_SENSOR_UI1580LE_M 0x0060 // 5MP rolling shutter, monochrome, single board #define IS_SENSOR_UI1580LE_C 0x0061 // 5MP rolling shutter, color, single board #define IS_SENSOR_UI1360M 0x0068 // 2.2MP global shutter, monochrome #define IS_SENSOR_UI1360C 0x0069 // 2.2MP global shutter, color #define IS_SENSOR_UI1360NIR 0x0212 // 2.2MP global shutter, NIR #define IS_SENSOR_UI1370M 0x006A // 4.2MP global shutter, monochrome #define IS_SENSOR_UI1370C 0x006B // 4.2MP global shutter, color #define IS_SENSOR_UI1370NIR 0x0214 // 4.2MP global shutter, NIR #define IS_SENSOR_UI1250_M 0x006C // 2MP global shutter, monochrome #define IS_SENSOR_UI1250_C 0x006D // 2MP global shutter, color #define IS_SENSOR_UI1250_NIR 0x006E // 2MP global shutter, NIR #define IS_SENSOR_UI1250LE_M 0x0070 // 2MP global shutter, monochrome, single board #define IS_SENSOR_UI1250LE_C 0x0071 // 2MP global shutter, color, single board #define IS_SENSOR_UI1250LE_NIR 0x0072 // 2MP global shutter, NIR, single board #define IS_SENSOR_UI1250ML_M 0x0074 // 2MP global shutter, monochrome, single board #define IS_SENSOR_UI1250ML_C 0x0075 // 2MP global shutter, color, single board #define IS_SENSOR_UI1250ML_NIR 0x0202 // 2MP global shutter, NIR, single board #define IS_SENSOR_XS 0x020B // 5MP rolling shutter, color #define IS_SENSOR_XS_R2 0x0077 // 5MP rolling shutter, color #define IS_SENSOR_UI1493_M_AR 0x0204 #define IS_SENSOR_UI1493_C_AR 0x0205 #define IS_SENSOR_UI1060_M 0x021A // 2.3MP global shutter, monochrome #define IS_SENSOR_UI1060_C 0x021B // 2.3MP global shutter, color #define IS_SENSOR_UI1013XC 0x021D // 13MP, color #define IS_SENSOR_UI1140M 0x021E // 1.3MP global shutter, monochrome #define IS_SENSOR_UI1140C 0x021F // 1.3MP global shutter, color #define IS_SENSOR_UI1140NIR 0x0220 // 1.3MP global shutter, NIR #define IS_SENSOR_UI1590M 0x0222 // 18MP rolling shutter, monochrome #define IS_SENSOR_UI1590C 0x0223 // 18MP rolling shutter, color #define IS_SENSOR_UI1260_M 0x0226 // 2.3MP global shutter, monochrome #define IS_SENSOR_UI1260_C 0x0227 // 2.3MP global shutter, color #define IS_SENSOR_UI1130_M 0x022A // SVGA global shutter, monochrome #define IS_SENSOR_UI1130_C 0x022B // SVGA global shutter, color #define IS_SENSOR_UI1160_M 0x022C // 2.3MP global shutter, monochrome #define IS_SENSOR_UI1160_C 0x022D // 2.3MP global shutter, color #define IS_SENSOR_UI1180_M 0x022E // 5.3MP global shutter, monochrome #define IS_SENSOR_UI1180_C 0x022F // 5.3MP global shutter, color #define IS_SENSOR_UI1080_M 0x0230 // 5MP global shutter, monochrome #define IS_SENSOR_UI1080_C 0x0231 // 5MP global shutter, color #define IS_SENSOR_UI1280_M 0x0232 // 5MP global shutter, monochrome #define IS_SENSOR_UI1280_C 0x0233 // 5MP global shutter, color #define IS_SENSOR_UI1860_M 0x0234 // 2MP rolling shutter, monochrome #define IS_SENSOR_UI1860_C 0x0235 // 2MP rolling shutter, color #define IS_SENSOR_UI1880_M 0x0236 // 6MP rolling shutter, monochrome #define IS_SENSOR_UI1880_C 0x0237 // 6MP rolling shutter, color #define IS_SENSOR_UI1270_M 0x0238 // 3.2MP global shutter, monochrome #define IS_SENSOR_UI1270_C 0x0239 // 3.2MP global shutter, color #define IS_SENSOR_UI1070_M 0x023A // 3.2MP global shutter, monochrome #define IS_SENSOR_UI1070_C 0x023B // 3.2MP global shutter, color #define IS_SENSOR_UI1130LE_M 0x023C // SVGA global shutter, monochrome #define IS_SENSOR_UI1130LE_C 0x023D // SVGA global shutter, color #define IS_SENSOR_UI1290_M 0x023E // 8.9MP global shutter, monochrome #define IS_SENSOR_UI1290_C 0x023F // 8.9MP global shutter, color #define IS_SENSOR_UI1090_M 0x0240 // 8.9MP global shutter, monochrome #define IS_SENSOR_UI1090_C 0x0241 // 8.9MP global shutter, color #define IS_SENSOR_UI1000_M 0x0242 // 12.3MP global shutter, monochrome #define IS_SENSOR_UI1000_C 0x0243 // 12.3MP global shutter, color #define IS_SENSOR_UI1200_M 0x0244 // 12.3MP global shutter, monochrome #define IS_SENSOR_UI1200_C 0x0245 // 12.3MP global shutter, color #define IS_SENSOR_UI1040_M 0x0246 // 1.6MP global shutter, monochrome #define IS_SENSOR_UI1040_C 0x0247 // 1.6MP global shutter, color #define IS_SENSOR_UI1180_M_S2 0x0248 // 5.3MP global shutter, monochrome #define IS_SENSOR_UI1180_C_S2 0x0249 // 5.3MP global shutter, color #define IS_SENSOR_UI1160_M_S2 0x024A // 2.3MP global shutter, monochrome #define IS_SENSOR_UI1160_C_S2 0x024B // 2.3MP global shutter, color #define IS_SENSOR_UI1020_M 0x0250 // 0.4MP global shutter, monochrome #define IS_SENSOR_UI1020_C 0x0251 // 0.4MP global shutter, color // CCD Sensors #define IS_SENSOR_UI223X_M 0x0080 // Sony CCD sensor - XGA monochrome #define IS_SENSOR_UI223X_C 0x0081 // Sony CCD sensor - XGA color #define IS_SENSOR_UI241X_M 0x0082 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI241X_C 0x0083 // Sony CCD sensor - VGA color #define IS_SENSOR_UI234X_M 0x0084 // Sony CCD sensor - SXGA monochrome #define IS_SENSOR_UI234X_C 0x0085 // Sony CCD sensor - SXGA color #define IS_SENSOR_UI221X_M 0x0088 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI221X_C 0x0089 // Sony CCD sensor - VGA color #define IS_SENSOR_UI231X_M 0x0090 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI231X_C 0x0091 // Sony CCD sensor - VGA color #define IS_SENSOR_UI222X_M 0x0092 // Sony CCD sensor - CCIR / PAL monochrome #define IS_SENSOR_UI222X_C 0x0093 // Sony CCD sensor - CCIR / PAL color #define IS_SENSOR_UI224X_M 0x0096 // Sony CCD sensor - SXGA monochrome #define IS_SENSOR_UI224X_C 0x0097 // Sony CCD sensor - SXGA color #define IS_SENSOR_UI225X_M 0x0098 // Sony CCD sensor - UXGA monochrome #define IS_SENSOR_UI225X_C 0x0099 // Sony CCD sensor - UXGA color #define IS_SENSOR_UI214X_M 0x009A // Sony CCD sensor - SXGA monochrome #define IS_SENSOR_UI214X_C 0x009B // Sony CCD sensor - SXGA color #define IS_SENSOR_UI228X_M 0x009C // Sony CCD sensor - QXGA monochrome #define IS_SENSOR_UI228X_C 0x009D // Sony CCD sensor - QXGA color #define IS_SENSOR_UI223X_M_R3 0x0180 // Sony CCD sensor - XGA monochrome #define IS_SENSOR_UI223X_C_R3 0x0181 // Sony CCD sensor - XGA color #define IS_SENSOR_UI241X_M_R2 0x0182 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI251X_M 0x0182 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI241X_C_R2 0x0183 // Sony CCD sensor - VGA color #define IS_SENSOR_UI251X_C 0x0183 // Sony CCD sensor - VGA color #define IS_SENSOR_UI234X_M_R3 0x0184 // Sony CCD sensor - SXGA+ monochrome #define IS_SENSOR_UI234X_C_R3 0x0185 // Sony CCD sensor - SXGA+ color #define IS_SENSOR_UI221X_M_R3 0x0188 // Sony CCD sensor - VGA monochrome #define IS_SENSOR_UI221X_C_R3 0x0189 // Sony CCD sensor - VGA color #define IS_SENSOR_UI222X_M_R3 0x0192 // Sony CCD sensor - CCIR monochrome #define IS_SENSOR_UI222X_C_R3 0x0193 // Sony CCD sensor - PAL/D1 color #define IS_SENSOR_UI224X_M_R3 0x0196 // Sony CCD sensor - SXGA monochrome #define IS_SENSOR_UI224X_C_R3 0x0197 // Sony CCD sensor - SXGA color #define IS_SENSOR_UI225X_M_R3 0x0198 // Sony CCD sensor - UXGA monochrome #define IS_SENSOR_UI225X_C_R3 0x0199 // Sony CCD sensor - UXGA color #define IS_SENSOR_UI2130_M 0x019E // Sony CCD sensor - WXGA monochrome #define IS_SENSOR_UI2130_C 0x019F // Sony CCD sensor - WXGA color #define IS_SENSOR_PASSIVE_MULTICAST 0x0F00 // ---------------------------------------------------------------------------- // Error codes // ---------------------------------------------------------------------------- #define IS_NO_SUCCESS -1 // function call failed #define IS_SUCCESS 0 // function call succeeded #define IS_INVALID_CAMERA_HANDLE 1 // camera handle is not valid or zero #define IS_INVALID_HANDLE 1 // a handle other than the camera handle is invalid #define IS_IO_REQUEST_FAILED 2 // an io request to the driver failed #define IS_CANT_OPEN_DEVICE 3 // returned by is_InitCamera #define IS_CANT_CLOSE_DEVICE 4 #define IS_CANT_SETUP_MEMORY 5 #define IS_NO_HWND_FOR_ERROR_REPORT 6 #define IS_ERROR_MESSAGE_NOT_CREATED 7 #define IS_ERROR_STRING_NOT_FOUND 8 #define IS_HOOK_NOT_CREATED 9 #define IS_TIMER_NOT_CREATED 10 #define IS_CANT_OPEN_REGISTRY 11 #define IS_CANT_READ_REGISTRY 12 #define IS_CANT_VALIDATE_BOARD 13 #define IS_CANT_GIVE_BOARD_ACCESS 14 #define IS_NO_IMAGE_MEM_ALLOCATED 15 #define IS_CANT_CLEANUP_MEMORY 16 #define IS_CANT_COMMUNICATE_WITH_DRIVER 17 #define IS_FUNCTION_NOT_SUPPORTED_YET 18 #define IS_OPERATING_SYSTEM_NOT_SUPPORTED 19 #define IS_INVALID_VIDEO_IN 20 #define IS_INVALID_IMG_SIZE 21 #define IS_INVALID_ADDRESS 22 #define IS_INVALID_VIDEO_MODE 23 #define IS_INVALID_AGC_MODE 24 #define IS_INVALID_GAMMA_MODE 25 #define IS_INVALID_SYNC_LEVEL 26 #define IS_INVALID_CBARS_MODE 27 #define IS_INVALID_COLOR_MODE 28 #define IS_INVALID_SCALE_FACTOR 29 #define IS_INVALID_IMAGE_SIZE 30 #define IS_INVALID_IMAGE_POS 31 #define IS_INVALID_CAPTURE_MODE 32 #define IS_INVALID_RISC_PROGRAM 33 #define IS_INVALID_BRIGHTNESS 34 #define IS_INVALID_CONTRAST 35 #define IS_INVALID_SATURATION_U 36 #define IS_INVALID_SATURATION_V 37 #define IS_INVALID_HUE 38 #define IS_INVALID_HOR_FILTER_STEP 39 #define IS_INVALID_VERT_FILTER_STEP 40 #define IS_INVALID_EEPROM_READ_ADDRESS 41 #define IS_INVALID_EEPROM_WRITE_ADDRESS 42 #define IS_INVALID_EEPROM_READ_LENGTH 43 #define IS_INVALID_EEPROM_WRITE_LENGTH 44 #define IS_INVALID_BOARD_INFO_POINTER 45 #define IS_INVALID_DISPLAY_MODE 46 #define IS_INVALID_ERR_REP_MODE 47 #define IS_INVALID_BITS_PIXEL 48 #define IS_INVALID_MEMORY_POINTER 49 #define IS_FILE_WRITE_OPEN_ERROR 50 #define IS_FILE_READ_OPEN_ERROR 51 #define IS_FILE_READ_INVALID_BMP_ID 52 #define IS_FILE_READ_INVALID_BMP_SIZE 53 #define IS_FILE_READ_INVALID_BIT_COUNT 54 #define IS_WRONG_KERNEL_VERSION 55 #define IS_RISC_INVALID_XLENGTH 60 #define IS_RISC_INVALID_YLENGTH 61 #define IS_RISC_EXCEED_IMG_SIZE 62 // DirectDraw Mode errors #define IS_DD_MAIN_FAILED 70 #define IS_DD_PRIMSURFACE_FAILED 71 #define IS_DD_SCRN_SIZE_NOT_SUPPORTED 72 #define IS_DD_CLIPPER_FAILED 73 #define IS_DD_CLIPPER_HWND_FAILED 74 #define IS_DD_CLIPPER_CONNECT_FAILED 75 #define IS_DD_BACKSURFACE_FAILED 76 #define IS_DD_BACKSURFACE_IN_SYSMEM 77 #define IS_DD_MDL_MALLOC_ERR 78 #define IS_DD_MDL_SIZE_ERR 79 #define IS_DD_CLIP_NO_CHANGE 80 #define IS_DD_PRIMMEM_NULL 81 #define IS_DD_BACKMEM_NULL 82 #define IS_DD_BACKOVLMEM_NULL 83 #define IS_DD_OVERLAYSURFACE_FAILED 84 #define IS_DD_OVERLAYSURFACE_IN_SYSMEM 85 #define IS_DD_OVERLAY_NOT_ALLOWED 86 #define IS_DD_OVERLAY_COLKEY_ERR 87 #define IS_DD_OVERLAY_NOT_ENABLED 88 #define IS_DD_GET_DC_ERROR 89 #define IS_DD_DDRAW_DLL_NOT_LOADED 90 #define IS_DD_THREAD_NOT_CREATED 91 #define IS_DD_CANT_GET_CAPS 92 #define IS_DD_NO_OVERLAYSURFACE 93 #define IS_DD_NO_OVERLAYSTRETCH 94 #define IS_DD_CANT_CREATE_OVERLAYSURFACE 95 #define IS_DD_CANT_UPDATE_OVERLAYSURFACE 96 #define IS_DD_INVALID_STRETCH 97 #define IS_EV_INVALID_EVENT_NUMBER 100 #define IS_INVALID_MODE 101 #define IS_CANT_FIND_FALCHOOK 102 #define IS_CANT_FIND_HOOK 102 #define IS_CANT_GET_HOOK_PROC_ADDR 103 #define IS_CANT_CHAIN_HOOK_PROC 104 #define IS_CANT_SETUP_WND_PROC 105 #define IS_HWND_NULL 106 #define IS_INVALID_UPDATE_MODE 107 #define IS_NO_ACTIVE_IMG_MEM 108 #define IS_CANT_INIT_EVENT 109 #define IS_FUNC_NOT_AVAIL_IN_OS 110 #define IS_CAMERA_NOT_CONNECTED 111 #define IS_SEQUENCE_LIST_EMPTY 112 #define IS_CANT_ADD_TO_SEQUENCE 113 #define IS_LOW_OF_SEQUENCE_RISC_MEM 114 #define IS_IMGMEM2FREE_USED_IN_SEQ 115 #define IS_IMGMEM_NOT_IN_SEQUENCE_LIST 116 #define IS_SEQUENCE_BUF_ALREADY_LOCKED 117 #define IS_INVALID_DEVICE_ID 118 #define IS_INVALID_BOARD_ID 119 #define IS_ALL_DEVICES_BUSY 120 #define IS_HOOK_BUSY 121 #define IS_TIMED_OUT 122 #define IS_NULL_POINTER 123 #define IS_WRONG_HOOK_VERSION 124 #define IS_INVALID_PARAMETER 125 // a parameter specified was invalid #define IS_NOT_ALLOWED 126 #define IS_OUT_OF_MEMORY 127 #define IS_INVALID_WHILE_LIVE 128 #define IS_ACCESS_VIOLATION 129 // an internal exception occurred #define IS_UNKNOWN_ROP_EFFECT 130 #define IS_INVALID_RENDER_MODE 131 #define IS_INVALID_THREAD_CONTEXT 132 #define IS_NO_HARDWARE_INSTALLED 133 #define IS_INVALID_WATCHDOG_TIME 134 #define IS_INVALID_WATCHDOG_MODE 135 #define IS_INVALID_PASSTHROUGH_IN 136 #define IS_ERROR_SETTING_PASSTHROUGH_IN 137 #define IS_FAILURE_ON_SETTING_WATCHDOG 138 #define IS_NO_USB20 139 // the usb port doesnt support usb 2.0 #define IS_CAPTURE_RUNNING 140 // there is already a capture running #define IS_MEMORY_BOARD_ACTIVATED 141 // operation could not execute while mboard is enabled #define IS_MEMORY_BOARD_DEACTIVATED 142 // operation could not execute while mboard is disabled #define IS_NO_MEMORY_BOARD_CONNECTED 143 // no memory board connected #define IS_TOO_LESS_MEMORY 144 // image size is above memory capacity #define IS_IMAGE_NOT_PRESENT 145 // requested image is no longer present in the camera #define IS_MEMORY_MODE_RUNNING 146 #define IS_MEMORYBOARD_DISABLED 147 #define IS_TRIGGER_ACTIVATED 148 // operation could not execute while trigger is enabled #define IS_WRONG_KEY 150 #define IS_CRC_ERROR 151 #define IS_NOT_YET_RELEASED 152 // this feature is not available yet #define IS_NOT_CALIBRATED 153 // the camera is not calibrated #define IS_WAITING_FOR_KERNEL 154 // a request to the kernel exceeded #define IS_NOT_SUPPORTED 155 // operation mode is not supported #define IS_TRIGGER_NOT_ACTIVATED 156 // operation could not execute while trigger is disabled #define IS_OPERATION_ABORTED 157 #define IS_BAD_STRUCTURE_SIZE 158 #define IS_INVALID_BUFFER_SIZE 159 #define IS_INVALID_PIXEL_CLOCK 160 #define IS_INVALID_EXPOSURE_TIME 161 #define IS_AUTO_EXPOSURE_RUNNING 162 #define IS_CANNOT_CREATE_BB_SURF 163 // error creating backbuffer surface #define IS_CANNOT_CREATE_BB_MIX 164 // backbuffer mixer surfaces can not be created #define IS_BB_OVLMEM_NULL 165 // backbuffer overlay mem could not be locked #define IS_CANNOT_CREATE_BB_OVL 166 // backbuffer overlay mem could not be created #define IS_NOT_SUPP_IN_OVL_SURF_MODE 167 // function not supported in overlay surface mode #define IS_INVALID_SURFACE 168 // surface invalid #define IS_SURFACE_LOST 169 // surface has been lost #define IS_RELEASE_BB_OVL_DC 170 // error releasing backbuffer overlay DC #define IS_BB_TIMER_NOT_CREATED 171 // backbuffer timer could not be created #define IS_BB_OVL_NOT_EN 172 // backbuffer overlay has not been enabled #define IS_ONLY_IN_BB_MODE 173 // only possible in backbuffer mode #define IS_INVALID_COLOR_FORMAT 174 // invalid color format #define IS_INVALID_WB_BINNING_MODE 175 // invalid binning mode for AWB #define IS_INVALID_I2C_DEVICE_ADDRESS 176 // invalid I2C device address #define IS_COULD_NOT_CONVERT 177 // current image couldn't be converted #define IS_TRANSFER_ERROR 178 // transfer failed #define IS_PARAMETER_SET_NOT_PRESENT 179 // the parameter set is not present #define IS_INVALID_CAMERA_TYPE 180 // the camera type in the ini file doesn't match #define IS_INVALID_HOST_IP_HIBYTE 181 // HIBYTE of host address is invalid #define IS_CM_NOT_SUPP_IN_CURR_DISPLAYMODE 182 // color mode is not supported in the current display mode #define IS_NO_IR_FILTER 183 #define IS_STARTER_FW_UPLOAD_NEEDED 184 // device starter firmware is not compatible #define IS_DR_LIBRARY_NOT_FOUND 185 // the DirectRender library could not be found #define IS_DR_DEVICE_OUT_OF_MEMORY 186 // insufficient graphics adapter video memory #define IS_DR_CANNOT_CREATE_SURFACE 187 // the image or overlay surface could not be created #define IS_DR_CANNOT_CREATE_VERTEX_BUFFER 188 // the vertex buffer could not be created #define IS_DR_CANNOT_CREATE_TEXTURE 189 // the texture could not be created #define IS_DR_CANNOT_LOCK_OVERLAY_SURFACE 190 // the overlay surface could not be locked #define IS_DR_CANNOT_UNLOCK_OVERLAY_SURFACE 191 // the overlay surface could not be unlocked #define IS_DR_CANNOT_GET_OVERLAY_DC 192 // cannot get the overlay surface DC #define IS_DR_CANNOT_RELEASE_OVERLAY_DC 193 // cannot release the overlay surface DC #define IS_DR_DEVICE_CAPS_INSUFFICIENT 194 // insufficient graphics adapter capabilities #define IS_INCOMPATIBLE_SETTING 195 // Operation is not possible because of another incompatible setting #define IS_DR_NOT_ALLOWED_WHILE_DC_IS_ACTIVE 196 // user App still has DC handle. #define IS_DEVICE_ALREADY_PAIRED 197 // The device is already paired #define IS_SUBNETMASK_MISMATCH 198 // The subnetmasks of the device and the adapter differ #define IS_SUBNET_MISMATCH 199 // The subnets of the device and the adapter differ #define IS_INVALID_IP_CONFIGURATION 200 // The IP configuation of the device is invalid #define IS_DEVICE_NOT_COMPATIBLE 201 // The device is incompatible to the driver #define IS_NETWORK_FRAME_SIZE_INCOMPATIBLE 202 // The frame size settings of the device and the network adapter are incompatible #define IS_NETWORK_CONFIGURATION_INVALID 203 // The network adapter configuration is invalid #define IS_ERROR_CPU_IDLE_STATES_CONFIGURATION 204 // The setting of the CPU idle state configuration failed #define IS_DEVICE_BUSY 205 // The device is busy. The operation must be executed again later. #define IS_SENSOR_INITIALIZATION_FAILED 206 // The sensor initialization failed #define IS_IMAGE_BUFFER_NOT_DWORD_ALIGNED 207 // The image buffer is not DWORD-aligned #define IS_SEQ_BUFFER_IS_LOCKED 208 // Operation is not possible because the sequence buffer is locked #define IS_FILE_PATH_DOES_NOT_EXIST 209 // The file path does not exist #define IS_INVALID_WINDOW_HANDLE 210 // invalid window handle #define IS_INVALID_IMAGE_PARAMETER 211 // invalid image parameter (pos or size) // ---------------------------------------------------------------------------- // common definitions // ---------------------------------------------------------------------------- #define IS_OFF 0 #define IS_ON 1 #define IS_IGNORE_PARAMETER -1 // ---------------------------------------------------------------------------- // device enumeration // ---------------------------------------------------------------------------- #define IS_USE_DEVICE_ID 0x8000L #define IS_ALLOW_STARTER_FW_UPLOAD 0x10000L // ---------------------------------------------------------------------------- // AutoExit enable/disable // ---------------------------------------------------------------------------- #define IS_GET_AUTO_EXIT_ENABLED 0x8000 #define IS_DISABLE_AUTO_EXIT 0 #define IS_ENABLE_AUTO_EXIT 1 // ---------------------------------------------------------------------------- // live/freeze parameters // ---------------------------------------------------------------------------- #define IS_GET_LIVE 0x8000 #define IS_WAIT 0x0001 #define IS_DONT_WAIT 0x0000 #define IS_FORCE_VIDEO_STOP 0x4000 #define IS_FORCE_VIDEO_START 0x4000 #define IS_USE_NEXT_MEM 0x8000 // ---------------------------------------------------------------------------- // video finish constants // ---------------------------------------------------------------------------- #define IS_VIDEO_NOT_FINISH 0 #define IS_VIDEO_FINISH 1 // ---------------------------------------------------------------------------- // bitmap render modes // ---------------------------------------------------------------------------- #define IS_GET_RENDER_MODE 0x8000 #define IS_RENDER_DISABLED 0x0000 #define IS_RENDER_NORMAL 0x0001 #define IS_RENDER_FIT_TO_WINDOW 0x0002 #define IS_RENDER_DOWNSCALE_1_2 0x0004 #define IS_RENDER_MIRROR_UPDOWN 0x0010 #define IS_RENDER_PLANAR_COLOR_RED 0x0080 #define IS_RENDER_PLANAR_COLOR_GREEN 0x0100 #define IS_RENDER_PLANAR_COLOR_BLUE 0x0200 #define IS_RENDER_PLANAR_MONO_RED 0x0400 #define IS_RENDER_PLANAR_MONO_GREEN 0x0800 #define IS_RENDER_PLANAR_MONO_BLUE 0x1000 #define IS_RENDER_ROTATE_90 0x0020 #define IS_RENDER_ROTATE_180 0x0040 #define IS_RENDER_ROTATE_270 0x2000 #define IS_USE_AS_DC_STRUCTURE 0x4000 #define IS_USE_AS_DC_HANDLE 0x8000 // ---------------------------------------------------------------------------- // Trigger modes // ---------------------------------------------------------------------------- #define IS_GET_EXTERNALTRIGGER 0x8000 #define IS_GET_TRIGGER_STATUS 0x8001 #define IS_GET_TRIGGER_MASK 0x8002 #define IS_GET_TRIGGER_INPUTS 0x8003 #define IS_GET_SUPPORTED_TRIGGER_MODE 0x8004 #define IS_GET_TRIGGER_COUNTER 0x8000 #define IS_SET_TRIGGER_MASK 0x0100 #define IS_SET_TRIGGER_CONTINUOUS 0x1000 #define IS_SET_TRIGGER_OFF 0x0000 #define IS_SET_TRIGGER_HI_LO (IS_SET_TRIGGER_CONTINUOUS | 0x0001) #define IS_SET_TRIGGER_LO_HI (IS_SET_TRIGGER_CONTINUOUS | 0x0002) #define IS_SET_TRIGGER_SOFTWARE (IS_SET_TRIGGER_CONTINUOUS | 0x0008) #define IS_SET_TRIGGER_HI_LO_SYNC 0x0010 #define IS_SET_TRIGGER_LO_HI_SYNC 0x0020 #define IS_SET_TRIGGER_PRE_HI_LO (IS_SET_TRIGGER_CONTINUOUS | 0x0040) #define IS_SET_TRIGGER_PRE_LO_HI (IS_SET_TRIGGER_CONTINUOUS | 0x0080) #define IS_GET_TRIGGER_DELAY 0x8000 #define IS_GET_MIN_TRIGGER_DELAY 0x8001 #define IS_GET_MAX_TRIGGER_DELAY 0x8002 #define IS_GET_TRIGGER_DELAY_GRANULARITY 0x8003 // ---------------------------------------------------------------------------- // Timing // ---------------------------------------------------------------------------- // Pixelclock #define IS_GET_PIXEL_CLOCK 0x8000 #define IS_GET_DEFAULT_PIXEL_CLK 0x8001 #define IS_GET_PIXEL_CLOCK_INC 0x8005 // Frame rate #define IS_GET_FRAMERATE 0x8000 #define IS_GET_DEFAULT_FRAMERATE 0x8001 // ---------------------------------------------------------------------------- // Gain definitions // ---------------------------------------------------------------------------- #define IS_GET_MASTER_GAIN 0x8000 #define IS_GET_RED_GAIN 0x8001 #define IS_GET_GREEN_GAIN 0x8002 #define IS_GET_BLUE_GAIN 0x8003 #define IS_GET_DEFAULT_MASTER 0x8004 #define IS_GET_DEFAULT_RED 0x8005 #define IS_GET_DEFAULT_GREEN 0x8006 #define IS_GET_DEFAULT_BLUE 0x8007 #define IS_GET_GAINBOOST 0x8008 #define IS_SET_GAINBOOST_ON 0x0001 #define IS_SET_GAINBOOST_OFF 0x0000 #define IS_GET_SUPPORTED_GAINBOOST 0x0002 #define IS_MIN_GAIN 0 #define IS_MAX_GAIN 100 // ---------------------------------------------------------------------------- // Gain factor definitions // ---------------------------------------------------------------------------- #define IS_GET_MASTER_GAIN_FACTOR 0x8000 #define IS_GET_RED_GAIN_FACTOR 0x8001 #define IS_GET_GREEN_GAIN_FACTOR 0x8002 #define IS_GET_BLUE_GAIN_FACTOR 0x8003 #define IS_SET_MASTER_GAIN_FACTOR 0x8004 #define IS_SET_RED_GAIN_FACTOR 0x8005 #define IS_SET_GREEN_GAIN_FACTOR 0x8006 #define IS_SET_BLUE_GAIN_FACTOR 0x8007 #define IS_GET_DEFAULT_MASTER_GAIN_FACTOR 0x8008 #define IS_GET_DEFAULT_RED_GAIN_FACTOR 0x8009 #define IS_GET_DEFAULT_GREEN_GAIN_FACTOR 0x800a #define IS_GET_DEFAULT_BLUE_GAIN_FACTOR 0x800b #define IS_INQUIRE_MASTER_GAIN_FACTOR 0x800c #define IS_INQUIRE_RED_GAIN_FACTOR 0x800d #define IS_INQUIRE_GREEN_GAIN_FACTOR 0x800e #define IS_INQUIRE_BLUE_GAIN_FACTOR 0x800f // ---------------------------------------------------------------------------- // Global Shutter definitions // ---------------------------------------------------------------------------- #define IS_SET_GLOBAL_SHUTTER_ON 0x0001 #define IS_SET_GLOBAL_SHUTTER_OFF 0x0000 #define IS_GET_GLOBAL_SHUTTER 0x0010 #define IS_GET_SUPPORTED_GLOBAL_SHUTTER 0x0020 // ---------------------------------------------------------------------------- // Black level definitions // ---------------------------------------------------------------------------- #define IS_GET_BL_COMPENSATION 0x8000 #define IS_GET_BL_OFFSET 0x8001 #define IS_GET_BL_DEFAULT_MODE 0x8002 #define IS_GET_BL_DEFAULT_OFFSET 0x8003 #define IS_GET_BL_SUPPORTED_MODE 0x8004 #define IS_BL_COMPENSATION_DISABLE 0 #define IS_BL_COMPENSATION_ENABLE 1 #define IS_BL_COMPENSATION_OFFSET 32 #define IS_MIN_BL_OFFSET 0 #define IS_MAX_BL_OFFSET 255 // ---------------------------------------------------------------------------- // Hardware gamma definitions // ---------------------------------------------------------------------------- #define IS_GET_HW_GAMMA 0x8000 #define IS_GET_HW_SUPPORTED_GAMMA 0x8001 #define IS_SET_HW_GAMMA_OFF 0x0000 #define IS_SET_HW_GAMMA_ON 0x0001 // ---------------------------------------------------------------------------- // Image parameters // ---------------------------------------------------------------------------- // Saturation #define IS_GET_SATURATION_U 0x8000 #define IS_MIN_SATURATION_U 0 #define IS_MAX_SATURATION_U 200 #define IS_DEFAULT_SATURATION_U 100 #define IS_GET_SATURATION_V 0x8001 #define IS_MIN_SATURATION_V 0 #define IS_MAX_SATURATION_V 200 #define IS_DEFAULT_SATURATION_V 100 // ---------------------------------------------------------------------------- // Image position and size // ---------------------------------------------------------------------------- /* Image */ #define IS_AOI_IMAGE_SET_AOI 0x0001 #define IS_AOI_IMAGE_GET_AOI 0x0002 #define IS_AOI_IMAGE_SET_POS 0x0003 #define IS_AOI_IMAGE_GET_POS 0x0004 #define IS_AOI_IMAGE_SET_SIZE 0x0005 #define IS_AOI_IMAGE_GET_SIZE 0x0006 #define IS_AOI_IMAGE_GET_POS_MIN 0x0007 #define IS_AOI_IMAGE_GET_SIZE_MIN 0x0008 #define IS_AOI_IMAGE_GET_POS_MAX 0x0009 #define IS_AOI_IMAGE_GET_SIZE_MAX 0x0010 #define IS_AOI_IMAGE_GET_POS_INC 0x0011 #define IS_AOI_IMAGE_GET_SIZE_INC 0x0012 #define IS_AOI_IMAGE_GET_POS_X_ABS 0x0013 #define IS_AOI_IMAGE_GET_POS_Y_ABS 0x0014 #define IS_AOI_IMAGE_GET_ORIGINAL_AOI 0x0015 /* Absolute position */ #define IS_AOI_IMAGE_POS_ABSOLUTE 0x10000000 /* Fast move */ #define IS_AOI_IMAGE_SET_POS_FAST 0x0020 #define IS_AOI_IMAGE_GET_POS_FAST_SUPPORTED 0x0021 /* Auto features */ #define IS_AOI_AUTO_BRIGHTNESS_SET_AOI 0x0030 #define IS_AOI_AUTO_BRIGHTNESS_GET_AOI 0x0031 #define IS_AOI_AUTO_WHITEBALANCE_SET_AOI 0x0032 #define IS_AOI_AUTO_WHITEBALANCE_GET_AOI 0x0033 /* Multi AOI */ #define IS_AOI_MULTI_GET_SUPPORTED_MODES 0x0100 #define IS_AOI_MULTI_SET_AOI 0x0200 #define IS_AOI_MULTI_GET_AOI 0x0400 #define IS_AOI_MULTI_DISABLE_AOI 0x0800 #define IS_AOI_MULTI_MODE_X_Y_AXES 0x0001 #define IS_AOI_MULTI_MODE_Y_AXES 0x0002 #define IS_AOI_MULTI_MODE_GET_MAX_NUMBER 0x0003 #define IS_AOI_MULTI_MODE_GET_DEFAULT 0x0004 #define IS_AOI_MULTI_MODE_ONLY_VERIFY_AOIS 0x0005 #define IS_AOI_MULTI_MODE_GET_MINIMUM_SIZE 0x0006 #define IS_AOI_MULTI_MODE_GET_ENABLED 0x0007 #define IS_AOI_MULTI_STATUS_SETBYUSER 0x00000001 #define IS_AOI_MULTI_STATUS_COMPLEMENT 0x00000002 #define IS_AOI_MULTI_STATUS_VALID 0x00000004 #define IS_AOI_MULTI_STATUS_CONFLICT 0x00000008 #define IS_AOI_MULTI_STATUS_ERROR 0x00000010 #define IS_AOI_MULTI_STATUS_UNUSED 0x00000020 /* AOI sequence */ #define IS_AOI_SEQUENCE_GET_SUPPORTED 0x0050 #define IS_AOI_SEQUENCE_SET_PARAMS 0x0051 #define IS_AOI_SEQUENCE_GET_PARAMS 0x0052 #define IS_AOI_SEQUENCE_SET_ENABLE 0x0053 #define IS_AOI_SEQUENCE_GET_ENABLE 0x0054 #define IS_AOI_SEQUENCE_INDEX_AOI_1 0 #define IS_AOI_SEQUENCE_INDEX_AOI_2 1 #define IS_AOI_SEQUENCE_INDEX_AOI_3 2 #define IS_AOI_SEQUENCE_INDEX_AOI_4 4 // ---------------------------------------------------------------------------- // ROP effect constants // ---------------------------------------------------------------------------- #define IS_GET_ROP_EFFECT 0x8000 #define IS_GET_SUPPORTED_ROP_EFFECT 0x8001 #define IS_SET_ROP_NONE 0 #define IS_SET_ROP_MIRROR_UPDOWN 8 #define IS_SET_ROP_MIRROR_UPDOWN_ODD 16 #define IS_SET_ROP_MIRROR_UPDOWN_EVEN 32 #define IS_SET_ROP_MIRROR_LEFTRIGHT 64 // ---------------------------------------------------------------------------- // Subsampling // ---------------------------------------------------------------------------- #define IS_GET_SUBSAMPLING 0x8000 #define IS_GET_SUPPORTED_SUBSAMPLING 0x8001 #define IS_GET_SUBSAMPLING_TYPE 0x8002 #define IS_GET_SUBSAMPLING_FACTOR_HORIZONTAL 0x8004 #define IS_GET_SUBSAMPLING_FACTOR_VERTICAL 0x8008 #define IS_SUBSAMPLING_DISABLE 0x00 #define IS_SUBSAMPLING_2X_VERTICAL 0x0001 #define IS_SUBSAMPLING_2X_HORIZONTAL 0x0002 #define IS_SUBSAMPLING_4X_VERTICAL 0x0004 #define IS_SUBSAMPLING_4X_HORIZONTAL 0x0008 #define IS_SUBSAMPLING_3X_VERTICAL 0x0010 #define IS_SUBSAMPLING_3X_HORIZONTAL 0x0020 #define IS_SUBSAMPLING_5X_VERTICAL 0x0040 #define IS_SUBSAMPLING_5X_HORIZONTAL 0x0080 #define IS_SUBSAMPLING_6X_VERTICAL 0x0100 #define IS_SUBSAMPLING_6X_HORIZONTAL 0x0200 #define IS_SUBSAMPLING_8X_VERTICAL 0x0400 #define IS_SUBSAMPLING_8X_HORIZONTAL 0x0800 #define IS_SUBSAMPLING_16X_VERTICAL 0x1000 #define IS_SUBSAMPLING_16X_HORIZONTAL 0x2000 #define IS_SUBSAMPLING_COLOR 0x01 #define IS_SUBSAMPLING_MONO 0x02 #define 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) #define 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) // ---------------------------------------------------------------------------- // Binning // ---------------------------------------------------------------------------- #define IS_GET_BINNING 0x8000 #define IS_GET_SUPPORTED_BINNING 0x8001 #define IS_GET_BINNING_TYPE 0x8002 #define IS_GET_BINNING_FACTOR_HORIZONTAL 0x8004 #define IS_GET_BINNING_FACTOR_VERTICAL 0x8008 #define IS_BINNING_DISABLE 0x00 #define IS_BINNING_2X_VERTICAL 0x0001 #define IS_BINNING_2X_HORIZONTAL 0x0002 #define IS_BINNING_4X_VERTICAL 0x0004 #define IS_BINNING_4X_HORIZONTAL 0x0008 #define IS_BINNING_3X_VERTICAL 0x0010 #define IS_BINNING_3X_HORIZONTAL 0x0020 #define IS_BINNING_5X_VERTICAL 0x0040 #define IS_BINNING_5X_HORIZONTAL 0x0080 #define IS_BINNING_6X_VERTICAL 0x0100 #define IS_BINNING_6X_HORIZONTAL 0x0200 #define IS_BINNING_8X_VERTICAL 0x0400 #define IS_BINNING_8X_HORIZONTAL 0x0800 #define IS_BINNING_16X_VERTICAL 0x1000 #define IS_BINNING_16X_HORIZONTAL 0x2000 #define IS_BINNING_COLOR 0x01 #define IS_BINNING_MONO 0x02 #define 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) #define 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) // ---------------------------------------------------------------------------- // Auto Control Parameter // ---------------------------------------------------------------------------- #define IS_SET_ENABLE_AUTO_GAIN 0x8800 #define IS_GET_ENABLE_AUTO_GAIN 0x8801 #define IS_SET_ENABLE_AUTO_SHUTTER 0x8802 #define IS_GET_ENABLE_AUTO_SHUTTER 0x8803 #define IS_SET_ENABLE_AUTO_WHITEBALANCE 0x8804 #define IS_GET_ENABLE_AUTO_WHITEBALANCE 0x8805 #define IS_SET_ENABLE_AUTO_FRAMERATE 0x8806 #define IS_GET_ENABLE_AUTO_FRAMERATE 0x8807 #define IS_SET_ENABLE_AUTO_SENSOR_GAIN 0x8808 #define IS_GET_ENABLE_AUTO_SENSOR_GAIN 0x8809 #define IS_SET_ENABLE_AUTO_SENSOR_SHUTTER 0x8810 #define IS_GET_ENABLE_AUTO_SENSOR_SHUTTER 0x8811 #define IS_SET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER 0x8812 #define IS_GET_ENABLE_AUTO_SENSOR_GAIN_SHUTTER 0x8813 #define IS_SET_ENABLE_AUTO_SENSOR_FRAMERATE 0x8814 #define IS_GET_ENABLE_AUTO_SENSOR_FRAMERATE 0x8815 #define IS_SET_ENABLE_AUTO_SENSOR_WHITEBALANCE 0x8816 #define IS_GET_ENABLE_AUTO_SENSOR_WHITEBALANCE 0x8817 #define IS_SET_AUTO_REFERENCE 0x8000 #define IS_GET_AUTO_REFERENCE 0x8001 #define IS_SET_AUTO_GAIN_MAX 0x8002 #define IS_GET_AUTO_GAIN_MAX 0x8003 #define IS_SET_AUTO_SHUTTER_MAX 0x8004 #define IS_GET_AUTO_SHUTTER_MAX 0x8005 #define IS_SET_AUTO_SPEED 0x8006 #define IS_GET_AUTO_SPEED 0x8007 #define IS_SET_AUTO_WB_OFFSET 0x8008 #define IS_GET_AUTO_WB_OFFSET 0x8009 #define IS_SET_AUTO_WB_GAIN_RANGE 0x800A #define IS_GET_AUTO_WB_GAIN_RANGE 0x800B #define IS_SET_AUTO_WB_SPEED 0x800C #define IS_GET_AUTO_WB_SPEED 0x800D #define IS_SET_AUTO_WB_ONCE 0x800E #define IS_GET_AUTO_WB_ONCE 0x800F #define IS_SET_AUTO_BRIGHTNESS_ONCE 0x8010 #define IS_GET_AUTO_BRIGHTNESS_ONCE 0x8011 #define IS_SET_AUTO_HYSTERESIS 0x8012 #define IS_GET_AUTO_HYSTERESIS 0x8013 #define IS_GET_AUTO_HYSTERESIS_RANGE 0x8014 #define IS_SET_AUTO_WB_HYSTERESIS 0x8015 #define IS_GET_AUTO_WB_HYSTERESIS 0x8016 #define IS_GET_AUTO_WB_HYSTERESIS_RANGE 0x8017 #define IS_SET_AUTO_SKIPFRAMES 0x8018 #define IS_GET_AUTO_SKIPFRAMES 0x8019 #define IS_GET_AUTO_SKIPFRAMES_RANGE 0x801A #define IS_SET_AUTO_WB_SKIPFRAMES 0x801B #define IS_GET_AUTO_WB_SKIPFRAMES 0x801C #define IS_GET_AUTO_WB_SKIPFRAMES_RANGE 0x801D #define IS_SET_SENS_AUTO_SHUTTER_PHOTOM 0x801E #define IS_SET_SENS_AUTO_GAIN_PHOTOM 0x801F #define IS_GET_SENS_AUTO_SHUTTER_PHOTOM 0x8020 #define IS_GET_SENS_AUTO_GAIN_PHOTOM 0x8021 #define IS_GET_SENS_AUTO_SHUTTER_PHOTOM_DEF 0x8022 #define IS_GET_SENS_AUTO_GAIN_PHOTOM_DEF 0x8023 #define IS_SET_SENS_AUTO_CONTRAST_CORRECTION 0x8024 #define IS_GET_SENS_AUTO_CONTRAST_CORRECTION 0x8025 #define IS_GET_SENS_AUTO_CONTRAST_CORRECTION_RANGE 0x8026 #define IS_GET_SENS_AUTO_CONTRAST_CORRECTION_INC 0x8027 #define IS_GET_SENS_AUTO_CONTRAST_CORRECTION_DEF 0x8028 #define IS_SET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE 0x8029 #define IS_GET_SENS_AUTO_CONTRAST_FDT_AOI_ENABLE 0x8030 #define IS_SET_SENS_AUTO_BACKLIGHT_COMP 0x8031 #define IS_GET_SENS_AUTO_BACKLIGHT_COMP 0x8032 #define IS_GET_SENS_AUTO_BACKLIGHT_COMP_RANGE 0x8033 #define IS_GET_SENS_AUTO_BACKLIGHT_COMP_INC 0x8034 #define IS_GET_SENS_AUTO_BACKLIGHT_COMP_DEF 0x8035 #define IS_SET_ANTI_FLICKER_MODE 0x8036 #define IS_GET_ANTI_FLICKER_MODE 0x8037 #define IS_GET_ANTI_FLICKER_MODE_DEF 0x8038 #define IS_GET_AUTO_REFERENCE_DEF 0x8039 #define IS_GET_AUTO_WB_OFFSET_DEF 0x803A #define IS_GET_AUTO_WB_OFFSET_MIN 0x803B #define IS_GET_AUTO_WB_OFFSET_MAX 0x803C // ---------------------------------------------------------------------------- // Auto Control definitions // ---------------------------------------------------------------------------- #define IS_MIN_AUTO_BRIGHT_REFERENCE 0 #define IS_MAX_AUTO_BRIGHT_REFERENCE 255 #define IS_DEFAULT_AUTO_BRIGHT_REFERENCE 128 #define IS_MIN_AUTO_SPEED 0 #define IS_MAX_AUTO_SPEED 100 #define IS_DEFAULT_AUTO_SPEED 50 #define IS_DEFAULT_AUTO_WB_OFFSET 0 #define IS_MIN_AUTO_WB_OFFSET -50 #define IS_MAX_AUTO_WB_OFFSET 50 #define IS_DEFAULT_AUTO_WB_SPEED 50 #define IS_MIN_AUTO_WB_SPEED 0 #define IS_MAX_AUTO_WB_SPEED 100 #define IS_MIN_AUTO_WB_REFERENCE 0 #define IS_MAX_AUTO_WB_REFERENCE 255 // ---------------------------------------------------------------------------- // AOI types to set/get // ---------------------------------------------------------------------------- #define IS_SET_AUTO_BRIGHT_AOI 0x8000 #define IS_GET_AUTO_BRIGHT_AOI 0x8001 #define IS_SET_IMAGE_AOI 0x8002 #define IS_GET_IMAGE_AOI 0x8003 #define IS_SET_AUTO_WB_AOI 0x8004 #define IS_GET_AUTO_WB_AOI 0x8005 // ---------------------------------------------------------------------------- // pixel formats // ---------------------------------------------------------------------------- /*! \brief Read current color format in function is_SetColorMode, \ref is_SetColorMode */ #define IS_GET_COLOR_MODE 0x8000 /*! \brief Planar vs packed format */ #define IS_CM_FORMAT_PLANAR 0x2000 #define IS_CM_FORMAT_MASK 0x2000 /*! \brief BGR vs. RGB order */ #define IS_CM_ORDER_BGR 0x0000 #define IS_CM_ORDER_RGB 0x0080 #define IS_CM_ORDER_MASK 0x0080 /*! \brief This flag indicates whether a packed source pixelformat should be used (also for the debayered pixel formats) */ #define IS_CM_PREFER_PACKED_SOURCE_FORMAT 0x4000 /*! * \brief Enumeration of pixel formats supported by the function is_SetColorMode, \ref is_SetColorMode. */ /*! \brief Raw sensor data, occupies 8 bits */ #define IS_CM_SENSOR_RAW8 11 /*! \brief Raw sensor data, occupies 16 bits */ #define IS_CM_SENSOR_RAW10 33 /*! \brief Raw sensor data, occupies 16 bits */ #define IS_CM_SENSOR_RAW12 27 /*! \brief Raw sensor data, occupies 16 bits */ #define IS_CM_SENSOR_RAW16 29 /*! \brief Mono, occupies 8 bits */ #define IS_CM_MONO8 6 /*! \brief Mono, occupies 16 bits */ #define IS_CM_MONO10 34 /*! \brief Mono, occupies 16 bits */ #define IS_CM_MONO12 26 /*! \brief Mono, occupies 16 bits */ #define IS_CM_MONO16 28 /*! \brief BGR (5 5 5 1), 1 bit not used, occupies 16 bits */ #define IS_CM_BGR5_PACKED (3 | IS_CM_ORDER_BGR) /*! \brief BGR (5 6 5), occupies 16 bits */ #define IS_CM_BGR565_PACKED (2 | IS_CM_ORDER_BGR) /*! \brief BGR and RGB (8 8 8), occupies 24 bits */ #define IS_CM_RGB8_PACKED (1 | IS_CM_ORDER_RGB) #define IS_CM_BGR8_PACKED (1 | IS_CM_ORDER_BGR) /*! \brief BGRA and RGBA (8 8 8 8), alpha not used, occupies 32 bits */ #define IS_CM_RGBA8_PACKED (0 | IS_CM_ORDER_RGB) #define IS_CM_BGRA8_PACKED (0 | IS_CM_ORDER_BGR) /*! \brief BGRY and RGBY (8 8 8 8), occupies 32 bits */ #define IS_CM_RGBY8_PACKED (24 | IS_CM_ORDER_RGB) #define IS_CM_BGRY8_PACKED (24 | IS_CM_ORDER_BGR) /*! \brief BGR and RGB (10 10 10 2), 2 bits not used, occupies 32 bits, debayering is done from 12 bit raw */ #define IS_CM_RGB10_PACKED (25 | IS_CM_ORDER_RGB) #define IS_CM_BGR10_PACKED (25 | IS_CM_ORDER_BGR) /*! \brief BGR and RGB (10(16) 10(16) 10(16)), 6 MSB bits not used respectively, occupies 48 bits */ #define IS_CM_RGB10_UNPACKED (35 | IS_CM_ORDER_RGB) #define IS_CM_BGR10_UNPACKED (35 | IS_CM_ORDER_BGR) /*! \brief BGR and RGB (12(16) 12(16) 12(16)), 4 MSB bits not used respectively, occupies 48 bits */ #define IS_CM_RGB12_UNPACKED (30 | IS_CM_ORDER_RGB) #define IS_CM_BGR12_UNPACKED (30 | IS_CM_ORDER_BGR) /*! \brief BGRA and RGBA (12(16) 12(16) 12(16) 16), 4 MSB bits not used respectively, alpha not used, occupies 64 bits */ #define IS_CM_RGBA12_UNPACKED (31 | IS_CM_ORDER_RGB) #define IS_CM_BGRA12_UNPACKED (31 | IS_CM_ORDER_BGR) #define IS_CM_JPEG 32 /*! \brief YUV422 (8 8), occupies 16 bits */ #define IS_CM_UYVY_PACKED 12 #define IS_CM_UYVY_MONO_PACKED 13 #define IS_CM_UYVY_BAYER_PACKED 14 /*! \brief YCbCr422 (8 8), occupies 16 bits */ #define IS_CM_CBYCRY_PACKED 23 /*! \brief RGB planar (8 8 8), occupies 24 bits */ #define IS_CM_RGB8_PLANAR (1 | IS_CM_ORDER_RGB | IS_CM_FORMAT_PLANAR) #define IS_CM_RGB12_PLANAR //no compliant version #define IS_CM_RGB16_PLANAR //no compliant version #define IS_CM_ALL_POSSIBLE 0xFFFF #define IS_CM_MODE_MASK 0x007F // ---------------------------------------------------------------------------- // Hotpixel correction // ---------------------------------------------------------------------------- #define IS_HOTPIXEL_DISABLE_CORRECTION 0x0000 #define IS_HOTPIXEL_ENABLE_SENSOR_CORRECTION 0x0001 #define IS_HOTPIXEL_ENABLE_CAMERA_CORRECTION 0x0002 #define IS_HOTPIXEL_ENABLE_SOFTWARE_USER_CORRECTION 0x0004 #define IS_HOTPIXEL_DISABLE_SENSOR_CORRECTION 0x0008 #define IS_HOTPIXEL_GET_CORRECTION_MODE 0x8000 #define IS_HOTPIXEL_GET_SUPPORTED_CORRECTION_MODES 0x8001 #define IS_HOTPIXEL_GET_SOFTWARE_USER_LIST_EXISTS 0x8100 #define IS_HOTPIXEL_GET_SOFTWARE_USER_LIST_NUMBER 0x8101 #define IS_HOTPIXEL_GET_SOFTWARE_USER_LIST 0x8102 #define IS_HOTPIXEL_SET_SOFTWARE_USER_LIST 0x8103 #define IS_HOTPIXEL_SAVE_SOFTWARE_USER_LIST 0x8104 #define IS_HOTPIXEL_LOAD_SOFTWARE_USER_LIST 0x8105 #define IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST_EXISTS 0x8106 #define IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST_NUMBER 0x8107 #define IS_HOTPIXEL_GET_CAMERA_FACTORY_LIST 0x8108 #define IS_HOTPIXEL_GET_CAMERA_USER_LIST_EXISTS 0x8109 #define IS_HOTPIXEL_GET_CAMERA_USER_LIST_NUMBER 0x810A #define IS_HOTPIXEL_GET_CAMERA_USER_LIST 0x810B #define IS_HOTPIXEL_SET_CAMERA_USER_LIST 0x810C #define IS_HOTPIXEL_GET_CAMERA_USER_LIST_MAX_NUMBER 0x810D #define IS_HOTPIXEL_DELETE_CAMERA_USER_LIST 0x810E #define IS_HOTPIXEL_GET_MERGED_CAMERA_LIST_NUMBER 0x810F #define IS_HOTPIXEL_GET_MERGED_CAMERA_LIST 0x8110 #define IS_HOTPIXEL_SAVE_SOFTWARE_USER_LIST_UNICODE 0x8111 #define IS_HOTPIXEL_LOAD_SOFTWARE_USER_LIST_UNICODE 0x8112 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_ENABLE 0x8113 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_ENABLE_DEFAULT 0x8114 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_SET_ENABLE 0x8115 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_MODE 0x8116 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_MODE_DEFAULT 0x8117 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_SET_MODE 0x8118 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_SENSITIVITY 0x8119 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_SENSITIVITY_DEFAULT 0x8120 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_SENSITIVITY_MIN 0x8121 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_SENSITIVITY_MAX 0x8122 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_SET_SENSITIVITY 0x8123 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_RESET_DETECTION 0x8124 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_NUMBER_DETECTED 0x8125 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_RESET_DETECTION_CLUSTER 0x8126 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_GET_NUMBER_DETECTED_CLUSTER 0x8127 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_DISABLE 0 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_ENABLE 1 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_DETECT_ONCE 0x0000 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_DETECT_DYNAMIC 0x0001 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_DETECT_ONCE_CLUSTER 0x0002 #define IS_HOTPIXEL_ADAPTIVE_CORRECTION_DETECT_DYNAMIC_CLUSTER 0x0004 // ---------------------------------------------------------------------------- // color correction definitions // ---------------------------------------------------------------------------- #define IS_GET_CCOR_MODE 0x8000 #define IS_GET_SUPPORTED_CCOR_MODE 0x8001 #define IS_GET_DEFAULT_CCOR_MODE 0x8002 #define IS_GET_CCOR_FACTOR 0x8003 #define IS_GET_CCOR_FACTOR_MIN 0x8004 #define IS_GET_CCOR_FACTOR_MAX 0x8005 #define IS_GET_CCOR_FACTOR_DEFAULT 0x8006 #define IS_CCOR_DISABLE 0x0000 #define IS_CCOR_ENABLE 0x0001 #define IS_CCOR_ENABLE_NORMAL IS_CCOR_ENABLE #define IS_CCOR_ENABLE_BG40_ENHANCED 0x0002 #define IS_CCOR_ENABLE_HQ_ENHANCED 0x0004 #define IS_CCOR_SET_IR_AUTOMATIC 0x0080 #define IS_CCOR_FACTOR 0x0100 #define IS_CCOR_ENABLE_D50 0x0040 #define IS_CCOR_ENABLE_MASK (IS_CCOR_ENABLE_NORMAL | IS_CCOR_ENABLE_BG40_ENHANCED | IS_CCOR_ENABLE_HQ_ENHANCED | IS_CCOR_ENABLE_D50) // ---------------------------------------------------------------------------- // bayer algorithm modes // ---------------------------------------------------------------------------- #define IS_GET_BAYER_CV_MODE 0x8000 #define IS_SET_BAYER_CV_NORMAL 0x0000 #define IS_SET_BAYER_CV_BETTER 0x0001 #define IS_SET_BAYER_CV_BEST 0x0002 // ---------------------------------------------------------------------------- // color converter modes // ---------------------------------------------------------------------------- #define IS_CONV_MODE_NONE 0x0000 #define IS_CONV_MODE_SOFTWARE 0x0001 #define IS_CONV_MODE_SOFTWARE_3X3 0x0002 #define IS_CONV_MODE_SOFTWARE_5X5 0x0004 #define IS_CONV_MODE_HARDWARE_3X3 0x0008 #define IS_CONV_MODE_OPENCL_3X3 0x0020 #define IS_CONV_MODE_OPENCL_5X5 0x0040 #define IS_CONV_MODE_JPEG 0x0100 // ---------------------------------------------------------------------------- // Edge enhancement // ---------------------------------------------------------------------------- #define IS_GET_EDGE_ENHANCEMENT 0x8000 #define IS_EDGE_EN_DISABLE 0 #define IS_EDGE_EN_STRONG 1 #define IS_EDGE_EN_WEAK 2 // ---------------------------------------------------------------------------- // white balance modes // ---------------------------------------------------------------------------- #define IS_GET_WB_MODE 0x8000 #define IS_SET_WB_DISABLE 0x0000 #define IS_SET_WB_USER 0x0001 #define IS_SET_WB_AUTO_ENABLE 0x0002 #define IS_SET_WB_AUTO_ENABLE_ONCE 0x0004 #define IS_SET_WB_DAYLIGHT_65 0x0101 #define IS_SET_WB_COOL_WHITE 0x0102 #define IS_SET_WB_U30 0x0103 #define IS_SET_WB_ILLUMINANT_A 0x0104 #define IS_SET_WB_HORIZON 0x0105 // ---------------------------------------------------------------------------- // EEPROM defines // ---------------------------------------------------------------------------- #define IS_EEPROM_MIN_USER_ADDRESS 0 #define IS_EEPROM_MAX_USER_ADDRESS 63 #define IS_EEPROM_MAX_USER_SPACE 64 // ---------------------------------------------------------------------------- // Error report modes // ---------------------------------------------------------------------------- #define IS_GET_ERR_REP_MODE 0x8000 #define IS_ENABLE_ERR_REP 1 #define IS_DISABLE_ERR_REP 0 // ---------------------------------------------------------------------------- // Display mode selectors // ---------------------------------------------------------------------------- #define IS_GET_DISPLAY_MODE 0x8000 #define IS_SET_DM_DIB 1 #define IS_SET_DM_DIRECT3D 4 #define IS_SET_DM_OPENGL 8 #define IS_SET_DM_MONO 0x800 #define IS_SET_DM_BAYER 0x1000 #define IS_SET_DM_YCBCR 0x4000 // ---------------------------------------------------------------------------- // DirectRenderer commands // ---------------------------------------------------------------------------- #define DR_GET_OVERLAY_DC 1 #define DR_GET_MAX_OVERLAY_SIZE 2 #define DR_GET_OVERLAY_KEY_COLOR 3 #define DR_RELEASE_OVERLAY_DC 4 #define DR_SHOW_OVERLAY 5 #define DR_HIDE_OVERLAY 6 #define DR_SET_OVERLAY_SIZE 7 #define DR_SET_OVERLAY_POSITION 8 #define DR_SET_OVERLAY_KEY_COLOR 9 #define DR_SET_HWND 10 #define DR_ENABLE_SCALING 11 #define DR_DISABLE_SCALING 12 #define DR_CLEAR_OVERLAY 13 #define DR_ENABLE_SEMI_TRANSPARENT_OVERLAY 14 #define DR_DISABLE_SEMI_TRANSPARENT_OVERLAY 15 #define DR_CHECK_COMPATIBILITY 16 #define DR_SET_VSYNC_OFF 17 #define DR_SET_VSYNC_AUTO 18 #define DR_SET_USER_SYNC 19 #define DR_GET_USER_SYNC_POSITION_RANGE 20 #define DR_LOAD_OVERLAY_FROM_FILE 21 #define DR_STEAL_NEXT_FRAME 22 #define DR_SET_STEAL_FORMAT 23 #define DR_GET_STEAL_FORMAT 24 #define DR_ENABLE_IMAGE_SCALING 25 #define DR_GET_OVERLAY_SIZE 26 #define DR_CHECK_COLOR_MODE_SUPPORT 27 #define DR_GET_OVERLAY_DATA 28 #define DR_UPDATE_OVERLAY_DATA 29 #define DR_GET_SUPPORTED 30 // ---------------------------------------------------------------------------- // save options // ---------------------------------------------------------------------------- #define IS_SAVE_USE_ACTUAL_IMAGE_SIZE 0x00010000 // ---------------------------------------------------------------------------- // renumeration modes // ---------------------------------------------------------------------------- #define IS_RENUM_BY_CAMERA 0 #define IS_RENUM_BY_HOST 1 // ---------------------------------------------------------------------------- // event constants // ---------------------------------------------------------------------------- #define IS_SET_EVENT_ODD 0 #define IS_SET_EVENT_EVEN 1 #define IS_SET_EVENT_FRAME 2 #define IS_SET_EVENT_EXTTRIG 3 #define IS_SET_EVENT_VSYNC 4 #define IS_SET_EVENT_SEQ 5 #define IS_SET_EVENT_STEAL 6 #define IS_SET_EVENT_VPRES 7 #define IS_SET_EVENT_CAPTURE_STATUS 8 #define IS_SET_EVENT_TRANSFER_FAILED IS_SET_EVENT_CAPTURE_STATUS #define IS_SET_EVENT_DEVICE_RECONNECTED 9 #define IS_SET_EVENT_MEMORY_MODE_FINISH 10 #define IS_SET_EVENT_FRAME_RECEIVED 11 #define IS_SET_EVENT_WB_FINISHED 12 #define IS_SET_EVENT_AUTOBRIGHTNESS_FINISHED 13 #define IS_SET_EVENT_OVERLAY_DATA_LOST 16 #define IS_SET_EVENT_CAMERA_MEMORY 17 #define IS_SET_EVENT_CONNECTIONSPEED_CHANGED 18 #define IS_SET_EVENT_AUTOFOCUS_FINISHED 19 #define IS_SET_EVENT_FIRST_PACKET_RECEIVED 20 #define IS_SET_EVENT_PMC_IMAGE_PARAMS_CHANGED 21 #define IS_SET_EVENT_DEVICE_PLUGGED_IN 22 #define IS_SET_EVENT_DEVICE_UNPLUGGED 23 #define IS_SET_EVENT_TEMPERATURE_STATUS 24 #define IS_SET_EVENT_REMOVE 128 #define IS_SET_EVENT_REMOVAL 129 #define IS_SET_EVENT_NEW_DEVICE 130 #define IS_SET_EVENT_STATUS_CHANGED 131 // ---------------------------------------------------------------------------- // Window message defines // ---------------------------------------------------------------------------- #define IS_UEYE_MESSAGE (WM_USER + 0x0100) #define IS_FRAME 0x0000 #define IS_SEQUENCE 0x0001 #define IS_TRIGGER 0x0002 #define IS_CAPTURE_STATUS 0x0003 #define IS_TRANSFER_FAILED IS_CAPTURE_STATUS #define IS_DEVICE_RECONNECTED 0x0004 #define IS_MEMORY_MODE_FINISH 0x0005 #define IS_FRAME_RECEIVED 0x0006 #define IS_GENERIC_ERROR 0x0007 #define IS_STEAL_VIDEO 0x0008 #define IS_WB_FINISHED 0x0009 #define IS_AUTOBRIGHTNESS_FINISHED 0x000A #define IS_OVERLAY_DATA_LOST 0x000B #define IS_CAMERA_MEMORY 0x000C #define IS_CONNECTIONSPEED_CHANGED 0x000D #define IS_AUTOFOCUS_FINISHED 0x000E #define IS_FIRST_PACKET_RECEIVED 0x000F #define IS_PMC_IMAGE_PARAMS_CHANGED 0x0010 #define IS_DEVICE_PLUGGED_IN 0x0011 #define IS_DEVICE_UNPLUGGED 0x0012 #define IS_TEMPERATURE_STATUS 0x0013 #define IS_DEVICE_REMOVED 0x1000 #define IS_DEVICE_REMOVAL 0x1001 #define IS_NEW_DEVICE 0x1002 #define IS_DEVICE_STATUS_CHANGED 0x1003 // ---------------------------------------------------------------------------- // Camera id constants // ---------------------------------------------------------------------------- #define IS_GET_CAMERA_ID 0x8000 // ---------------------------------------------------------------------------- // Camera info constants // ---------------------------------------------------------------------------- #define IS_GET_STATUS 0x8000 #define IS_EXT_TRIGGER_EVENT_CNT 0 #define IS_FIFO_OVR_CNT 1 #define IS_SEQUENCE_CNT 2 #define IS_LAST_FRAME_FIFO_OVR 3 #define IS_SEQUENCE_SIZE 4 #define IS_VIDEO_PRESENT 5 #define IS_STEAL_FINISHED 6 #define IS_STORE_FILE_PATH 7 #define IS_LUMA_BANDWIDTH_FILTER 8 #define IS_BOARD_REVISION 9 #define IS_MIRROR_BITMAP_UPDOWN 10 #define IS_BUS_OVR_CNT 11 #define IS_STEAL_ERROR_CNT 12 #define IS_LOW_COLOR_REMOVAL 13 #define IS_CHROMA_COMB_FILTER 14 #define IS_CHROMA_AGC 15 #define IS_WATCHDOG_ON_BOARD 16 #define IS_PASSTHROUGH_ON_BOARD 17 #define IS_EXTERNAL_VREF_MODE 18 #define IS_WAIT_TIMEOUT 19 #define IS_TRIGGER_MISSED 20 #define IS_LAST_CAPTURE_ERROR 21 #define IS_PARAMETER_SET_1 22 #define IS_PARAMETER_SET_2 23 #define IS_STANDBY 24 #define IS_STANDBY_SUPPORTED 25 #define IS_QUEUED_IMAGE_EVENT_CNT 26 #define IS_PARAMETER_EXT 27 // ---------------------------------------------------------------------------- // Interface type defines // ---------------------------------------------------------------------------- #define IS_INTERFACE_TYPE_USB 0x40 #define IS_INTERFACE_TYPE_USB3 0x60 #define IS_INTERFACE_TYPE_ETH 0x80 #define IS_INTERFACE_TYPE_PMC 0xf0 // ---------------------------------------------------------------------------- // Board type defines // ---------------------------------------------------------------------------- #define IS_BOARD_TYPE_UEYE_USB (IS_INTERFACE_TYPE_USB + 0) // 0x40 #define IS_BOARD_TYPE_UEYE_USB_SE IS_BOARD_TYPE_UEYE_USB // 0x40 #define IS_BOARD_TYPE_UEYE_USB_RE IS_BOARD_TYPE_UEYE_USB // 0x40 #define IS_BOARD_TYPE_UEYE_USB_ME (IS_INTERFACE_TYPE_USB + 0x01) // 0x41 #define IS_BOARD_TYPE_UEYE_USB_LE (IS_INTERFACE_TYPE_USB + 0x02) // 0x42 #define IS_BOARD_TYPE_UEYE_USB_XS (IS_INTERFACE_TYPE_USB + 0x03) // 0x43 #define IS_BOARD_TYPE_UEYE_USB_ML (IS_INTERFACE_TYPE_USB + 0x05) // 0x45 #define IS_BOARD_TYPE_UEYE_USB3_SE IS_INTERFACE_TYPE_USB3 // 0x60 #define IS_BOARD_TYPE_UEYE_USB3_LE (IS_INTERFACE_TYPE_USB3 + 0x02) // 0x62 #define IS_BOARD_TYPE_UEYE_USB3_XC (IS_INTERFACE_TYPE_USB3 + 0x03) // 0x63 #define IS_BOARD_TYPE_UEYE_USB3_CP (IS_INTERFACE_TYPE_USB3 + 0x04) // 0x64 #define IS_BOARD_TYPE_UEYE_USB3_ML (IS_INTERFACE_TYPE_USB3 + 0x05) // 0x65 #define IS_BOARD_TYPE_UEYE_ETH IS_INTERFACE_TYPE_ETH // 0x80 #define IS_BOARD_TYPE_UEYE_ETH_HE IS_BOARD_TYPE_UEYE_ETH // 0x80 #define IS_BOARD_TYPE_UEYE_ETH_SE (IS_INTERFACE_TYPE_ETH + 0x01) // 0x81 #define IS_BOARD_TYPE_UEYE_ETH_RE IS_BOARD_TYPE_UEYE_ETH_SE // 0x81 #define IS_BOARD_TYPE_UEYE_ETH_LE (IS_INTERFACE_TYPE_ETH + 0x02) // 0x82 #define IS_BOARD_TYPE_UEYE_ETH_CP (IS_INTERFACE_TYPE_ETH + 0x04) // 0x84 #define IS_BOARD_TYPE_UEYE_ETH_SEP (IS_INTERFACE_TYPE_ETH + 0x06) // 0x86 #define IS_BOARD_TYPE_UEYE_ETH_REP IS_BOARD_TYPE_UEYE_ETH_SEP // 0x86 #define IS_BOARD_TYPE_UEYE_ETH_LEET (IS_INTERFACE_TYPE_ETH + 0x07) // 0x87 #define IS_BOARD_TYPE_UEYE_ETH_TE (IS_INTERFACE_TYPE_ETH + 0x08) // 0x88 #define IS_BOARD_TYPE_UEYE_ETH_FA (IS_INTERFACE_TYPE_ETH + 0x0A) // 0x8A #define IS_BOARD_TYPE_UEYE_ETH_SE_R4 (IS_INTERFACE_TYPE_ETH + 0x0B) // 0x8B #define IS_BOARD_TYPE_UEYE_ETH_CP_R2 (IS_INTERFACE_TYPE_ETH + 0x0C) // 0x8C // ---------------------------------------------------------------------------- // Camera type defines // ---------------------------------------------------------------------------- #define IS_CAMERA_TYPE_UEYE_USB IS_BOARD_TYPE_UEYE_USB_SE #define IS_CAMERA_TYPE_UEYE_USB_SE IS_BOARD_TYPE_UEYE_USB_SE #define IS_CAMERA_TYPE_UEYE_USB_RE IS_BOARD_TYPE_UEYE_USB_RE #define IS_CAMERA_TYPE_UEYE_USB_ME IS_BOARD_TYPE_UEYE_USB_ME #define IS_CAMERA_TYPE_UEYE_USB_LE IS_BOARD_TYPE_UEYE_USB_LE #define IS_CAMERA_TYPE_UEYE_USB_ML IS_BOARD_TYPE_UEYE_USB_ML #define IS_CAMERA_TYPE_UEYE_USB3_LE IS_BOARD_TYPE_UEYE_USB3_LE #define IS_CAMERA_TYPE_UEYE_USB3_XC IS_BOARD_TYPE_UEYE_USB3_XC #define IS_CAMERA_TYPE_UEYE_USB3_CP IS_BOARD_TYPE_UEYE_USB3_CP #define IS_CAMERA_TYPE_UEYE_USB3_ML IS_BOARD_TYPE_UEYE_USB3_ML #define IS_CAMERA_TYPE_UEYE_USB31_SE IS_BOARD_TYPE_UEYE_USB3_CP #define IS_CAMERA_TYPE_UEYE_ETH IS_BOARD_TYPE_UEYE_ETH_HE #define IS_CAMERA_TYPE_UEYE_ETH_HE IS_BOARD_TYPE_UEYE_ETH_HE #define IS_CAMERA_TYPE_UEYE_ETH_SE IS_BOARD_TYPE_UEYE_ETH_SE #define IS_CAMERA_TYPE_UEYE_ETH_RE IS_BOARD_TYPE_UEYE_ETH_RE #define IS_CAMERA_TYPE_UEYE_ETH_LE IS_BOARD_TYPE_UEYE_ETH_LE #define IS_CAMERA_TYPE_UEYE_ETH_CP IS_BOARD_TYPE_UEYE_ETH_CP #define IS_CAMERA_TYPE_UEYE_ETH_SEP IS_BOARD_TYPE_UEYE_ETH_SEP #define IS_CAMERA_TYPE_UEYE_ETH_REP IS_BOARD_TYPE_UEYE_ETH_REP #define IS_CAMERA_TYPE_UEYE_ETH_LEET IS_BOARD_TYPE_UEYE_ETH_LEET #define IS_CAMERA_TYPE_UEYE_ETH_TE IS_BOARD_TYPE_UEYE_ETH_TE #define IS_CAMERA_TYPE_UEYE_ETH_CP_R2 IS_BOARD_TYPE_UEYE_ETH_CP_R2 #define IS_CAMERA_TYPE_UEYE_ETH_FA IS_BOARD_TYPE_UEYE_ETH_FA #define IS_CAMERA_TYPE_UEYE_ETH_SE_R4 IS_BOARD_TYPE_UEYE_ETH_SE_R4 #define IS_CAMERA_TYPE_UEYE_PMC (IS_INTERFACE_TYPE_PMC + 0x01) // ---------------------------------------------------------------------------- // Readable operation system defines // ---------------------------------------------------------------------------- #define IS_OS_UNDETERMINED 0 #define IS_OS_WIN95 1 #define IS_OS_WINNT40 2 #define IS_OS_WIN98 3 #define IS_OS_WIN2000 4 #define IS_OS_WINXP 5 #define IS_OS_WINME 6 #define IS_OS_WINNET 7 #define IS_OS_WINSERVER2003 8 #define IS_OS_WINVISTA 9 #define IS_OS_LINUX24 10 #define IS_OS_LINUX26 11 #define IS_OS_WIN7 12 #define IS_OS_WIN8 13 #define IS_OS_WIN8SERVER 14 #define IS_OS_GREATER_THAN_WIN8 15 // ---------------------------------------------------------------------------- // Bus speed // ---------------------------------------------------------------------------- #define IS_USB_10 0x0001 // 1,5 Mb/s #define IS_USB_11 0x0002 // 12 Mb/s #define IS_USB_20 0x0004 // 480 Mb/s #define IS_USB_30 0x0008 // 4000 Mb/s #define IS_ETHERNET_10 0x0080 // 10 Mb/s #define IS_ETHERNET_100 0x0100 // 100 Mb/s #define IS_ETHERNET_1000 0x0200 // 1000 Mb/s #define IS_ETHERNET_10000 0x0400 //10000 Mb/s #define IS_USB_LOW_SPEED 1 #define IS_USB_FULL_SPEED 12 #define IS_USB_HIGH_SPEED 480 #define IS_USB_SUPER_SPEED 4000 #define IS_ETHERNET_10Base 10 #define IS_ETHERNET_100Base 100 #define IS_ETHERNET_1000Base 1000 #define IS_ETHERNET_10GBase 10000 // ---------------------------------------------------------------------------- // HDR // ---------------------------------------------------------------------------- #define IS_HDR_NOT_SUPPORTED 0 #define IS_HDR_KNEEPOINTS 1 #define IS_DISABLE_HDR 0 #define IS_ENABLE_HDR 1 // ---------------------------------------------------------------------------- // Test images // ---------------------------------------------------------------------------- #define IS_TEST_IMAGE_NONE 0x00000000 #define IS_TEST_IMAGE_WHITE 0x00000001 #define IS_TEST_IMAGE_BLACK 0x00000002 #define IS_TEST_IMAGE_HORIZONTAL_GREYSCALE 0x00000004 #define IS_TEST_IMAGE_VERTICAL_GREYSCALE 0x00000008 #define IS_TEST_IMAGE_DIAGONAL_GREYSCALE 0x00000010 #define IS_TEST_IMAGE_WEDGE_GRAY 0x00000020 #define IS_TEST_IMAGE_WEDGE_COLOR 0x00000040 #define IS_TEST_IMAGE_ANIMATED_WEDGE_GRAY 0x00000080 #define IS_TEST_IMAGE_ANIMATED_WEDGE_COLOR 0x00000100 #define IS_TEST_IMAGE_MONO_BARS 0x00000200 #define IS_TEST_IMAGE_COLOR_BARS1 0x00000400 #define IS_TEST_IMAGE_COLOR_BARS2 0x00000800 #define IS_TEST_IMAGE_GREYSCALE1 0x00001000 #define IS_TEST_IMAGE_GREY_AND_COLOR_BARS 0x00002000 #define IS_TEST_IMAGE_MOVING_GREY_AND_COLOR_BARS 0x00004000 #define IS_TEST_IMAGE_ANIMATED_LINE 0x00008000 #define IS_TEST_IMAGE_ALTERNATE_PATTERN 0x00010000 #define IS_TEST_IMAGE_VARIABLE_GREY 0x00020000 #define IS_TEST_IMAGE_MONOCHROME_HORIZONTAL_BARS 0x00040000 #define IS_TEST_IMAGE_MONOCHROME_VERTICAL_BARS 0x00080000 #define IS_TEST_IMAGE_CURSOR_H 0x00100000 #define IS_TEST_IMAGE_CURSOR_V 0x00200000 #define IS_TEST_IMAGE_COLDPIXEL_GRID 0x00400000 #define IS_TEST_IMAGE_HOTPIXEL_GRID 0x00800000 #define IS_TEST_IMAGE_VARIABLE_RED_PART 0x01000000 #define IS_TEST_IMAGE_VARIABLE_GREEN_PART 0x02000000 #define IS_TEST_IMAGE_VARIABLE_BLUE_PART 0x04000000 #define IS_TEST_IMAGE_SHADING_IMAGE 0x08000000 #define IS_TEST_IMAGE_WEDGE_GRAY_SENSOR 0x10000000 #define IS_TEST_IMAGE_ANIMATED_WEDGE_GRAY_SENSOR 0x20000000 #define IS_TEST_IMAGE_RAMPING_PATTERN 0x40000000 #define IS_TEST_IMAGE_CHESS_PATTERN 0x80000000 // ---------------------------------------------------------------------------- // Sensor scaler // ---------------------------------------------------------------------------- #define IS_DISABLE_SENSOR_SCALER 0 #define IS_ENABLE_SENSOR_SCALER 1 #define IS_ENABLE_ANTI_ALIASING 2 // ---------------------------------------------------------------------------- // Timeouts // ---------------------------------------------------------------------------- #define IS_TRIGGER_TIMEOUT 0 // ---------------------------------------------------------------------------- // Auto pixel clock modes // ---------------------------------------------------------------------------- #define IS_BEST_PCLK_RUN_ONCE 0 // ---------------------------------------------------------------------------- // Sequence flags // ---------------------------------------------------------------------------- #define IS_LOCK_LAST_BUFFER 0x8002 #define IS_GET_ALLOC_ID_OF_THIS_BUF 0x8004 #define IS_GET_ALLOC_ID_OF_LAST_BUF 0x8008 #define IS_USE_ALLOC_ID 0x8000 #define IS_USE_CURRENT_IMG_SIZE 0xC000 // ------------------------------------------ // Memory information flags // ------------------------------------------ #define IS_GET_D3D_MEM 0x8000 // ---------------------------------------------------------------------------- // Image files types // ---------------------------------------------------------------------------- #define IS_IMG_BMP 0 #define IS_IMG_JPG 1 #define IS_IMG_PNG 2 #define IS_IMG_RAW 4 #define IS_IMG_TIF 8 // ---------------------------------------------------------------------------- // I2C defines // nRegisterAddr | IS_I2C_16_BIT_REGISTER // nRegisterAddr | IS_I2C_0_BIT_REGISTER // ---------------------------------------------------------------------------- #define IS_I2C_16_BIT_REGISTER 0x10000000 #define IS_I2C_0_BIT_REGISTER 0x20000000 // nDeviceAddr | IS_I2C_DONT_WAIT #define IS_I2C_DONT_WAIT 0x00800000 // ---------------------------------------------------------------------------- // Gamma modes // ---------------------------------------------------------------------------- #define IS_GET_GAMMA_MODE 0x8000 #define IS_SET_GAMMA_OFF 0 #define IS_SET_GAMMA_ON 1 // ---------------------------------------------------------------------------- // Capture modes (Falcon) // ---------------------------------------------------------------------------- #define IS_GET_CAPTURE_MODE 0x8000 #define IS_SET_CM_ODD 0x0001 #define IS_SET_CM_EVEN 0x0002 #define IS_SET_CM_FRAME 0x0004 #define IS_SET_CM_NONINTERLACED 0x0008 #define IS_SET_CM_NEXT_FRAME 0x0010 #define IS_SET_CM_NEXT_FIELD 0x0020 #define IS_SET_CM_BOTHFIELDS (IS_SET_CM_ODD | IS_SET_CM_EVEN | IS_SET_CM_NONINTERLACED) #define IS_SET_CM_FRAME_STEREO 0x2004 // ---------------------------------------------------------------------------- // Typedefs // ---------------------------------------------------------------------------- #ifdef __LINUX__ #define FORCEINLINE inline #define USHORT IS_U16 #include #include #include // aliases for common Win32 types typedef int32_t BOOLEAN; typedef int32_t BOOL; typedef int32_t INT; typedef uint32_t UINT; typedef int32_t LONG; typedef void VOID; typedef void* LPVOID; typedef uint32_t ULONG; typedef uint64_t UINT64; typedef int64_t __int64; typedef int64_t LONGLONG; typedef uint32_t DWORD; typedef uint16_t WORD; typedef unsigned char BYTE; typedef char CHAR; typedef char TCHAR; typedef unsigned char UCHAR; typedef int8_t* LPTSTR; typedef const int8_t* LPCTSTR; typedef const int8_t* LPCSTR; typedef uint32_t WPARAM; typedef uint32_t LPARAM; typedef uint32_t LRESULT; typedef uint32_t HRESULT; typedef void* HWND; typedef void* HGLOBAL; typedef void* HINSTANCE; typedef void* HDC; typedef void* HMODULE; typedef void* HKEY; typedef void* HANDLE; typedef BYTE* LPBYTE; typedef DWORD* PDWORD; typedef VOID* PVOID; typedef CHAR* PCHAR; #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef HIBYTE #define HIBYTE(_x_) ( (_x_)>>8 ) #endif #ifndef LOBYTE #define LOBYTE(_x_) ( (_x_)&0x00ff ) #endif #ifndef HIWORD #define HIWORD(_x_) ( (_x_)>>16 ) #endif #ifndef LOWORD #define LOWORD(_x_) ( (_x_)&0x0000ffff ) #endif #ifndef _min_ #define _min_( _x_, _y_ ) ( (_x_)<(_y_) ? (_x_) : (_y_) ) #endif #ifndef _max_ #define _max_( _x_, _y_ ) ( (_x_)>(_y_) ? (_x_) : (_y_) ) #endif #ifndef WM_USER #define WM_USER 0x400 #endif // unknown stuff for Linux #define WINAPI #define CALLBACK #undef UNICODE #define __stdcall #define __cdecl #if defined (NO_WARN_DEPRECATED) #define attribute_deprecated #else #define attribute_deprecated __attribute__((deprecated)) #endif #define DEPRECATED(X) X attribute_deprecated #if defined (_IDS_EXPORT) #define IDSEXP __attribute__((visibility("default"))) INT #define IDSEXPUL __attribute__((visibility("default"))) ULONG #define IDSEXPDEP attribute_deprecated __attribute__((visibility("default"))) INT #else #define IDSEXP INT #define IDSEXPUL ULONG #define IDSEXPDEP attribute_deprecated INT #endif typedef long (*WNDPROC) (HWND, UINT, WPARAM, LPARAM); #define ZeroMemory(a,b) memset((a), 0, (b)) #define OutputDebugString(s) fprintf(stderr, s) #define INFINITE -1 #else #include #if defined (NO_WARN_DEPRECATED) #define attribute_deprecated #else #define attribute_deprecated __declspec(deprecated) #endif #define DEPRECATED(X) attribute_deprecated X #if defined (_MSC_VER) || defined (__BORLANDC__) || defined (_WIN32_WCE) #if defined (_PURE_C) && !defined (_IDS_EXPORT) && !defined (_FALC_EXPORT) #define IDSEXP extern __declspec(dllimport) INT __cdecl #define IDSEXPDEP extern __declspec(dllimport) attribute_deprecated INT __cdecl #define IDSEXPUL extern __declspec(dllimport) ULONG __cdecl #elif defined (__STDC__) && !defined (_IDS_EXPORT) && !defined (_FALC_EXPORT) #define IDSEXP extern __declspec(dllimport) INT __cdecl #define IDSEXPDEP extern __declspec(dllimport) attribute_deprecated INT __cdecl #define IDSEXPUL extern __declspec(dllimport) ULONG __cdecl #elif !defined (_IDS_EXPORT) && !defined (_FALC_EXPORT) // using the DLL, not creating one #define IDSEXP extern "C" __declspec(dllimport) INT __cdecl #define IDSEXPDEP extern "C" __declspec(dllimport) attribute_deprecated INT __cdecl #define IDSEXPUL extern "C" __declspec(dllimport) ULONG __cdecl #elif defined (_IDS_VBSTD) || defined (_FALC_VBSTD) // for creating stdcall dll #define IDSEXP extern __declspec(dllexport) INT __stdcall #define IDSEXPDEP extern __declspec(dllexport) INT __stdcall #define IDSEXPUL extern __declspec(dllexport) ULONG __stdcall #else // for creating cdecl dll #define IDSEXP extern __declspec(dllexport) INT __cdecl #define IDSEXPDEP extern __declspec(dllexport) INT __cdecl #define IDSEXPUL extern __declspec(dllexport) ULONG __cdecl #endif #elif !defined (_IDS_EXPORT) && !defined (_FALC_EXPORT) // using the DLL, not creating one #define IDSEXP extern __declspec(dllimport) INT __cdecl #define IDSEXPDEP extern __declspec(dllimport) attribute_deprecated INT __cdecl #define IDSEXPUL extern __declspec(dllimport) ULONG __cdecl #endif typedef int INT; #endif // Linux #ifdef _WIN32_WCE typedef TCHAR IS_CHAR; #else typedef char IS_CHAR; #endif // ---------------------------------------------------------------------------- // Typedefs // ---------------------------------------------------------------------------- typedef DWORD HIDS; #define HIDS_DEFINED typedef DWORD HCAM; #define HCAM_DEFINED typedef DWORD HFALC; #define HFALC_DEFINED /*! * \brief Data type for 32-bit signed int value ranges. */ typedef struct S_IS_RANGE_S32 { INT s32Min; INT s32Max; INT s32Inc; } IS_RANGE_S32; /*! * \brief Data type for 64-bit signed double value ranges. */ typedef struct S_IS_RANGE_F64 { double f64Min; double f64Max; double f64Inc; } IS_RANGE_F64; // ---------------------------------------------------------------------------- // Invalid values for device handles // ---------------------------------------------------------------------------- #define IS_INVALID_HIDS (HIDS)0 #define IS_INVALID_HCAM (HIDS)0 #define IS_INVALID_HFALC (HIDS)0 // ---------------------------------------------------------------------------- // Info struct // ---------------------------------------------------------------------------- #define FALCINFO BOARDINFO #define PFALCINFO PBOARDINFO #define CAMINFO BOARDINFO #define PCAMINFO PBOARDINFO typedef struct { char SerNo[12]; // e.g. "1234512345" (11 char) char ID[20]; // e.g. "IDS GmbH" char Version[10]; // e.g. "V2.10" (9 char) char Date[12]; // e.g. "24.01.2006" (11 char) unsigned char Select; // contains board select number for multi board support unsigned char Type; // e.g. IS_BOARD_TYPE_UEYE_USB char Reserved[8]; // (7 char) } BOARDINFO, *PBOARDINFO; typedef struct _SENSORINFO { WORD SensorID; // e.g. IS_SENSOR_UI224X_C IS_CHAR strSensorName[32]; // e.g. "UI-224X-C" char nColorMode; // e.g. IS_COLORMODE_BAYER DWORD nMaxWidth; // e.g. 1280 DWORD nMaxHeight; // e.g. 1024 BOOL bMasterGain; // e.g. TRUE BOOL bRGain; // e.g. TRUE BOOL bGGain; // e.g. TRUE BOOL bBGain; // e.g. TRUE BOOL bGlobShutter; // e.g. TRUE WORD wPixelSize; // e.g. 465 = 4.65 um char nUpperLeftBayerPixel; // e.g. BAYER_PIXEL_RED (value = 0) char Reserved[13]; // not used } SENSORINFO, *PSENSORINFO; typedef enum _BAYER_PIXEL { BAYER_PIXEL_RED = 0, BAYER_PIXEL_GREEN = 1, BAYER_PIXEL_BLUE = 2 } BAYER_PIXEL; typedef struct _REVISIONINFO { WORD size; // 2 WORD Sensor; // 2 WORD Cypress; // 2 DWORD Blackfin; // 4 WORD DspFirmware; // 2 // --12 WORD USB_Board; // 2 WORD Sensor_Board; // 2 WORD Processing_Board; // 2 WORD Memory_Board; // 2 WORD Housing; // 2 WORD Filter; // 2 WORD Timing_Board; // 2 WORD Product; // 2 WORD Power_Board; // 2 WORD Logic_Board; // 2 WORD FX3; // 2 WORD FPGA; // 2 DWORD HardwareConfig; // 4 // --40 BYTE reserved[88]; // --128 } REVISIONINFO, *PREVISIONINFO; // ---------------------------------------------------------------------------- // Capture status // ---------------------------------------------------------------------------- typedef enum _UEYE_CAPTURE_STATUS { IS_CAP_STATUS_API_NO_DEST_MEM = 0xa2, IS_CAP_STATUS_API_CONVERSION_FAILED = 0xa3, IS_CAP_STATUS_API_IMAGE_LOCKED = 0xa5, IS_CAP_STATUS_DRV_OUT_OF_BUFFERS = 0xb2, IS_CAP_STATUS_DRV_DEVICE_NOT_READY = 0xb4, IS_CAP_STATUS_USB_TRANSFER_FAILED = 0xc7, IS_CAP_STATUS_DEV_MISSED_IMAGES = 0xe5, IS_CAP_STATUS_DEV_TIMEOUT = 0xd6, IS_CAP_STATUS_DEV_FRAME_CAPTURE_FAILED = 0xd9, IS_CAP_STATUS_ETH_BUFFER_OVERRUN = 0xe4, IS_CAP_STATUS_ETH_MISSED_IMAGES = 0xe5 } UEYE_CAPTURE_STATUS; typedef struct _UEYE_CAPTURE_STATUS_INFO { DWORD dwCapStatusCnt_Total; BYTE reserved[60]; DWORD adwCapStatusCnt_Detail[256]; // access via UEYE_CAPTURE_STATUS } UEYE_CAPTURE_STATUS_INFO; typedef enum E_CAPTURE_STATUS_CMD { IS_CAPTURE_STATUS_INFO_CMD_RESET = 1, IS_CAPTURE_STATUS_INFO_CMD_GET = 2, IS_CAPTURE_STATUS_CRC_ERROR_COUNT_GET = 3 } CAPTURE_STATUS_CMD; IDSEXP is_CaptureStatus(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); #ifndef UEYE_CAMERA_INFO_STRUCT #define UEYE_CAMERA_INFO_STRUCT typedef struct _UEYE_CAMERA_INFO { DWORD dwCameraID; /* AC_x DWORD curCtrlStatus; // current control status -> ACS_x } AUTO_BRIGHT_STATUS, *PAUTO_BRIGHT_STATUS; typedef struct _AUTO_WB_CHANNNEL_STATUS { DWORD curValue; // current average greylevel long curError; // current auto wb error DWORD curCtrlStatus; // current control status -> ACS_x } AUTO_WB_CHANNNEL_STATUS, *PAUTO_WB_CHANNNEL_STATUS; typedef struct _AUTO_WB_STATUS { AUTO_WB_CHANNNEL_STATUS RedChannel; AUTO_WB_CHANNNEL_STATUS GreenChannel; AUTO_WB_CHANNNEL_STATUS BlueChannel; DWORD curController; // current active wb controller -> AC_x } AUTO_WB_STATUS, *PAUTO_WB_STATUS; // auto shutter photometry capabilities typedef enum E_AUTO_SHUTTER_PHOTOM { AS_PM_NONE = 0, AS_PM_SENS_CENTER_WEIGHTED = 0x00000001, // sensor auto shutter: center weighted AS_PM_SENS_CENTER_SPOT = 0x00000002, // sensor auto shutter: center spot AS_PM_SENS_PORTRAIT = 0x00000004, // sensor auto shutter: portrait AS_PM_SENS_LANDSCAPE = 0x00000008, // sensor auto shutter: landscape AS_PM_SENS_CENTER_AVERAGE = 0x00000010 // sensor auto shutter: center average }AUTO_SHUTTER_PHOTOM; // auto gain photometry capabilities typedef enum E_AUTO_GAIN_PHOTOM { AG_PM_NONE = 0, AG_PM_SENS_CENTER_WEIGHTED = 0x00000001, // sensor auto gain: center weighted AG_PM_SENS_CENTER_SPOT = 0x00000002, // sensor auto gain: center spot AG_PM_SENS_PORTRAIT = 0x00000004, // sensor auto gain: portrait AG_PM_SENS_LANDSCAPE = 0x00000008 // sensor auto gain: landscape }AUTO_GAIN_PHOTOM; // anti flicker modes typedef enum E_ANTI_FLICKER_MODE { ANTIFLCK_MODE_OFF = 0, ANTIFLCK_MODE_SENS_AUTO = 0x00000001, ANTIFLCK_MODE_SENS_50_FIXED = 0x00000002, ANTIFLCK_MODE_SENS_60_FIXED = 0x00000004 }ANTI_FLICKER_MODE; // whitebalance modes typedef enum E_WHITEBALANCE_MODE { WB_MODE_DISABLE = 0, WB_MODE_AUTO = 0x00000001, WB_MODE_ALL_PULLIN = 0x00000002, WB_MODE_INCANDESCENT_LAMP = 0x00000004, WB_MODE_FLUORESCENT_DL = 0x00000008, WB_MODE_OUTDOOR_CLEAR_SKY = 0x00000010, WB_MODE_OUTDOOR_CLOUDY = 0x00000020, WB_MODE_FLUORESCENT_LAMP = 0x00000040, WB_MODE_FLUORESCENT_NL = 0x00000080 }WHITEBALANCE_MODE; typedef struct _UEYE_AUTO_INFO { DWORD AutoAbility; // auto control ability AUTO_BRIGHT_STATUS sBrightCtrlStatus; // brightness auto control status AUTO_WB_STATUS sWBCtrlStatus; // white balance auto control status DWORD AShutterPhotomCaps; // auto shutter photometry capabilities(AUTO_SHUTTER_PHOTOM) DWORD AGainPhotomCaps; // auto gain photometry capabilities (AUTO_GAIN_PHOTOM) DWORD AAntiFlickerCaps; // auto anti-flicker capabilities DWORD SensorWBModeCaps; // white balance mode capabilities DWORD reserved[8]; } UEYE_AUTO_INFO, *PUEYE_AUTO_INFO; typedef struct _DC_INFO { unsigned int nSize; // size of this structure (16 bytes) HDC hDC; // handle to a DC unsigned int nCx; // destination width to use for rendering unsigned int nCy; // destination height to use for rendering }DC_INFO, *PDC_INFO; // ---------------------------------------------------------------------------- // function exports // ---------------------------------------------------------------------------- #ifdef __LINUX__ IDSEXP is_WaitEvent (HIDS hCam, INT which, INT nTimeout); #endif IDSEXP is_SetSaturation (HIDS hCam, INT ChromU, INT ChromV); IDSEXP is_PrepareStealVideo (HIDS hCam, int Mode, ULONG StealColorMode); IDSEXP is_GetNumberOfDevices (void); // ---------------------------------------------------------------------------- // common function // ---------------------------------------------------------------------------- IDSEXP is_StopLiveVideo (HIDS hCam, INT Wait); IDSEXP is_FreezeVideo (HIDS hCam, INT Wait); IDSEXP is_CaptureVideo (HIDS hCam, INT Wait); IDSEXP is_IsVideoFinish (HIDS hCam, INT* pValue); IDSEXP is_HasVideoStarted (HIDS hCam, BOOL* pbo); IDSEXP is_AllocImageMem (HIDS hCam, INT width, INT height, INT bitspixel, char** ppcImgMem, int* pid); IDSEXP is_SetImageMem (HIDS hCam, char* pcMem, int id); IDSEXP is_FreeImageMem (HIDS hCam, char* pcMem, int id); IDSEXP is_GetImageMem (HIDS hCam, VOID** pMem); IDSEXP is_GetActiveImageMem (HIDS hCam, char** ppcMem, int* pnID); IDSEXP is_InquireImageMem (HIDS hCam, char* pcMem, int nID, int* pnX, int* pnY, int* pnBits, int* pnPitch); IDSEXP is_GetImageMemPitch (HIDS hCam, INT* pPitch); IDSEXP is_SetAllocatedImageMem (HIDS hCam, INT width, INT height, INT bitspixel, char* pcImgMem, int* pid); IDSEXP is_CopyImageMem (HIDS hCam, char* pcSource, int nID, char* pcDest); IDSEXP is_CopyImageMemLines (HIDS hCam, char* pcSource, int nID, int nLines, char* pcDest); IDSEXP is_AddToSequence (HIDS hCam, char* pcMem, INT nID); IDSEXP is_ClearSequence (HIDS hCam); IDSEXP is_GetActSeqBuf (HIDS hCam, INT* pnNum, char** ppcMem, char** ppcMemLast); IDSEXP is_LockSeqBuf (HIDS hCam, INT nNum, char* pcMem); IDSEXP is_UnlockSeqBuf (HIDS hCam, INT nNum, char* pcMem); IDSEXP is_GetError (HIDS hCam, INT* pErr, IS_CHAR** ppcErr); IDSEXP is_SetErrorReport (HIDS hCam, INT Mode); IDSEXP is_SetColorMode (HIDS hCam, INT Mode); IDSEXP is_GetColorDepth (HIDS hCam, INT* pnCol, INT* pnColMode); // Bitmap display function IDSEXP is_RenderBitmap (HIDS hCam, INT nMemID, HWND hwnd, INT nMode); IDSEXP is_SetDisplayMode (HIDS hCam, INT Mode); IDSEXP is_SetDisplayPos (HIDS hCam, INT x, INT y); IDSEXP is_SetHwnd (HIDS hCam, HWND hwnd); IDSEXP is_GetVsyncCount (HIDS hCam, long* pIntr, long* pActIntr); // Version information IDSEXP is_GetDLLVersion (void); IDSEXP is_InitEvent (HIDS hCam, HANDLE hEv, INT which); IDSEXP is_ExitEvent (HIDS hCam, INT which); IDSEXP is_EnableEvent (HIDS hCam, INT which); IDSEXP is_DisableEvent (HIDS hCam, INT which); IDSEXP is_SetExternalTrigger (HIDS hCam, INT nTriggerMode); IDSEXPDEP is_SetTriggerCounter (HIDS hCam, INT nValue); IDSEXP is_SetRopEffect (HIDS hCam, INT effect, INT param, INT reserved); // Camera functions IDSEXP is_InitCamera (HIDS* phCam, HWND hWnd); IDSEXP is_ExitCamera (HIDS hCam); IDSEXP is_GetCameraInfo (HIDS hCam, PCAMINFO pInfo); IDSEXPUL is_CameraStatus (HIDS hCam, INT nInfo, ULONG ulValue); IDSEXP is_GetCameraType (HIDS hCam); IDSEXP is_GetNumberOfCameras (INT* pnNumCams); IDSEXP is_GetUsedBandwidth (HIDS hCam); // Set/Get Frame rate IDSEXP is_GetFrameTimeRange (HIDS hCam, double *min, double *max, double *intervall); IDSEXP is_SetFrameRate (HIDS hCam, double FPS, double* newFPS); // Get frames per second IDSEXP is_GetFramesPerSecond (HIDS hCam, double *dblFPS); // Get Sensor info IDSEXP is_GetSensorInfo (HIDS hCam, PSENSORINFO pInfo); // Get RevisionInfo IDSEXP is_GetRevisionInfo (HIDS hCam, PREVISIONINFO prevInfo); // enable/disable AutoExit after device remove IDSEXP is_EnableAutoExit (HIDS hCam, INT nMode); // Message IDSEXP is_EnableMessage (HIDS hCam, INT which, HWND hWnd); // hardware gain settings IDSEXP is_SetHardwareGain (HIDS hCam, INT nMaster, INT nRed, INT nGreen, INT nBlue); // enable/disable WhiteBalance IDSEXP is_SetWhiteBalance (HIDS hCam, INT nMode); IDSEXP is_SetWhiteBalanceMultipliers (HIDS hCam, double dblRed, double dblGreen, double dblBlue); IDSEXP is_GetWhiteBalanceMultipliers (HIDS hCam, double *pdblRed, double *pdblGreen, double *pdblBlue); // Sensor features IDSEXP is_SetColorCorrection (HIDS hCam, INT nEnable, double *factors); IDSEXP is_SetSubSampling (HIDS hCam, INT mode); IDSEXP is_ForceTrigger (HIDS hCam); // new with driver version 1.12.0006 IDSEXP is_GetBusSpeed (HIDS hCam); // new with driver version 1.12.0015 IDSEXP is_SetBinning (HIDS hCam, INT mode); // new with driver version 1.12.0017 IDSEXP is_ResetToDefault (HIDS hCam); // new with driver version 1.14.0008 IDSEXP is_SetCameraID (HIDS hCam, INT nID); IDSEXP is_SetBayerConversion (HIDS hCam, INT nMode); // new with driver version 1.14.0009 IDSEXP is_SetHardwareGamma (HIDS hCam, INT nMode); // new with driver version 2.00.0001 IDSEXP is_GetCameraList (PUEYE_CAMERA_LIST pucl); // new with driver version 2.00.0011 IDSEXP is_SetAutoParameter (HIDS hCam, INT param, double *pval1, double *pval2); IDSEXP is_GetAutoInfo (HIDS hCam, UEYE_AUTO_INFO *pInfo); IDSEXP is_GetImageHistogram (HIDS hCam, int nID, INT ColorMode, DWORD* pHistoMem); IDSEXP is_SetTriggerDelay (HIDS hCam, INT nTriggerDelay); // new with driver version 2.21.0000 IDSEXP is_SetGainBoost (HIDS hCam, INT mode); IDSEXPDEP is_SetGlobalShutter (HIDS hCam, INT mode); IDSEXP is_SetExtendedRegister (HIDS hCam, INT index,WORD value); IDSEXP is_GetExtendedRegister (HIDS hCam, INT index, WORD *pwValue); // new with driver version 2.22.0002 IDSEXP is_SetHWGainFactor (HIDS hCam, INT nMode, INT nFactor); // camera renumeration IDSEXP is_Renumerate (HIDS hCam, INT nMode); // Read / Write I2C IDSEXP is_WriteI2C (HIDS hCam, INT nDeviceAddr, INT nRegisterAddr, BYTE* pbData, INT nLen); IDSEXP is_ReadI2C (HIDS hCam, INT nDeviceAddr, INT nRegisterAddr, BYTE* pbData, INT nLen); // new with driver version 3.10.0000 typedef struct _KNEEPOINT { double x; double y; } KNEEPOINT, *PKNEEPOINT; typedef struct _KNEEPOINTARRAY { INT NumberOfUsedKneepoints; KNEEPOINT Kneepoint[10]; } KNEEPOINTARRAY, *PKNEEPOINTARRAY; typedef struct _KNEEPOINTINFO { INT NumberOfSupportedKneepoints; INT NumberOfUsedKneepoints; double MinValueX; double MaxValueX; double MinValueY; double MaxValueY; KNEEPOINT DefaultKneepoint[10]; INT Reserved[10]; } KNEEPOINTINFO, *PKNEEPOINTINFO; // HDR functions IDSEXP is_GetHdrMode (HIDS hCam, INT *Mode); IDSEXP is_EnableHdr (HIDS hCam, INT Enable); IDSEXP is_SetHdrKneepoints (HIDS hCam, KNEEPOINTARRAY *KneepointArray, INT KneepointArraySize); IDSEXP is_GetHdrKneepoints (HIDS hCam, KNEEPOINTARRAY *KneepointArray, INT KneepointArraySize); IDSEXP is_GetHdrKneepointInfo (HIDS hCam, KNEEPOINTINFO *KneepointInfo, INT KneepointInfoSize); IDSEXP is_SetOptimalCameraTiming (HIDS hCam, INT Mode, INT Timeout, INT *pMaxPxlClk, double *pMaxFrameRate); IDSEXP is_GetSupportedTestImages (HIDS hCam, INT *SupportedTestImages); IDSEXP is_GetTestImageValueRange (HIDS hCam, INT TestImage, INT *TestImageValueMin, INT *TestImageValueMax); IDSEXP is_SetSensorTestImage (HIDS hCam, INT Param1, INT Param2); IDSEXP is_GetColorConverter (HIDS hCam, INT ColorMode, INT *pCurrentConvertMode, INT *pDefaultConvertMode, INT *pSupportedConvertModes); IDSEXP is_SetColorConverter (HIDS hCam, INT ColorMode, INT ConvertMode); IDSEXP is_WaitForNextImage (HIDS hCam, UINT timeout, char **ppcMem, INT *imageID); IDSEXP is_InitImageQueue (HIDS hCam, INT nMode); IDSEXP is_ExitImageQueue (HIDS hCam); IDSEXP is_SetTimeout (HIDS hCam, UINT nMode, UINT Timeout); IDSEXP is_GetTimeout (HIDS hCam, UINT nMode, UINT *pTimeout); typedef enum eUEYE_GET_ESTIMATED_TIME_MODE { IS_SE_STARTER_FW_UPLOAD = 0x00000001, /*!< get estimated duration of GigE SE starter firmware upload in milliseconds */ IS_CP_STARTER_FW_UPLOAD = 0x00000002, /*!< get estimated duration of GigE CP starter firmware upload in milliseconds */ IS_STARTER_FW_UPLOAD = 0x00000004 /*!< get estimated duration of starter firmware upload in milliseconds using hCam to */ } UEYE_GET_ESTIMATED_TIME_MODE; IDSEXP is_GetDuration (HIDS hCam, UINT nMode, INT* pnTime); // new with driver version 3.40.0000 typedef struct _SENSORSCALERINFO { INT nCurrMode; INT nNumberOfSteps; double dblFactorIncrement; double dblMinFactor; double dblMaxFactor; double dblCurrFactor; INT nSupportedModes; BYTE bReserved[84]; } SENSORSCALERINFO; IDSEXP is_GetSensorScalerInfo (HIDS hCam, SENSORSCALERINFO *pSensorScalerInfo, INT nSensorScalerInfoSize); IDSEXP is_SetSensorScaler (HIDS hCam, UINT nMode, double dblFactor); typedef struct _UEYETIME { WORD wYear; WORD wMonth; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; BYTE byReserved[10]; } UEYETIME; typedef struct _UEYEIMAGEINFO { DWORD dwFlags; BYTE byReserved1[4]; UINT64 u64TimestampDevice; UEYETIME TimestampSystem; DWORD dwIoStatus; WORD wAOIIndex; WORD wAOICycle; UINT64 u64FrameNumber; DWORD dwImageBuffers; DWORD dwImageBuffersInUse; DWORD dwReserved3; DWORD dwImageHeight; DWORD dwImageWidth; DWORD dwHostProcessTime; /* Time spend processing this image in micro seconds */ BYTE bySequencerIndex; DWORD dwFocusValue; BOOL bFocusing; } UEYEIMAGEINFO; IDSEXP is_GetImageInfo (HIDS hCam, INT nImageBufferID, UEYEIMAGEINFO *pImageInfo, INT nImageInfoSize); // New functions and defines for 3.52 (uEye XS) IDSEXP is_ImageFormat (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_IMAGE_FORMAT_CMD { IMGFRMT_CMD_GET_NUM_ENTRIES = 1, /* Get the number of supported image formats. pParam hast to be a Pointer to IS_U32. If -1 is reported, the device supports continuous AOI settings (maybe with fixed increments) */ IMGFRMT_CMD_GET_LIST = 2, /* Get a array of IMAGE_FORMAT_ELEMENTs. */ IMGFRMT_CMD_SET_FORMAT = 3, /* Select a image format */ IMGFRMT_CMD_GET_ARBITRARY_AOI_SUPPORTED = 4, /* Does the device supports the setting of an arbitrary AOI. */ IMGFRMT_CMD_GET_FORMAT_INFO = 5 /* Get IMAGE_FORMAT_INFO for a given formatID */ } IMAGE_FORMAT_CMD; typedef enum E_CAPTUREMODE { // no trigger CAPTMODE_FREERUN = 0x00000001, CAPTMODE_SINGLE = 0x00000002, // software trigger modes CAPTMODE_TRIGGER_SOFT_SINGLE = 0x00000010, CAPTMODE_TRIGGER_SOFT_CONTINUOUS = 0x00000020, // hardware trigger modes CAPTMODE_TRIGGER_HW_SINGLE = 0x00000100, CAPTMODE_TRIGGER_HW_CONTINUOUS = 0x00000200 } CAPTUREMODE; typedef struct S_IMAGE_FORMAT_INFO { INT nFormatID; /* Image format ID. */ UINT nWidth; /* Width. */ UINT nHeight; /* Height. */ INT nX0; /* Start position x. */ INT nY0; /* Start position Y. */ UINT nSupportedCaptureModes; /* Flag field with supported capture modes for this resolution (Bitmask of of CAPTUREMODE enumeration). */ UINT nBinningMode; /* Binning mode. */ UINT nSubsamplingMode; /* Subsampling mode. */ IS_CHAR strFormatName[64]; /* Format name. */ double dSensorScalerFactor; /* Sensor scaler factor. */ UINT nReserved[22]; } IMAGE_FORMAT_INFO; typedef struct S_IMAGE_FORMAT_LIST { UINT nSizeOfListEntry; /* Size of one list entry in byte. */ UINT nNumListElements; /* Number of list entries. */ UINT nReserved[4]; /* Reserved for future use. */ IMAGE_FORMAT_INFO FormatInfo[1]; /* First format entry. */ } IMAGE_FORMAT_LIST; IDSEXP is_FaceDetection (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_FDT_CAPABILITY_FLAGS { FDT_CAP_INVALID = 0, FDT_CAP_SUPPORTED = 0x00000001, /* Face detection supported. */ FDT_CAP_SEARCH_ANGLE = 0x00000002, /* Search angle. */ FDT_CAP_SEARCH_AOI = 0x00000004, /* Search AOI. */ FDT_CAP_INFO_POSX = 0x00000010, /* Query horizontal position (center) of detected face. */ FDT_CAP_INFO_POSY = 0x00000020, /* Query vertical position(center) of detected face. */ FDT_CAP_INFO_WIDTH = 0x00000040, /* Query width of detected face. */ FDT_CAP_INFO_HEIGHT = 0x00000080, /* Query height of detected face. */ FDT_CAP_INFO_ANGLE = 0x00000100, /* Query angle of detected face. */ FDT_CAP_INFO_POSTURE = 0x00000200, /* Query posture of detected face. */ FDT_CAP_INFO_FACENUMBER = 0x00000400, /* Query number of detected faces. */ FDT_CAP_INFO_OVL = 0x00000800, /* Overlay: Mark the detected face in the image. */ FDT_CAP_INFO_NUM_OVL = 0x00001000, /* Overlay: Limit the maximum number of overlays in one image. */ FDT_CAP_INFO_OVL_LINEWIDTH = 0x00002000 /* Overlay line width. */ } FDT_CAPABILITY_FLAGS; typedef struct S_FDT_INFO_EL { INT nFacePosX; /* Start X position. */ INT nFacePosY; /* Start Y position. */ INT nFaceWidth; /* Face width. */ INT nFaceHeight; /* Face height. */ INT nAngle; /* Face Angle (0...360° clockwise, 0° at twelve o'clock position. -1: undefined ). */ UINT nPosture; /* Face posture. */ UEYETIME TimestampSystem; /* System time stamp (device query time) . */ UINT64 nReserved; /* Reserved for future use. */ UINT nReserved2[4]; /* Reserved for future use. */ } FDT_INFO_EL; typedef struct S_FDT_INFO_LIST { UINT nSizeOfListEntry; /* Size of one list entry in byte(in). */ UINT nNumDetectedFaces; /* Number of detected faces(out). */ UINT nNumListElements; /* Number of list elements(in). */ UINT nReserved[4]; /* reserved for future use(out). */ FDT_INFO_EL FaceEntry[1]; /* First face entry. */ } FDT_INFO_LIST; typedef enum E_FDT_CMD { FDT_CMD_GET_CAPABILITIES = 0, /* Get the capabilities for face detection. */ FDT_CMD_SET_DISABLE = 1, /* Disable face detection. */ FDT_CMD_SET_ENABLE = 2, /* Enable face detection. */ FDT_CMD_SET_SEARCH_ANGLE = 3, /* Set the search angle. */ FDT_CMD_GET_SEARCH_ANGLE = 4, /* Get the search angle parameter. */ FDT_CMD_SET_SEARCH_ANGLE_ENABLE = 5, /* Enable search angle. */ FDT_CMD_SET_SEARCH_ANGLE_DISABLE = 6, /* Enable search angle. */ FDT_CMD_GET_SEARCH_ANGLE_ENABLE = 7, /* Get the current setting of search angle enable. */ FDT_CMD_SET_SEARCH_AOI = 8, /* Set the search AOI. */ FDT_CMD_GET_SEARCH_AOI = 9, /* Get the search AOI. */ FDT_CMD_GET_FACE_LIST = 10, /* Get a list with detected faces. */ FDT_CMD_GET_NUMBER_FACES = 11, /* Get the number of detected faces. */ FDT_CMD_SET_SUSPEND = 12, /* Keep the face detection result of that moment. */ FDT_CMD_SET_RESUME = 13, /* Continue with the face detection. */ FDT_CMD_GET_MAX_NUM_FACES = 14, /* Get the maximum number of faces that can be detected once. */ FDT_CMD_SET_INFO_MAX_NUM_OVL = 15, /* Set the maximum number of overlays displayed. */ FDT_CMD_GET_INFO_MAX_NUM_OVL = 16, /* Get the setting 'maximum number of overlays displayed'. */ FDT_CMD_SET_INFO_OVL_LINE_WIDTH = 17, /* Set the overlay line width. */ FDT_CMD_GET_INFO_OVL_LINE_WIDTH = 18, /* Get the overlay line width. */ FDT_CMD_GET_ENABLE = 19, /* Face detection enabled?. */ FDT_CMD_GET_SUSPEND = 20, /* Face detection suspended?. */ FDT_CMD_GET_HORIZONTAL_RESOLUTION = 21, /* Horizontal resolution of face detection. */ FDT_CMD_GET_VERTICAL_RESOLUTION = 22 /* Vertical resolution of face detection. */ } FDT_CMD; typedef struct { INT s32X; INT s32Y; } IS_POINT_2D; typedef struct { INT s32Width; INT s32Height; } IS_SIZE_2D; typedef struct { INT s32X; INT s32Y; INT s32Width; INT s32Height; } IS_RECT; IDSEXP is_Focus (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_FOCUS_CAPABILITY_FLAGS { FOC_CAP_INVALID = 0, FOC_CAP_AUTOFOCUS_SUPPORTED = 0x00000001, /* Auto focus supported. */ FOC_CAP_MANUAL_SUPPORTED = 0x00000002, /* Manual focus supported. */ FOC_CAP_GET_DISTANCE = 0x00000004, /* Support for query the distance of the focused object. */ FOC_CAP_SET_AUTOFOCUS_RANGE = 0x00000008, /* Support for setting focus ranges. */ FOC_CAP_AUTOFOCUS_FDT_AOI = 0x00000010, /* Use of face detection AOI for autofocus supported. */ FOC_CAP_AUTOFOCUS_ZONE = 0x00000020, FOC_CAP_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM = 0x00000040, /* Use of sharpness calculation algorithm for autofocus supported. */ FOC_CAP_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM = 0x00000080, /* Use of peak search algorithm for autofocus once supported. */ FOC_CAP_AUTOFOCUS_AOI = 0x00000100, /* Use of aoi for autofocus supported. */ FOC_CAP_AUTOFOCUS_LIMIT = 0x00000200, /* Use of limit for autofocus supported. */ FOC_CAP_AUTOFOCUS_LENS_RESPONSE_TIME = 0x00000400, /* Use of lens response time for autofocus supported. */ FOC_CAP_AUTOFOCUS_HYSTERESIS = 0x00000800, /* Use of hysteresis for autofocus supported. */ FOC_CAP_AUTOFOCUS_CALLBACK = 0x00001000 /* Use of callback for autofocus supported. */ } FOCUS_CAPABILITY_FLAGS; typedef enum E_FOCUS_RANGE { FOC_RANGE_NORMAL = 0x00000001, /* Normal focus range(without Macro). */ FOC_RANGE_ALLRANGE = 0x00000002, /* Allrange (macro to Infinity). */ FOC_RANGE_MACRO = 0x00000004 /* Macro (only macro). */ } FOCUS_RANGE; typedef enum E_FOCUS_STATUS { FOC_STATUS_UNDEFINED = 0x00000000, /* Initial state when auto focus is active */ FOC_STATUS_ERROR = 0x00000001, /* Focus error has occurred */ FOC_STATUS_FOCUSED = 0x00000002, /* Lens has been focused */ FOC_STATUS_FOCUSING = 0x00000004, /* Lens is being focused */ FOC_STATUS_TIMEOUT = 0x00000008, /* Focus timout has occurred */ FOC_STATUS_CANCEL = 0x00000010 /* Focus has been canceled */ } FOCUS_STATUS; typedef enum E_FOCUS_ZONE_WEIGHT { FOC_ZONE_WEIGHT_DISABLE = 0, FOC_ZONE_WEIGHT_WEAK = 0x0021, FOC_ZONE_WEIGHT_MIDDLE = 0x0032, FOC_ZONE_WEIGHT_STRONG = 0x0042 } FOCUS_ZONE_WEIGHT; /*! * \brief Enumeration of presets for the focus measurement window */ typedef enum E_FOCUS_ZONE_AOI_PRESET { FOC_ZONE_AOI_PRESET_CENTER = 0, FOC_ZONE_AOI_PRESET_UPPER_LEFT = 0x0001, FOC_ZONE_AOI_PRESET_BOTTOM_LEFT = 0x0002, FOC_ZONE_AOI_PRESET_UPPER_RIGHT = 0x0004, FOC_ZONE_AOI_PRESET_BOTTOM_RIGHT = 0x0008, FOC_ZONE_AOI_PRESET_UPPER_CENTER = 0x0010, FOC_ZONE_AOI_PRESET_BOTTOM_CENTER = 0x0020, FOC_ZONE_AOI_PRESET_CENTER_LEFT = 0x0040, FOC_ZONE_AOI_PRESET_CENTER_RIGHT = 0x0080 } FOCUS_ZONE_AOI_PRESET; typedef enum E_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM { AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_TENENGRAD = 0x01, AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE = 0x02, AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_HISTOGRAM_VARIANCE = 0x04 } AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM; typedef enum E_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM { AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_GOLDEN_RATIO_SEARCH = 0x01, AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_HILL_CLIMBING_SEARCH = 0x02, AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_GLOBAL_SEARCH = 0x04, AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_FULL_SCAN = 0x08 } AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM; typedef enum E_AUTOFOCUS_AOI_WEIGHT { AUTOFOCUS_AOI_WEIGHT_MIDDLE = 0x0042 } AUTOFOCUS_AOI_WEIGHT; typedef struct S_AUTOFOCUS_AOI { UINT uNumberAOI; IS_RECT rcAOI; AUTOFOCUS_AOI_WEIGHT eWeight; } AUTOFOCUS_AOI; typedef enum E_AUTOFOCUS_AOI_PRESET { AUTOFOCUS_AOI_PRESET_CENTER = 0x01 } AUTOFOCUS_AOI_PRESET; typedef struct S_AUTOFOCUS_LIMIT { INT sMin; INT sMax; } AUTOFOCUS_LIMIT; typedef void(__cdecl *IS_AUTOFOCUS_CALLBACK_FUNC)(UINT, INT, void*); typedef struct S_AUTOFOCUS_CALLBACK { IS_AUTOFOCUS_CALLBACK_FUNC pfFunc; void* pContext; } AUTOFOCUS_CALLBACK; typedef enum E_FOCUS_CMD { FOC_CMD_GET_CAPABILITIES = 0, /* Get focus capabilities. */ FOC_CMD_SET_DISABLE_AUTOFOCUS = 1, /* Disable autofocus. */ FOC_CMD_SET_ENABLE_AUTOFOCUS = 2, /* Enable autofocus. */ FOC_CMD_GET_AUTOFOCUS_ENABLE = 3, /* Autofocus enabled?. */ FOC_CMD_SET_AUTOFOCUS_RANGE = 4, /* Preset autofocus range. */ FOC_CMD_GET_AUTOFOCUS_RANGE = 5, /* Get preset of autofocus range. */ FOC_CMD_GET_DISTANCE = 6, /* Get distance to focused object. */ FOC_CMD_SET_MANUAL_FOCUS = 7, /* Set manual focus. */ FOC_CMD_GET_MANUAL_FOCUS = 8, /* Get the value for manual focus. */ FOC_CMD_GET_MANUAL_FOCUS_MIN = 9, /* Get the minimum manual focus value. */ FOC_CMD_GET_MANUAL_FOCUS_MAX = 10, /* Get the maximum manual focus value. */ FOC_CMD_GET_MANUAL_FOCUS_INC = 11, /* Get the increment of the manual focus value. */ FOC_CMD_SET_ENABLE_AF_FDT_AOI = 12, /* Enable face detection AOI use for autofocus. */ FOC_CMD_SET_DISABLE_AF_FDT_AOI = 13, /* Disable face detection AOI use for autofocus */ FOC_CMD_GET_AF_FDT_AOI_ENABLE = 14, /* Use autofocus FDT AOI? */ FOC_CMD_SET_ENABLE_AUTOFOCUS_ONCE = 15, /* Enable autofocus once */ FOC_CMD_GET_AUTOFOCUS_STATUS = 16, /* Get the autofocus status */ FOC_CMD_SET_AUTOFOCUS_ZONE_AOI = 17, /* Set the focus measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_AOI = 18, /* Get the focus measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_AOI_DEFAULT = 19, /* Get the default focus measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_POS_MIN = 20, /* Get the minimal position of the measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_POS_MAX = 21, /* Get the maximal position of the measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_POS_INC = 22, /* Get the incrementation for the positions of the measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_SIZE_MIN = 23, /* Get the minimal size of the measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_SIZE_MAX = 24, /* Get the maxiaml size of the measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_SIZE_INC = 25, /* Get the incrementation for the size of the measurement window */ FOC_CMD_SET_AUTOFOCUS_ZONE_WEIGHT = 26, /* Set the weight for the different zones */ FOC_CMD_GET_AUTOFOCUS_ZONE_WEIGHT = 27, /* Get the weight for the different zones */ FOC_CMD_GET_AUTOFOCUS_ZONE_WEIGHT_COUNT = 28, /* Get the zone count */ FOC_CMD_GET_AUTOFOCUS_ZONE_WEIGHT_DEFAULT = 29, /* Get the default weight for the different zones */ FOC_CMD_SET_AUTOFOCUS_ZONE_AOI_PRESET = 30, /* Set the focus measurement window specified by a preset /see FOCUS_ZONE_AOI_PRESET */ FOC_CMD_GET_AUTOFOCUS_ZONE_AOI_PRESET = 31, /* Get the focus measurement window specified by a preset */ FOC_CMD_GET_AUTOFOCUS_ZONE_AOI_PRESET_DEFAULT = 32, /* Get the default focus measurement window */ FOC_CMD_GET_AUTOFOCUS_ZONE_ARBITRARY_AOI_SUPPORTED = 33, /* Returns if an arbritrary focus measurement window is supported */ FOC_CMD_SET_MANUAL_FOCUS_RELATIVE = 34, /* Set manual focus relative. */ FOC_CMD_GET_AUTOFOCUS_SUPPORTED_SHARPNESS_CALCULATION_ALGORITHM = 35, /* Get autofocus supported sharpness calculation algorithm */ FOC_CMD_SET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM = 36, /* Set autofocus sharpness calculation algorithm */ FOC_CMD_GET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM = 37, /* Get autofocus sharpness calculation algorithm */ FOC_CMD_GET_AUTOFOCUS_SHARPNESS_CALCULATION_ALGORITHM_DEFAULT = 38, /* Get autofocus default sharpness calculation algorithm */ FOC_CMD_GET_AUTOFOCUS_ONCE_SUPPORTED_PEAK_SEARCH_ALGORITHM = 39, /* Get autofocus once supported peak search algorithm */ FOC_CMD_SET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM = 40, /* Set autofocus once peak search algorithm */ FOC_CMD_GET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM = 41, /* Get autofocus once peak search algorithm */ FOC_CMD_GET_AUTOFOCUS_ONCE_PEAK_SEARCH_ALGORITHM_DEFAULT = 42, /* Get autofocus once default peak search algorithm */ FOC_CMD_GET_AUTOFOCUS_NUMBER_OF_SUPPORTED_AOIS = 43, /* Get autofocus number of supported measurement windows */ FOC_CMD_SET_AUTOFOCUS_AOI = 44, /* Set autofocus measurement window */ FOC_CMD_GET_AUTOFOCUS_AOI = 45, /* Get autofocus measurement window */ FOC_CMD_GET_AUTOFOCUS_AOI_SIZE_MIN = 47, /* Get the minimal size of the measurement window */ FOC_CMD_SET_AUTOFOCUS_AOI_PRESET = 48, /* Set the autofocus measurement window specified by a preset */ FOC_CMD_SET_AUTOFOCUS_LIMIT = 49, /* Set autofocus limit. */ FOC_CMD_GET_AUTOFOCUS_LIMIT = 50, /* Get autofocus limit. */ FOC_CMD_GET_AUTOFOCUS_LIMIT_DEFAULT = 51, /* Get autofocus default */ FOC_CMD_SET_AUTOFOCUS_LENS_RESPONSE_TIME = 52, /* Set autofocus lens response time */ FOC_CMD_GET_AUTOFOCUS_LENS_RESPONSE_TIME = 53, /* Get autofocus lens reponse time */ FOC_CMD_GET_AUTOFOCUS_LENS_RESPONSE_TIME_DEFAULT = 54, /* Get autofocus default lens reponse time */ FOC_CMD_SET_AUTOFOCUS_HYSTERESIS = 55, /* Set autofocus hysteresis */ FOC_CMD_GET_AUTOFOCUS_HYSTERESIS = 56, /* Get autofocus hysteresis */ FOC_CMD_GET_AUTOFOCUS_HYSTERESIS_DEFAULT = 57, /* Get autofocus default hysteresis */ FOC_CMD_SET_AUTOFOCUS_CALLBACK = 58 /* Set autofocus callback */ } FOCUS_CMD; IDSEXP is_ImageStabilization(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); // image stabilization capability flags typedef enum E_IMGSTAB_CAPABILITY_FLAGS { IMGSTAB_CAP_INVALID = 0, IMGSTAB_CAP_IMAGE_STABILIZATION_SUPPORTED = 0x00000001 /* Image stabilization supported. */ } IMGSTAB_CAPABILITY_FLAGS; typedef enum E_IMGSTAB_CMD { IMGSTAB_CMD_GET_CAPABILITIES = 0, /* Get the capabilities for image stabilization. */ IMGSTAB_CMD_SET_DISABLE = 1, /* Disable image stabilization. */ IMGSTAB_CMD_SET_ENABLE = 2, /* Enable image stabilization. */ IMGSTAB_CMD_GET_ENABLE = 3 /* Image stabilization enabled? */ } IMGSTAB_CMD; // New functions and defines for 3.61 (uEye XS) IDSEXP is_ScenePreset(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_SCENE_CMD { SCENE_CMD_GET_SUPPORTED_PRESETS = 1,/* Get the supported scene presets */ SCENE_CMD_SET_PRESET = 2,/* Set the scene preset */ SCENE_CMD_GET_PRESET = 3,/* Get the current sensor scene preset */ SCENE_CMD_GET_DEFAULT_PRESET = 4 /* Get the default sensor scene preset */ } SCENE_CMD; typedef enum E_SCENE_PRESET { SCENE_INVALID = 0, SCENE_SENSOR_AUTOMATIC = 0x00000001, SCENE_SENSOR_PORTRAIT = 0x00000002, SCENE_SENSOR_SUNNY = 0x00000004, SCENE_SENSOR_ENTERTAINMENT= 0x00000008, SCENE_SENSOR_NIGHT = 0x00000010, SCENE_SENSOR_SPORTS = 0x00000040, SCENE_SENSOR_LANDSCAPE = 0x00000080 } SCENE_PRESET; IDSEXP is_Zoom (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_ZOOM_CMD { ZOOM_CMD_GET_CAPABILITIES = 0, /* Get the zoom capabilities. */ ZOOM_CMD_DIGITAL_GET_NUM_LIST_ENTRIES = 1, /* Get the number of list entries. */ ZOOM_CMD_DIGITAL_GET_LIST = 2, /* Get a list of supported zoom factors. */ ZOOM_CMD_DIGITAL_SET_VALUE = 3, /* Set the digital zoom factor zoom factors. */ ZOOM_CMD_DIGITAL_GET_VALUE = 4, /* Get a current digital zoom factor. */ ZOOM_CMD_DIGITAL_GET_VALUE_RANGE = 5, /* Get the digital zoom factor range. */ ZOOM_CMD_DIGITAL_GET_VALUE_DEFAULT = 6 /* Get the default digital zoom factor. */ } ZOOM_CMD; typedef enum E_ZOOM_CAPABILITY_FLAGS { ZOOM_CAP_INVALID = 0, ZOOM_CAP_DIGITAL_ZOOM = 0x00001 } ZOOM_CAPABILITY_FLAGS; IDSEXP is_Sharpness (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_SHARPNESS_CMD { SHARPNESS_CMD_GET_CAPABILITIES = 0, /* Get the sharpness capabilities */ SHARPNESS_CMD_GET_VALUE = 1, /* Get the current sharpness value */ SHARPNESS_CMD_GET_MIN_VALUE = 2, /* Get the minimum sharpness value */ SHARPNESS_CMD_GET_MAX_VALUE = 3, /* Get the maximum sharpness value */ SHARPNESS_CMD_GET_INCREMENT = 4, /* Get the sharpness increment */ SHARPNESS_CMD_GET_DEFAULT_VALUE = 5, /* Get the default sharpness value */ SHARPNESS_CMD_SET_VALUE = 6 /* Set the sharpness value */ } SHARPNESS_CMD; typedef enum E_SHARPNESS_CAPABILITY_FLAGS { SHARPNESS_CAP_INVALID = 0x0000, SHARPNESS_CAP_SHARPNESS_SUPPORTED = 0x0001 } SHARPNESS_CAPABILITY_FLAGS; IDSEXP is_Saturation (HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_SATURATION_CMD { SATURATION_CMD_GET_CAPABILITIES = 0, /* Get the saturation capabilities */ SATURATION_CMD_GET_VALUE = 1, /* Get the current saturation value */ SATURATION_CMD_GET_MIN_VALUE = 2, /* Get the minimum saturation value */ SATURATION_CMD_GET_MAX_VALUE = 3, /* Get the maximum saturation value */ SATURATION_CMD_GET_INCREMENT = 4, /* Get the saturation increment */ SATURATION_CMD_GET_DEFAULT_VALUE = 5, /* Get the default saturation value */ SATURATION_CMD_SET_VALUE = 6 /* Set the saturation value */ } SATURATION_CMD; typedef enum E_SATURATION_CAPABILITY_FLAGS { SATURATION_CAP_INVALID = 0x0000, SATURATION_CAP_SATURATION_SUPPORTED = 0x0001 } SATURATION_CAPABILITY_FLAGS; // Trigger debounce modes typedef enum E_TRIGGER_DEBOUNCE_MODE { TRIGGER_DEBOUNCE_MODE_NONE = 0x0000, TRIGGER_DEBOUNCE_MODE_FALLING_EDGE = 0x0001, TRIGGER_DEBOUNCE_MODE_RISING_EDGE = 0x0002, TRIGGER_DEBOUNCE_MODE_BOTH_EDGES = 0x0004, TRIGGER_DEBOUNCE_MODE_AUTOMATIC = 0x0008 } TRIGGER_DEBOUNCE_MODE; // Trigger debounce commands typedef enum E_TRIGGER_DEBOUNCE_CMD { TRIGGER_DEBOUNCE_CMD_SET_MODE = 0, /* Set a new trigger debounce mode */ TRIGGER_DEBOUNCE_CMD_SET_DELAY_TIME = 1, /* Set a new trigger debounce delay time */ TRIGGER_DEBOUNCE_CMD_GET_SUPPORTED_MODES = 2, /* Get the supported modes */ TRIGGER_DEBOUNCE_CMD_GET_MODE = 3, /* Get the current trigger debounce mode */ TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME = 4, /* Get the current trigger debounce delay time */ TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MIN = 5, /* Get the minimum value for the trigger debounce delay time */ TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_MAX = 6, /* Get the maximum value for the trigger debounce delay time */ TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_INC = 7, /* Get the increment of the trigger debounce delay time */ TRIGGER_DEBOUNCE_CMD_GET_MODE_DEFAULT = 8, /* Get the default trigger debounce mode */ TRIGGER_DEBOUNCE_CMD_GET_DELAY_TIME_DEFAULT = 9 /* Get the default trigger debounce delay time */ } TRIGGER_DEBOUNCE_CMD; IDSEXP is_TriggerDebounce(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef enum E_RGB_COLOR_MODELS { RGB_COLOR_MODEL_SRGB_D50 = 0x0001, RGB_COLOR_MODEL_SRGB_D65 = 0x0002, RGB_COLOR_MODEL_CIE_RGB_E = 0x0004, RGB_COLOR_MODEL_ECI_RGB_D50 = 0x0008, RGB_COLOR_MODEL_ADOBE_RGB_D65 = 0x0010 } RGB_COLOR_MODELS; typedef enum E_LENS_SHADING_MODELS { LSC_MODEL_AGL = 0x0001, LSC_MODEL_TL84 = 0x0002, LSC_MODEL_D50 = 0x0004, LSC_MODEL_D65 = 0x0008 } LENS_SHADING_MODELS; typedef enum E_COLOR_TEMPERATURE_CMD { COLOR_TEMPERATURE_CMD_SET_TEMPERATURE = 0, /* Set a new color temperature */ COLOR_TEMPERATURE_CMD_SET_RGB_COLOR_MODEL = 1, /* Set a new RGB color model */ COLOR_TEMPERATURE_CMD_GET_SUPPORTED_RGB_COLOR_MODELS = 2, /* Get the supported RGB color models */ COLOR_TEMPERATURE_CMD_GET_TEMPERATURE = 3, /* Get the current color temperature */ COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL = 4, /* Get the current RGB color model */ COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MIN = 5, /* Get the minimum value for the color temperature */ COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_MAX = 6, /* Get the maximum value for the color temperature */ COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_INC = 7, /* Get the increment of the color temperature */ COLOR_TEMPERATURE_CMD_GET_TEMPERATURE_DEFAULT = 8, /* Get the default color temperature */ COLOR_TEMPERATURE_CMD_GET_RGB_COLOR_MODEL_DEFAULT = 9, /* Get the default RGB color model */ COLOR_TEMPERATURE_CMD_SET_LENS_SHADING_MODEL = 10, /* Set a new lens shading model */ COLOR_TEMPERATURE_CMD_GET_LENS_SHADING_MODEL = 11, /* Get the current lens shading model */ COLOR_TEMPERATURE_CMD_GET_LENS_SHADING_MODEL_SUPPORTED = 12, /* Get the supported lens shading models */ COLOR_TEMPERATURE_CMD_GET_LENS_SHADING_MODEL_DEFAULT = 13 /* Get the default lens shading model */ } COLOR_TEMPERATURE_CMD; IDSEXP is_ColorTemperature(HIDS hCam, UINT nCommand, void *pParam, UINT nSizeOfParam); typedef struct _OPENGL_DISPLAY { int nWindowID; void *pDisplay; } OPENGL_DISPLAY; IDSEXP is_DirectRenderer(HIDS hCam, UINT nMode, void *pParam, UINT SizeOfParam); IDSEXP is_HotPixel(HIDS hCam, UINT nMode, void *pParam, UINT SizeOfParam); /*! * \brief Parameters of an AOI used in the AOI sequence mode */ typedef struct { INT s32AOIIndex; INT s32NumberOfCycleRepetitions; INT s32X; INT s32Y; double dblExposure; INT s32Gain; INT s32BinningMode; INT s32SubsamplingMode; INT s32DetachImageParameters; double dblScalerFactor; INT s32InUse; BYTE byReserved[60]; } AOI_SEQUENCE_PARAMS; IDSEXP is_AOI(HIDS hCam, UINT nCommand, void *pParam, UINT SizeOfParam); /*! * \brief Data type for 32-bit unsigned int value ranges. * * \since uEye SDK 3.80. */ typedef struct S_RANGE_OF_VALUES_U32 { UINT u32Minimum; /*!< \brief Minimum value. */ UINT u32Maximum; /*!< \brief Maximum value, not considered Infinite. */ UINT u32Increment; /*!< \brief Increment value. */ UINT u32Default; /*!< \brief Default value. */ UINT u32Infinite; /*!< \brief Infinite code, where applicable. */ } RANGE_OF_VALUES_U32; /*! * \brief Enumeration of transfer engine's capability flags. * * \sa is_Transfer, TRANSFER_CMD_QUERY_CAPABILITIES. * * \note to come */ typedef enum E_TRANSFER_CAPABILITY_FLAGS { /*! * \brief Capability flag: 'Image delay' setting supported. */ TRANSFER_CAP_IMAGEDELAY = 0x01, /*! * \brief Capability flag: 'Packet clock' setting supported. */ TRANSFER_CAP_PACKETINTERVAL = 0x20, } TRANSFER_CAPABILITY_FLAGS; /*! * \brief Enumeration of commands supported by the transfer engine access function. * * \sa is_Transfer. * * \note to come */ typedef enum E_TRANSFER_CMD { /*! * \brief Query the transfer engine capabilities. * Type of value: unsigned int bitmask, 32-bit. * \sa TRANSFER_CAPABILITY_FLAGS. */ TRANSFER_CMD_QUERY_CAPABILITIES = 0, /*! * \brief Set 'image delay' in us units. * Type of value: unsigned int, 32-bit. */ TRANSFER_CMD_SET_IMAGEDELAY_US = 1000, /*! * \brief Set 'packet clock' in us units. * Type of value: unsigned int, 32-bit. */ TRANSFER_CMD_SET_PACKETINTERVAL_US = 1005, /*! * \brief Get 'image delay' in us units. * Type of value: unsigned int, 32-bit. */ TRANSFER_CMD_GET_IMAGEDELAY_US = 2000, /*! * \brief Get 'packet clock' in us units. * Type of value: unsigned int, 32-bit. */ TRANSFER_CMD_GET_PACKETINTERVAL_US = 2005, /*! * \brief Get range of values for 'image delay'. * Type of value: RANGE_OF_VALUES_U32, size of RANGE_OF_VALUES_U32. */ TRANSFER_CMD_GETRANGE_IMAGEDELAY_US = 3000, /*! * \brief Get range of values for 'packet clock'. * Type of value: RANGE_OF_VALUES_U32, size of RANGE_OF_VALUES_U32. */ TRANSFER_CMD_GETRANGE_PACKETINTERVAL_US = 3005, /*! * \brief Sets Image Destination \see TRANSFER_MODE * Type of value: TRANSFER_MODE, size of TRANSFER_MODE. */ TRANSFER_CMD_SET_IMAGE_DESTINATION = 5000, /*! * \brief Retrieves currently set Image Destination \see TRANSFER_MODE * Type of value: TRANSFER_MODE, size of TRANSFER_MODE. */ TRANSFER_CMD_GET_IMAGE_DESTINATION = 5001, /*! * \brief Retrieves possible Image Destinations \see TRANSFER_MODE * Type of value: TRANSFER_MODE, size of TRANSFER_MODE. */ TRANSFER_CMD_GET_IMAGE_DESTINATION_CAPABILITIES = 5002 } TRANSFER_CMD; typedef enum E_TRANSFER_TARGET { IS_TRANSFER_DESTINATION_DEVICE_MEMORY = 1, IS_TRANSFER_DESTINATION_USER_MEMORY = 2 } TRANSFER_TARGET; /*! * \brief Generic interface to the transfer engine setup. * * \param hCam valid device handle. * \param nCommand code, indicates requested access and accessed value, one from \ref TRANSFER_CMD enumeration. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code * * \note For 'set' commands: If the resulting transfer engine setup differs from the current state the transfer param * is immediately written to the device. * \note For 'set' commands: The function forces the value to the next lower catch according to the related increment. */ IDSEXP is_Transfer(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /** * \defgroup IDS_BootBoost IDS Boot Boost */ /**@{*/ /*! * \brief Definition of the boot boost id * * \since uEye SDK 3.90. */ typedef BYTE IS_BOOTBOOST_ID; #define IS_BOOTBOOST_ID_MIN 1 /*!< \brief minimum valid id */ #define IS_BOOTBOOST_ID_MAX 254 /*!< \brief maximum valid id */ #define IS_BOOTBOOST_ID_NONE 0 /*!< \brief special value: no id's */ #define IS_BOOTBOOST_ID_ALL 255 /*!< \brief special value: all id's */ /*! \brief Default wait timeout for the boot boost 'wait operations': * \li IS_BOOTBOOST_CMD_ENABLE_AND_WAIT * \li IS_BOOTBOOST_CMD_DISABLE_AND_WAIT * \li IS_BOOTBOOST_CMD_WAIT * * \since uEye SDK 4.50. */ #define IS_BOOTBOOST_DEFAULT_WAIT_TIMEOUT_SEC 60 /*! * \brief Definition of the boot boost id list object * * \since uEye SDK 3.90. */ typedef struct S_IS_BOOTBOOST_IDLIST { /*! \brief The number of listed elements. */ DWORD u32NumberOfEntries; /*! \brief The list. */ IS_BOOTBOOST_ID aList[1]; } IS_BOOTBOOST_IDLIST; /*! \brief Size of id list header */ #define IS_BOOTBOOST_IDLIST_HEADERSIZE (sizeof(DWORD)) /*! \brief Size of id list element */ #define IS_BOOTBOOST_IDLIST_ELEMENTSIZE (sizeof(IS_BOOTBOOST_ID)) /*! * \brief Enumeration of commands supported by the boot boost access function \ref is_BootBoost. */ typedef enum E_IS_BOOTBOOST_CMD { /*! * \brief Enable BootBoost. * Type of data: no data. */ IS_BOOTBOOST_CMD_ENABLE = 0x00010001, /*! * \brief Enable BootBoost and wait until all relevant devices are boot-boosted. * Type of data: Optional UINT timeout value in seconds. * * \since uEye SDK 4.50. * \note If the caller does not specify a timeout, * the function will default to IS_BOOTBOOST_DEFAULT_WAIT_TIMEOUT_SEC. */ IS_BOOTBOOST_CMD_ENABLE_AND_WAIT = 0x00010101, /*! * \brief Disable BootBoost. * Type of data: no data. */ IS_BOOTBOOST_CMD_DISABLE = 0x00010011, /*! * \brief Disable BootBoost and wait until all relevant devices are non-boot-boosted. * Type of data: Optional UINT timeout value in seconds. * * \since uEye SDK 4.50. * \note If the caller does not specify a timeout, * the function will default to IS_BOOTBOOST_DEFAULT_WAIT_TIMEOUT_SEC. */ IS_BOOTBOOST_CMD_DISABLE_AND_WAIT = 0x00010111, /*! * \brief Wait for all relevant devices to apply the configured boot-boost mode (enabled or disabled). * Type of data: Optional UINT timeout value in seconds. * * \since uEye SDK 4.50. * \note If the caller does not specify a timeout, * the function will default to IS_BOOTBOOST_DEFAULT_WAIT_TIMEOUT_SEC. */ IS_BOOTBOOST_CMD_WAIT = 0x00010100, /*! * \brief Query enabled state of BootBoost. * Type of data: DWORD. */ IS_BOOTBOOST_CMD_GET_ENABLED = 0x20010021, /*! * \brief Add an id to the id list. * Type of data: \ref IS_BOOTBOOST_ID. */ IS_BOOTBOOST_CMD_ADD_ID = 0x10100001, /*! * \brief Replace id list. * Type of data: \ref IS_BOOTBOOST_IDLIST. */ IS_BOOTBOOST_CMD_SET_IDLIST = 0x10100005, /*! * \brief Remove an id from the id list. * Type of data: \ref IS_BOOTBOOST_ID. */ IS_BOOTBOOST_CMD_REMOVE_ID = 0x10100011, /*! * \brief Clear id list. * Type of data: no data. */ IS_BOOTBOOST_CMD_CLEAR_IDLIST = 0x00100015, /*! * \brief Query id list. * Type of data: \ref IS_BOOTBOOST_IDLIST. */ IS_BOOTBOOST_CMD_GET_IDLIST = 0x30100021, /*! * \brief Query the number of listed id's. * Type of data: \ref DWORD. */ IS_BOOTBOOST_CMD_GET_IDLIST_SIZE = 0x20100022, } IS_BOOTBOOST_CMD; /*! * \brief Generic interface to the boot boost functionality. * * \param hCam currently not used / ignored, passing 0 recommended * \param nCommand code, indicates requested access and accessed parameter, one of \ref BOOTBOOST_CMD enumeration. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code * * \since uEye SDK 3.90. * * \note For the reason of your application's compatibility to future extensions * it is strongly recommended to pass the value 0 for hCam. */ IDSEXP is_BootBoost(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /** @} */ // end of group IDS_BootBoost /*! * \brief Enumeration of commands supported by the device feature function \ref is_DeviceFeature. */ typedef enum E_DEVICE_FEATURE_CMD { IS_DEVICE_FEATURE_CMD_GET_SUPPORTED_FEATURES = 1, IS_DEVICE_FEATURE_CMD_SET_LINESCAN_MODE = 2, IS_DEVICE_FEATURE_CMD_GET_LINESCAN_MODE = 3, IS_DEVICE_FEATURE_CMD_SET_LINESCAN_NUMBER = 4, IS_DEVICE_FEATURE_CMD_GET_LINESCAN_NUMBER = 5, IS_DEVICE_FEATURE_CMD_SET_SHUTTER_MODE = 6, IS_DEVICE_FEATURE_CMD_GET_SHUTTER_MODE = 7, IS_DEVICE_FEATURE_CMD_SET_PREFER_XS_HS_MODE = 8, IS_DEVICE_FEATURE_CMD_GET_PREFER_XS_HS_MODE = 9, IS_DEVICE_FEATURE_CMD_GET_DEFAULT_PREFER_XS_HS_MODE = 10, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_DEFAULT = 11, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE = 12, IS_DEVICE_FEATURE_CMD_SET_LOG_MODE = 13, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE_DEFAULT = 14, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE_RANGE = 15, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_VALUE = 16, IS_DEVICE_FEATURE_CMD_SET_LOG_MODE_MANUAL_VALUE = 17, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN_DEFAULT = 18, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN_RANGE = 19, IS_DEVICE_FEATURE_CMD_GET_LOG_MODE_MANUAL_GAIN = 20, IS_DEVICE_FEATURE_CMD_SET_LOG_MODE_MANUAL_GAIN = 21, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_MODE_DEFAULT = 22, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_MODE = 23, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_MODE = 24, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_POSITION_DEFAULT = 25, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_POSITION_RANGE = 26, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_POSITION = 27, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_POSITION = 28, IS_DEVICE_FEATURE_CMD_GET_FPN_CORRECTION_MODE_DEFAULT = 29, IS_DEVICE_FEATURE_CMD_GET_FPN_CORRECTION_MODE = 30, IS_DEVICE_FEATURE_CMD_SET_FPN_CORRECTION_MODE = 31, IS_DEVICE_FEATURE_CMD_GET_SENSOR_SOURCE_GAIN_RANGE = 32, IS_DEVICE_FEATURE_CMD_GET_SENSOR_SOURCE_GAIN_DEFAULT = 33, IS_DEVICE_FEATURE_CMD_GET_SENSOR_SOURCE_GAIN = 34, IS_DEVICE_FEATURE_CMD_SET_SENSOR_SOURCE_GAIN = 35, IS_DEVICE_FEATURE_CMD_GET_BLACK_REFERENCE_MODE_DEFAULT = 36, IS_DEVICE_FEATURE_CMD_GET_BLACK_REFERENCE_MODE = 37, IS_DEVICE_FEATURE_CMD_SET_BLACK_REFERENCE_MODE = 38, IS_DEVICE_FEATURE_CMD_GET_ALLOW_RAW_WITH_LUT = 39, IS_DEVICE_FEATURE_CMD_SET_ALLOW_RAW_WITH_LUT = 40, IS_DEVICE_FEATURE_CMD_GET_SUPPORTED_SENSOR_BIT_DEPTHS = 41, IS_DEVICE_FEATURE_CMD_GET_SENSOR_BIT_DEPTH_DEFAULT = 42, IS_DEVICE_FEATURE_CMD_GET_SENSOR_BIT_DEPTH = 43, IS_DEVICE_FEATURE_CMD_SET_SENSOR_BIT_DEPTH = 44, IS_DEVICE_FEATURE_CMD_GET_TEMPERATURE = 45, IS_DEVICE_FEATURE_CMD_GET_JPEG_COMPRESSION = 46, IS_DEVICE_FEATURE_CMD_SET_JPEG_COMPRESSION = 47, IS_DEVICE_FEATURE_CMD_GET_JPEG_COMPRESSION_DEFAULT = 48, IS_DEVICE_FEATURE_CMD_GET_JPEG_COMPRESSION_RANGE = 49, IS_DEVICE_FEATURE_CMD_GET_NOISE_REDUCTION_MODE = 50, IS_DEVICE_FEATURE_CMD_SET_NOISE_REDUCTION_MODE = 51, IS_DEVICE_FEATURE_CMD_GET_NOISE_REDUCTION_MODE_DEFAULT = 52, IS_DEVICE_FEATURE_CMD_GET_TIMESTAMP_CONFIGURATION = 53, IS_DEVICE_FEATURE_CMD_SET_TIMESTAMP_CONFIGURATION = 54, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_DEFAULT = 55, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_NUMBER = 56, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT_LIST = 57, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_HEIGHT = 58, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_HEIGHT = 59, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_ADDITIONAL_POSITION_DEFAULT = 60, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_ADDITIONAL_POSITION_RANGE = 61, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_ADDITIONAL_POSITION = 62, IS_DEVICE_FEATURE_CMD_SET_VERTICAL_AOI_MERGE_ADDITIONAL_POSITION = 63, IS_DEVICE_FEATURE_CMD_GET_SENSOR_TEMPERATURE_NUMERICAL_VALUE = 64, IS_DEVICE_FEATURE_CMD_SET_IMAGE_EFFECT = 65, IS_DEVICE_FEATURE_CMD_GET_IMAGE_EFFECT = 66, IS_DEVICE_FEATURE_CMD_GET_IMAGE_EFFECT_DEFAULT = 67, IS_DEVICE_FEATURE_CMD_GET_EXTENDED_PIXELCLOCK_RANGE_ENABLE_DEFAULT = 68, IS_DEVICE_FEATURE_CMD_GET_EXTENDED_PIXELCLOCK_RANGE_ENABLE = 69, IS_DEVICE_FEATURE_CMD_SET_EXTENDED_PIXELCLOCK_RANGE_ENABLE = 70, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_SCOPE = 71, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_PARAMS = 72, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_SET_PARAMS = 73, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_MODE_DEFAULT = 74, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_GET_MODE = 75, IS_DEVICE_FEATURE_CMD_MULTI_INTEGRATION_SET_MODE = 76, IS_DEVICE_FEATURE_CMD_SET_I2C_TARGET = 77, IS_DEVICE_FEATURE_CMD_SET_WIDE_DYNAMIC_RANGE_MODE = 78, IS_DEVICE_FEATURE_CMD_GET_WIDE_DYNAMIC_RANGE_MODE = 79, IS_DEVICE_FEATURE_CMD_GET_WIDE_DYNAMIC_RANGE_MODE_DEFAULT = 80, IS_DEVICE_FEATURE_CMD_GET_SUPPORTED_BLACK_REFERENCE_MODES = 81, IS_DEVICE_FEATURE_CMD_SET_LEVEL_CONTROLLED_TRIGGER_INPUT_MODE = 82, IS_DEVICE_FEATURE_CMD_GET_LEVEL_CONTROLLED_TRIGGER_INPUT_MODE = 83, IS_DEVICE_FEATURE_CMD_GET_LEVEL_CONTROLLED_TRIGGER_INPUT_MODE_DEFAULT = 84, IS_DEVICE_FEATURE_CMD_GET_VERTICAL_AOI_MERGE_MODE_SUPPORTED_LINE_MODES = 85, IS_DEVICE_FEATURE_CMD_SET_REPEATED_START_CONDITION_I2C = 86, IS_DEVICE_FEATURE_CMD_GET_REPEATED_START_CONDITION_I2C = 87, IS_DEVICE_FEATURE_CMD_GET_REPEATED_START_CONDITION_I2C_DEFAULT = 88, IS_DEVICE_FEATURE_CMD_GET_TEMPERATURE_STATUS = 89, IS_DEVICE_FEATURE_CMD_GET_MEMORY_MODE_ENABLE = 90, IS_DEVICE_FEATURE_CMD_SET_MEMORY_MODE_ENABLE = 91, IS_DEVICE_FEATURE_CMD_GET_MEMORY_MODE_ENABLE_DEFAULT = 92, IS_DEVICE_FEATURE_CMD_93 = 93, IS_DEVICE_FEATURE_CMD_94 = 94, IS_DEVICE_FEATURE_CMD_95 = 95, IS_DEVICE_FEATURE_CMD_96 = 96, IS_DEVICE_FEATURE_CMD_GET_SUPPORTED_EXTERNAL_INTERFACES = 97, IS_DEVICE_FEATURE_CMD_GET_EXTERNAL_INTERFACE = 98, IS_DEVICE_FEATURE_CMD_SET_EXTERNAL_INTERFACE = 99, IS_DEVICE_FEATURE_CMD_EXTENDED_AWB_LIMITS_GET = 100, IS_DEVICE_FEATURE_CMD_EXTENDED_AWB_LIMITS_SET = 101, IS_DEVICE_FEATURE_CMD_GET_MEMORY_MODE_ENABLE_SUPPORTED = 102, IS_DEVICE_FEATURE_CMD_SET_SPI_TARGET = 103, IS_DEVICE_FEATURE_CMD_GET_FPN_CORRECTION_IS_CALIBRATED = 104, IS_DEVICE_FEATURE_CMD_SET_FPN_CORRECTION_DATA_LOADING = 105, IS_DEVICE_FEATURE_CMD_GET_FPN_CORRECTION_DATA_LOADING = 106, IS_DEVICE_FEATURE_CMD_GET_MEMORY_MODE_BUFFER_LIMIT = 107, IS_DEVICE_FEATURE_CMD_GET_MEMORY_MODE_BUFFER_LIMIT_DEFAULT = 108, IS_DEVICE_FEATURE_CMD_SET_MEMORY_MODE_BUFFER_LIMIT = 109, IS_DEVICE_FEATURE_CMD_GET_FPN_CORRECTION_DATA_LOADING_DEFAULT = 110, IS_DEVICE_FEATURE_CMD_GET_BLACKLEVEL_OFFSET_CORRECTION = 111, IS_DEVICE_FEATURE_CMD_SET_BLACKLEVEL_OFFSET_CORRECTION = 112, IS_DEVICE_FEATURE_CMD_GET_ALTERNATIVE_TRIGGER_MODE = 113, IS_DEVICE_FEATURE_CMD_SET_ALTERNATIVE_TRIGGER_MODE = 114 } DEVICE_FEATURE_CMD; /*! * \brief Enumeration of device feature capability flags. * * \sa is_DeviceFeature */ typedef enum E_DEVICE_FEATURE_MODE_CAPS { IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_ROLLING = 0x00000001, IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_GLOBAL = 0x00000002, IS_DEVICE_FEATURE_CAP_LINESCAN_MODE_FAST = 0x00000004, IS_DEVICE_FEATURE_CAP_LINESCAN_NUMBER = 0x00000008, IS_DEVICE_FEATURE_CAP_PREFER_XS_HS_MODE = 0x00000010, IS_DEVICE_FEATURE_CAP_LOG_MODE = 0x00000020, IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_ROLLING_GLOBAL_START = 0x00000040, IS_DEVICE_FEATURE_CAP_SHUTTER_MODE_GLOBAL_ALTERNATIVE_TIMING = 0x00000080, IS_DEVICE_FEATURE_CAP_VERTICAL_AOI_MERGE = 0x00000100, IS_DEVICE_FEATURE_CAP_FPN_CORRECTION = 0x00000200, IS_DEVICE_FEATURE_CAP_SENSOR_SOURCE_GAIN = 0x00000400, IS_DEVICE_FEATURE_CAP_BLACK_REFERENCE = 0x00000800, IS_DEVICE_FEATURE_CAP_SENSOR_BIT_DEPTH = 0x00001000, IS_DEVICE_FEATURE_CAP_TEMPERATURE = 0x00002000, IS_DEVICE_FEATURE_CAP_JPEG_COMPRESSION = 0x00004000, IS_DEVICE_FEATURE_CAP_NOISE_REDUCTION = 0x00008000, IS_DEVICE_FEATURE_CAP_TIMESTAMP_CONFIGURATION = 0x00010000, IS_DEVICE_FEATURE_CAP_IMAGE_EFFECT = 0x00020000, IS_DEVICE_FEATURE_CAP_EXTENDED_PIXELCLOCK_RANGE = 0x00040000, IS_DEVICE_FEATURE_CAP_MULTI_INTEGRATION = 0x00080000, IS_DEVICE_FEATURE_CAP_WIDE_DYNAMIC_RANGE = 0x00100000, IS_DEVICE_FEATURE_CAP_LEVEL_CONTROLLED_TRIGGER = 0x00200000, IS_DEVICE_FEATURE_CAP_REPEATED_START_CONDITION_I2C = 0x00400000, IS_DEVICE_FEATURE_CAP_TEMPERATURE_STATUS = 0x00800000, IS_DEVICE_FEATURE_CAP_MEMORY_MODE = 0x01000000, IS_DEVICE_FEATURE_CAP_SEND_EXTERNAL_INTERFACE_DATA = 0x02000000 } DEVICE_FEATURE_MODE_CAPS; /*! * \brief Enumeration of temperature states. * * \sa is_DeviceFeature */ typedef enum E_IS_TEMPERATURE_CONTROL_STATUS { TEMPERATURE_CONTROL_STATUS_NORMAL = 0, TEMPERATURE_CONTROL_STATUS_WARNING = 1, TEMPERATURE_CONTROL_STATUS_CRITICAL = 2 } IS_TEMPERATURE_CONTROL_STATUS; /*! * \brief Enumeration of Noise modes. * * \sa is_DeviceFeature */ typedef enum E_NOISE_REDUCTION_MODES { IS_NOISE_REDUCTION_OFF = 0, IS_NOISE_REDUCTION_ADAPTIVE = 1 } NOISE_REDUCTION_MODES; /*! * \brief Enumeration of Log modes. * * \sa is_DeviceFeature */ typedef enum E_LOG_MODES { IS_LOG_MODE_FACTORY_DEFAULT = 0, IS_LOG_MODE_OFF = 1, IS_LOG_MODE_MANUAL = 2, IS_LOG_MODE_AUTO = 3 } LOG_MODES; /*! * \brief Enumeration of Vertical AOI merge modes. * * \sa is_DeviceFeature */ typedef enum E_VERTICAL_AOI_MERGE_MODES { IS_VERTICAL_AOI_MERGE_MODE_OFF = 0, IS_VERTICAL_AOI_MERGE_MODE_FREERUN = 1, IS_VERTICAL_AOI_MERGE_MODE_TRIGGERED_SOFTWARE = 2, IS_VERTICAL_AOI_MERGE_MODE_TRIGGERED_FALLING_GPIO1 = 3, IS_VERTICAL_AOI_MERGE_MODE_TRIGGERED_RISING_GPIO1 = 4, IS_VERTICAL_AOI_MERGE_MODE_TRIGGERED_FALLING_GPIO2 = 5, IS_VERTICAL_AOI_MERGE_MODE_TRIGGERED_RISING_GPIO2 = 6 } VERTICAL_AOI_MERGE_MODES; /*! * \brief Enumeration of supported Vertical AOI merge mode line trigger modes. * * \sa is_DeviceFeature */ typedef enum E_VERTICAL_AOI_MERGE_MODE_LINE_TRIGGER { IS_VERTICAL_AOI_MERGE_MODE_LINE_FREERUN = 1, IS_VERTICAL_AOI_MERGE_MODE_LINE_SOFTWARE_TRIGGER = 2, IS_VERTICAL_AOI_MERGE_MODE_LINE_GPIO_TRIGGER = 4 } VERTICAL_AOI_MERGE_MODE_LINE_TRIGGER; /*! * \brief Enumeration of LEVEL_CONTROLLED_TRIGGER input modes * * \sa is_DeviceFeature */ typedef enum E_LEVEL_CONTROLLED_TRIGGER_INPUT_MODES { IS_LEVEL_CONTROLLED_TRIGGER_INPUT_OFF = 0, IS_LEVEL_CONTROLLED_TRIGGER_INPUT_ON = 1 } LEVEL_CONTROLLED_TRIGGER_INPUT_MODES; /*! * \brief Enumeration of FPN correction modes. * * \sa is_DeviceFeature */ typedef enum E_FPN_CORRECTION_MODES { IS_FPN_CORRECTION_MODE_OFF = 0, IS_FPN_CORRECTION_MODE_HARDWARE = 1 } FPN_CORRECTION_MODES; /*! * \brief Enumeration of FPN persistent modes. * * \sa is_DeviceFeature */ typedef enum E_FPN_CORRECTION_DATA_LOADING { IS_FPN_CORRECTION_DATA_LOADING_OFF = 0, IS_FPN_CORRECTION_DATA_LOADING_ON = 1 } FPN_CORRECTION_DATA_LOADING; /*! * \brief Enumeration of black reference pixel modes. * * \sa is_DeviceFeature */ typedef enum E_BLACK_REFERENCE_MODES { IS_BLACK_REFERENCE_MODE_OFF = 0x00000000, IS_BLACK_REFERENCE_MODE_COLUMNS_LEFT = 0x00000001, IS_BLACK_REFERENCE_MODE_ROWS_TOP = 0x00000002 } BLACK_REFERENCE_MODES; /*! * \brief Enumeration of sensor bit depths. * * \sa is_DeviceFeature */ typedef enum E_SENSOR_BIT_DEPTH { IS_SENSOR_BIT_DEPTH_AUTO = 0x00000000, IS_SENSOR_BIT_DEPTH_8_BIT = 0x00000001, IS_SENSOR_BIT_DEPTH_10_BIT = 0x00000002, IS_SENSOR_BIT_DEPTH_12_BIT = 0x00000004 } SENSOR_BIT_DEPTH; /*! * \brief Enumeration of timestamp configuration modes. * * \sa is_DeviceFeature */ typedef enum E_TIMESTAMP_CONFIGURATION_MODE { IS_RESET_TIMESTAMP_ONCE = 1 } TIMESTAMP_CONFIGURATION_MODE; /*! * \brief Enumeration of timestamp configuration pins. * * \sa is_DeviceFeature */ typedef enum E_TIMESTAMP_CONFIGURATION_PIN { TIMESTAMP_CONFIGURATION_PIN_NONE = 0, TIMESTAMP_CONFIGURATION_PIN_TRIGGER = 1, TIMESTAMP_CONFIGURATION_PIN_GPIO_1 = 2, TIMESTAMP_CONFIGURATION_PIN_GPIO_2 = 3 } TIMESTAMP_CONFIGURATION_PIN; /*! * \brief Enumeration of timestamp configuration edges. * * \sa is_DeviceFeature */ typedef enum E_TIMESTAMP_CONFIGURATION_EDGE { TIMESTAMP_CONFIGURATION_EDGE_FALLING = 0, TIMESTAMP_CONFIGURATION_EDGE_RISING = 1 } TIMESTAMP_CONFIGURATION_EDGE; typedef struct S_IS_TIMESTAMP_CONFIGURATION { INT s32Mode; INT s32Pin; INT s32Edge; } IS_TIMESTAMP_CONFIGURATION; /*! * \brief Enumeration of image effect configuration. * * \sa is_DeviceFeature */ typedef enum E_IMAGE_EFFECT_MODE { IS_IMAGE_EFFECT_DISABLE = 0, IS_IMAGE_EFFECT_SEPIA = 1, IS_IMAGE_EFFECT_MONOCHROME = 2, IS_IMAGE_EFFECT_NEGATIVE = 3, IS_IMAGE_EFFECT_CROSSHAIRS = 4 } IMAGE_EFFECT_MODE; /*! * \brief Enumeration of the extended pixelclock ranges. * * \sa is_DeviceFeature */ typedef enum S_IS_EXTENDED_PIXELCLOCK_RANGE { EXTENDED_PIXELCLOCK_RANGE_OFF = 0, EXTENDED_PIXELCLOCK_RANGE_ON = 1 } IS_EXTENDED_PIXELCLOCK_RANGE; /*! * \brief Enumeration of the multi integration modes. * * \sa is_DeviceFeature */ typedef enum E_IS_MULTI_INTEGRATION_MODE { MULTI_INTEGRATION_MODE_OFF = 0, MULTI_INTEGRATION_MODE_SOFTWARE = 1, MULTI_INTEGRATION_MODE_GPIO1 = 2, MULTI_INTEGRATION_MODE_GPIO2 = 3 } IS_MULTI_INTEGRATION_MODE; typedef struct S_IS_MULTI_INTEGRATION_CYCLES { double dblIntegration_ms; double dblPause_ms; } IS_MULTI_INTEGRATION_CYCLES; typedef struct S_IS_MULTI_INTEGRATION_SCOPE { double dblMinIntegration_ms; double dblMaxIntegration_ms; double dblIntegrationGranularity_ms; double dblMinPause_ms; double dblMaxPause_ms; double dblPauseGranularity_ms; double dblMinCycle_ms; double dblMaxCycle_ms; double dblCycleGranularity_ms; double dblMinTriggerCycle_ms; double dblMinTriggerDuration_ms; UINT nMinNumberOfCycles; UINT nMaxNumberOfCycles; BYTE m_bReserved[32]; } IS_MULTI_INTEGRATION_SCOPE; typedef enum E_IS_I2C_TARGET { I2C_TARGET_DEFAULT = 0, I2C_TARGET_SENSOR_1 = 1, I2C_TARGET_SENSOR_2 = 2, I2C_TARGET_LOGIC_BOARD = 4 } IS_I2C_TARGET; typedef enum E_IS_SPI_TARGET { SPI_TARGET_DEFAULT = 0, SPI_TARGET_SENSOR_1 = 1, SPI_TARGET_SENSOR_2 = 2 } IS_SPI_TARGET; typedef enum E_IS_MEMORY_MODE { IS_MEMORY_MODE_OFF = 0, IS_MEMORY_MODE_ON = 1 } IS_MEMORY_MODE; typedef enum E_IS_EXTERNAL_INTERFACE_TYPE { IS_EXTERNAL_INTERFACE_TYPE_NONE = 0, IS_EXTERNAL_INTERFACE_TYPE_I2C = 1 } IS_EXTERNAL_INTERFACE_TYPE; typedef enum E_IS_EXTERNAL_INTERFACE_REGISTER_TYPE { IS_EXTERNAL_INTERFACE_REGISTER_TYPE_8BIT = 0, IS_EXTERNAL_INTERFACE_REGISTER_TYPE_16BIT = 1, IS_EXTERNAL_INTERFACE_REGISTER_TYPE_NONE = 2 } IS_EXTERNAL_INTERFACE_REGISTER_TYPE; typedef enum E_IS_EXTERNAL_INTERFACE_EVENT { IS_EXTERNAL_INTERFACE_EVENT_RISING_VSYNC = 0, IS_EXTERNAL_INTERFACE_EVENT_FALLING_VSYNC = 1 } IS_EXTERNAL_INTERFACE_EVENT; typedef enum E_IS_EXTERNAL_INTERFACE_DATA { IS_EXTERNAL_INTERFACE_DATA_USER = 0, IS_EXTERNAL_INTERFACE_DATA_TIMESTAMP_FULL = 1, IS_EXTERNAL_INTERFACE_DATA_TIMESTAMP_LOWBYTE = 2, IS_EXTERNAL_INTERFACE_DATA_TIMESTAMP_HIGHBYTE = 3 } IS_EXTERNAL_INTERFACE_DATA; #pragma pack(push, 1) typedef struct S_IS_EXTERNAL_INTERFACE_I2C_CONFIGURATION { BYTE bySlaveAddress; WORD wRegisterAddress; BYTE byRegisterAddressType; BYTE byAckPolling; BYTE byReserved[11]; } IS_EXTERNAL_INTERFACE_I2C_CONFIGURATION; typedef struct S_IS_EXTERNAL_INTERFACE_CONFIGURATION { WORD wInterfaceType; BYTE sInterfaceConfiguration[16]; WORD wSendEvent; WORD wDataSelection; } IS_EXTERNAL_INTERFACE_CONFIGURATION; #pragma pack(pop) /*! * \brief Interface to control various device features. * * \param hCam valid device handle. * \param nCommand Specifies the command and device. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_DeviceFeature(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands supported by the exposure function. * * \sa is_Exposure. */ typedef enum E_EXPOSURE_CMD { IS_EXPOSURE_CMD_GET_CAPS = 1, IS_EXPOSURE_CMD_GET_EXPOSURE_DEFAULT = 2, IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_MIN = 3, IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_MAX = 4, IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE_INC = 5, IS_EXPOSURE_CMD_GET_EXPOSURE_RANGE = 6, IS_EXPOSURE_CMD_GET_EXPOSURE = 7, IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_MIN = 8, IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_MAX = 9, IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE_INC = 10, IS_EXPOSURE_CMD_GET_FINE_INCREMENT_RANGE = 11, IS_EXPOSURE_CMD_SET_EXPOSURE = 12, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_MIN = 13, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_MAX = 14, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE_INC = 15, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_RANGE = 16, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_ENABLE = 17, IS_EXPOSURE_CMD_SET_LONG_EXPOSURE_ENABLE = 18, IS_EXPOSURE_CMD_GET_DUAL_EXPOSURE_RATIO_DEFAULT = 19, IS_EXPOSURE_CMD_GET_DUAL_EXPOSURE_RATIO_RANGE = 20, IS_EXPOSURE_CMD_GET_DUAL_EXPOSURE_RATIO = 21, IS_EXPOSURE_CMD_SET_DUAL_EXPOSURE_RATIO = 22, IS_EXPOSURE_CMD_GET_LONG_EXPOSURE_FRAMERATE_LIMIT = 23, IS_EXPOSURE_CMD_SET_LONG_EXPOSURE_FRAMERATE_LIMIT = 24 } EXPOSURE_CMD; typedef enum E_EXPOSURE_CAPS { IS_EXPOSURE_CAP_EXPOSURE = 0x00000001, IS_EXPOSURE_CAP_FINE_INCREMENT = 0x00000002, IS_EXPOSURE_CAP_LONG_EXPOSURE = 0x00000004, IS_EXPOSURE_CAP_DUAL_EXPOSURE = 0x00000008 } EXPOSURE_CAPS; /*! * \brief Interface to control the camera exposure * * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_Exposure(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef enum E_TRIGGER_CMD { IS_TRIGGER_CMD_GET_BURST_SIZE_SUPPORTED = 1, IS_TRIGGER_CMD_GET_BURST_SIZE_RANGE = 2, IS_TRIGGER_CMD_GET_BURST_SIZE = 3, IS_TRIGGER_CMD_SET_BURST_SIZE = 4, IS_TRIGGER_CMD_GET_FRAME_PRESCALER_SUPPORTED = 5, IS_TRIGGER_CMD_GET_FRAME_PRESCALER_RANGE = 6, IS_TRIGGER_CMD_GET_FRAME_PRESCALER = 7, IS_TRIGGER_CMD_SET_FRAME_PRESCALER = 8, IS_TRIGGER_CMD_GET_LINE_PRESCALER_SUPPORTED = 9, IS_TRIGGER_CMD_GET_LINE_PRESCALER_RANGE = 10, IS_TRIGGER_CMD_GET_LINE_PRESCALER = 11, IS_TRIGGER_CMD_SET_LINE_PRESCALER = 12 } TRIGGER_CMD; /*! * \brief Interface to control the trigger functions * * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_Trigger(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); #pragma pack(push, 1) /*! * \brief Definition of the uEye device info / heartbeat * * This data is periodically received from the device. * * \sa IS_DEVICE_INFO * \since uEye SDK 4.00. */ typedef struct S_IS_DEVICE_INFO_HEARTBEAT { BYTE reserved_1[24]; /*!< \brief reserved */ DWORD dwRuntimeFirmwareVersion; /*!< \brief Runtime firmware version */ BYTE reserved_2[8]; /*!< \brief reserved */ WORD wTemperature; /*!< \brief camera temperature */ WORD wLinkSpeed_Mb; /*!< \brief current link speed in Mbit/s */ BYTE reserved_3[6]; /*!< \brief reserved */ WORD wComportOffset; /*!< \brief comport offset from 100, valid range -99 to +156 */ BYTE reserved[200]; /*!< \brief reserved */ } IS_DEVICE_INFO_HEARTBEAT; /*! * \brief Definition of the uEye device info / control * * This data is provided by the uEye driver. * * \sa IS_DEVICE_INFO * \since uEye SDK 4.00. */ typedef struct S_IS_DEVICE_INFO_CONTROL { DWORD dwDeviceId; /*!< \brief device id */ BYTE reserved[148]; /*!< \brief reserved */ } IS_DEVICE_INFO_CONTROL; /*! * \brief Definition of the uEye device info * * This data is provided by the uEye driver. * * \since uEye SDK 4.00. */ typedef struct S_IS_DEVICE_INFO { IS_DEVICE_INFO_HEARTBEAT infoDevHeartbeat; /*!< \brief device info / heartbeat */ IS_DEVICE_INFO_CONTROL infoDevControl; /*!< \brief device info / control */ BYTE reserved[240]; /*!< \brief reserved */ } IS_DEVICE_INFO; #pragma pack(pop) /*! * \brief Enumeration of commands supported by the device info access function \ref is_DeviceInfo. * * \since uEye SDK 4.00. */ typedef enum E_IS_DEVICE_INFO_CMD { /*! * \brief Get the device info. * Type of data: \ref IS_DEVICE_INFO. */ IS_DEVICE_INFO_CMD_GET_DEVICE_INFO = 0x02010001, } IS_DEVICE_INFO_CMD; /*! * \brief Generic interface to the device info functionality. * * \param hCam currently not used / ignored, passing 0 recommended * \param nCommand code, indicates requested access and accessed parameter, * one from \ref IS_DEVICE_INFO_CMD enumeration. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code * * \since uEye SDK 4.00. */ IDSEXP is_DeviceInfo(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef enum E_IS_OPTIMAL_CAMERA_TIMING_CMD { /*! * \brief Get optimal camera timing. * Type of data: \ref IS_OPTIMAL_CAMERA_TIMING_CMD_GET_PIXELCLOCK. */ IS_OPTIMAL_CAMERA_TIMING_CMD_GET_PIXELCLOCK = 0x00000001, /*! * \brief Get optimal camera timing. * Type of data: \ref IS_OPTIMAL_CAMERA_TIMING_CMD_GET_FRAMERATE. */ IS_OPTIMAL_CAMERA_TIMING_CMD_GET_FRAMERATE = 0x00000002 } IS_OPTIMAL_CAMERA_TIMING_CMD; /*! * \brief I/O structure of the optimal camera parameters * * \since uEye SDK 4.30. */ typedef struct S_IS_OPTIMAL_CAMERA_TIMING { INT s32Mode; INT s32TimeoutFineTuning; INT* ps32PixelClock; double* pdFramerate; } IS_OPTIMAL_CAMERA_TIMING; /*! \brief Generic interface to the optimal camera timing functionality. * * \param hCam valid device handle. * \param nCommand specify the optimal value to be read back (pixelclock and/or framerate). * \param pParam input or output storage for the I/O data. * \param cbSizeOfParam size of *pParam. * \return error code * * \since uEye SDK 4.30. */ IDSEXP is_OptimalCameraTiming(HIDS hCam, UINT u32Command, void* pParam, UINT u32SizeOfParam); // ---------------------------------------------------------------------------- // functions and datatypes only valid for uEye ETH // ---------------------------------------------------------------------------- #pragma pack(push, 1) // IP V4 address typedef union _UEYE_ETH_ADDR_IPV4 { struct { BYTE by1; BYTE by2; BYTE by3; BYTE by4; } by; DWORD dwAddr; } UEYE_ETH_ADDR_IPV4, *PUEYE_ETH_ADDR_IPV4; // Ethernet address typedef struct _UEYE_ETH_ADDR_MAC { BYTE abyOctet[6]; } UEYE_ETH_ADDR_MAC, *PUEYE_ETH_ADDR_MAC; // IP configuration typedef struct _UEYE_ETH_IP_CONFIGURATION { UEYE_ETH_ADDR_IPV4 ipAddress; /*!< IP address */ UEYE_ETH_ADDR_IPV4 ipSubnetmask; /*!< IP subnetmask */ BYTE reserved[4]; /*!< reserved */ } UEYE_ETH_IP_CONFIGURATION, *PUEYE_ETH_IP_CONFIGURATION; // values for UEYE_ETH_DEVICE_INFO_HEARTBEAT::dwDeviceStatusFlags typedef enum _UEYE_ETH_DEVICESTATUS { IS_ETH_DEVSTATUS_READY_TO_OPERATE= 0x00000001, /*!< device is ready to operate */ IS_ETH_DEVSTATUS_TESTING_IP_CURRENT= 0x00000002, /*!< device is (arp-)probing its current ip */ IS_ETH_DEVSTATUS_TESTING_IP_PERSISTENT= 0x00000004, /*!< device is (arp-)probing its persistent ip */ IS_ETH_DEVSTATUS_TESTING_IP_RANGE= 0x00000008, /*!< device is (arp-)probing the autocfg ip range */ IS_ETH_DEVSTATUS_INAPPLICABLE_IP_CURRENT= 0x00000010, /*!< current ip is inapplicable */ IS_ETH_DEVSTATUS_INAPPLICABLE_IP_PERSISTENT= 0x00000020, /*!< persistent ip is inapplicable */ IS_ETH_DEVSTATUS_INAPPLICABLE_IP_RANGE= 0x00000040, /*!< autocfg ip range is inapplicable */ IS_ETH_DEVSTATUS_UNPAIRED= 0x00000100, /*!< device is unpaired */ IS_ETH_DEVSTATUS_PAIRING_IN_PROGRESS= 0x00000200, /*!< device is being paired */ IS_ETH_DEVSTATUS_PAIRED= 0x00000400, /*!< device is paired */ IS_ETH_DEVSTATUS_FORCE_100MBPS= 0x00001000, /*!< device phy is configured to 100 Mbps */ IS_ETH_DEVSTATUS_NO_COMPORT= 0x00002000, /*!< device does not support ueye eth comport */ IS_ETH_DEVSTATUS_RECEIVING_FW_STARTER= 0x00010000, /*!< device is receiving the starter firmware */ IS_ETH_DEVSTATUS_RECEIVING_FW_RUNTIME= 0x00020000, /*!< device is receiving the runtime firmware */ IS_ETH_DEVSTATUS_INAPPLICABLE_FW_RUNTIME= 0x00040000, /*!< runtime firmware is inapplicable */ IS_ETH_DEVSTATUS_INAPPLICABLE_FW_STARTER= 0x00080000, /*!< starter firmware is inapplicable */ IS_ETH_DEVSTATUS_REBOOTING_FW_RUNTIME= 0x00100000, /*!< device is rebooting to runtime firmware */ IS_ETH_DEVSTATUS_REBOOTING_FW_STARTER= 0x00200000, /*!< device is rebooting to starter firmware */ IS_ETH_DEVSTATUS_REBOOTING_FW_FAILSAFE= 0x00400000, /*!< device is rebooting to failsafe firmware */ IS_ETH_DEVSTATUS_RUNTIME_FW_ERR0= 0x80000000 /*!< checksum error runtime firmware */ } UEYE_ETH_DEVICESTATUS; // heartbeat info transmitted periodically by a device // contained in UEYE_ETH_DEVICE_INFO typedef struct _UEYE_ETH_DEVICE_INFO_HEARTBEAT { BYTE abySerialNumber[12]; /*!< \brief camera's serial number (string) */ BYTE byDeviceType; /*!< \brief device type / board type, 0x80 for ETH */ BYTE byCameraID; /*!< \brief camera id */ WORD wSensorID; /*!< \brief camera's sensor's id */ WORD wSizeImgMem_MB; /*!< \brief size of camera's image memory in MB */ BYTE reserved_1[2]; /*!< \brief reserved */ DWORD dwVerStarterFirmware; /*!< \brief starter firmware version */ DWORD dwVerRuntimeFirmware; /*!< \brief runtime firmware version */ DWORD dwStatus; /*!< \brief camera status flags */ BYTE reserved_2[4]; /*!< \brief reserved */ WORD wTemperature; /*!< \brief camera temperature */ WORD wLinkSpeed_Mb; /*!< \brief link speed in Mb */ UEYE_ETH_ADDR_MAC macDevice; /*!< \brief camera's MAC address */ WORD wComportOffset; /*!< \brief comport offset from 100, valid range -99 to +156 */ UEYE_ETH_IP_CONFIGURATION ipcfgPersistentIpCfg; /*!< \brief persistent IP configuration */ UEYE_ETH_IP_CONFIGURATION ipcfgCurrentIpCfg; /*!< \brief current IP configuration */ UEYE_ETH_ADDR_MAC macPairedHost; /*!< \brief paired host's MAC address */ BYTE reserved_4[2]; /*!< \brief reserved */ UEYE_ETH_ADDR_IPV4 ipPairedHostIp; /*!< \brief paired host's IP address */ UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin; /*!< \brief begin of IP address range */ UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd; /*!< \brief end of IP address range */ BYTE abyUserSpace[8]; /*!< \brief user space data (first 8 bytes) */ BYTE reserved_5[84]; /*!< \brief reserved */ BYTE reserved_6[64]; /*!< \brief reserved */ } UEYE_ETH_DEVICE_INFO_HEARTBEAT, *PUEYE_ETH_DEVICE_INFO_HEARTBEAT; // values for UEYE_ETH_DEVICE_INFO_CONTROL::dwControlStatus typedef enum _UEYE_ETH_CONTROLSTATUS { IS_ETH_CTRLSTATUS_AVAILABLE = 0x00000001, /*!< device is available TO SELF */ IS_ETH_CTRLSTATUS_ACCESSIBLE1 = 0x00000002, /*!< device is accessible BY SELF, i.e. directly 'unicastable' */ IS_ETH_CTRLSTATUS_ACCESSIBLE2 = 0x00000004, /*!< device is accessible BY SELF, i.e. not on persistent ip and adapters ip autocfg range is valid */ IS_ETH_CTRLSTATUS_PERSISTENT_IP_USED = 0x00000010, /*!< device is running on persistent ip configuration */ IS_ETH_CTRLSTATUS_COMPATIBLE = 0x00000020, /*!< device is compatible TO SELF */ IS_ETH_CTRLSTATUS_ADAPTER_ON_DHCP = 0x00000040, /*!< adapter is configured to use dhcp */ IS_ETH_CTRLSTATUS_ADAPTER_SETUP_OK = 0x00000080, /*!< adapter's setup is ok with respect to uEye needs */ IS_ETH_CTRLSTATUS_UNPAIRING_IN_PROGRESS = 0x00000100, /*!< device is being unpaired FROM SELF */ IS_ETH_CTRLSTATUS_PAIRING_IN_PROGRESS = 0x00000200, /*!< device is being paired TO SELF */ IS_ETH_CTRLSTATUS_PAIRED = 0x00001000, /*!< device is paired TO SELF */ IS_ETH_CTRLSTATUS_OPENED = 0x00004000, /*!< device is opened BY SELF */ IS_ETH_CTRLSTATUS_FW_UPLOAD_STARTER = 0x00010000, /*!< device is receiving the starter firmware */ IS_ETH_CTRLSTATUS_FW_UPLOAD_RUNTIME = 0x00020000, /*!< device is receiving the runtime firmware */ IS_ETH_CTRLSTATUS_REBOOTING = 0x00100000, /*!< device is rebooting */ IS_ETH_CTRLSTATUS_BOOTBOOST_ENABLED = 0x01000000, /*!< boot-boosting is enabled for this device */ IS_ETH_CTRLSTATUS_BOOTBOOST_ACTIVE = 0x02000000, /*!< boot-boosting is active for this device */ IS_ETH_CTRLSTATUS_INITIALIZED = 0x08000000, /*!< device object is initialized */ IS_ETH_CTRLSTATUS_TO_BE_DELETED = 0x40000000, /*!< device object is being deleted */ IS_ETH_CTRLSTATUS_TO_BE_REMOVED = 0x80000000, /*!< device object is being removed */ } UEYE_ETH_CONTROLSTATUS; // control info for a listed device // contained in UEYE_ETH_DEVICE_INFO typedef struct _UEYE_ETH_DEVICE_INFO_CONTROL { DWORD dwDeviceID; /*!< device's unique id */ DWORD dwControlStatus; /*!< device control status */ BYTE reserved_1[80]; /*!< reserved */ BYTE reserved_2[64]; /*!< reserved */ } UEYE_ETH_DEVICE_INFO_CONTROL, *PUEYE_ETH_DEVICE_INFO_CONTROL; // Ethernet configuration typedef struct _UEYE_ETH_ETHERNET_CONFIGURATION { UEYE_ETH_IP_CONFIGURATION ipcfg; UEYE_ETH_ADDR_MAC mac; } UEYE_ETH_ETHERNET_CONFIGURATION, *PUEYE_ETH_ETHERNET_CONFIGURATION; // autocfg ip setup typedef struct _UEYE_ETH_AUTOCFG_IP_SETUP { UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeBegin; /*!< begin of ip address range for devices */ UEYE_ETH_ADDR_IPV4 ipAutoCfgIpRangeEnd; /*!< end of ip address range for devices */ BYTE reserved[4]; /*!< reserved */ } UEYE_ETH_AUTOCFG_IP_SETUP, *PUEYE_ETH_AUTOCFG_IP_SETUP; // values for incoming packets filter setup typedef enum _UEYE_ETH_PACKETFILTER_SETUP { // notice: arp and icmp (ping) packets are always passed! IS_ETH_PCKTFLT_PASSALL= 0, /*!< pass all packets to OS */ IS_ETH_PCKTFLT_BLOCKUEGET= 1, /*!< block UEGET packets to the OS */ IS_ETH_PCKTFLT_BLOCKALL= 2 /*!< block all packets to the OS */ } UEYE_ETH_PACKETFILTER_SETUP; // values for link speed setup typedef enum _UEYE_ETH_LINKSPEED_SETUP { IS_ETH_LINKSPEED_100MB= 100, /*!< 100 MBits */ IS_ETH_LINKSPEED_1000MB= 1000 /*!< 1000 MBits */ } UEYE_ETH_LINKSPEED_SETUP; // control info for a device's network adapter // contained in UEYE_ETH_DEVICE_INFO typedef struct _UEYE_ETH_ADAPTER_INFO { DWORD dwAdapterID; /*!< adapter's unique id */ DWORD dwDeviceLinkspeed; /*!< device's linked to this adapter are forced to use this link speed */ UEYE_ETH_ETHERNET_CONFIGURATION ethcfg; /*!< adapter's eth configuration */ BYTE reserved_2[2]; /*!< reserved */ BOOL bIsEnabledDHCP; /*!< adapter's dhcp enabled flag */ UEYE_ETH_AUTOCFG_IP_SETUP autoCfgIp; /*!< the setup for the ip auto configuration */ BOOL bIsValidAutoCfgIpRange; /*!< the given range is valid when: - begin and end are valid ip addresses - begin and end are in the subnet of the adapter - */ DWORD dwCntDevicesKnown; /*!< count of listed Known devices */ DWORD dwCntDevicesPaired; /*!< count of listed Paired devices */ WORD wPacketFilter; /*!< Setting for the Incoming Packets Filter. see UEYE_ETH_PACKETFILTER_SETUP enum above. */ BYTE reserved_3[38]; /*!< reserved */ BYTE reserved_4[64]; /*!< reserved */ } UEYE_ETH_ADAPTER_INFO, *PUEYE_ETH_ADAPTER_INFO; // driver info // contained in UEYE_ETH_DEVICE_INFO typedef struct _UEYE_ETH_DRIVER_INFO { DWORD dwMinVerStarterFirmware; /*!< minimum version compatible starter firmware */ DWORD dwMaxVerStarterFirmware; /*!< maximum version compatible starter firmware */ BYTE reserved_1[8]; /*!< reserved */ BYTE reserved_2[64]; /*!< reserved */ } UEYE_ETH_DRIVER_INFO, *PUEYE_ETH_DRIVER_INFO; // use is_GetEthDeviceInfo() to obtain this data. typedef struct _UEYE_ETH_DEVICE_INFO { UEYE_ETH_DEVICE_INFO_HEARTBEAT infoDevHeartbeat; UEYE_ETH_DEVICE_INFO_CONTROL infoDevControl; UEYE_ETH_ADAPTER_INFO infoAdapter; UEYE_ETH_DRIVER_INFO infoDriver; } UEYE_ETH_DEVICE_INFO, *PUEYE_ETH_DEVICE_INFO; typedef struct _UEYE_COMPORT_CONFIGURATION { WORD wComportNumber; } UEYE_COMPORT_CONFIGURATION, *PUEYE_COMPORT_CONFIGURATION; #pragma pack(pop) IDSEXP is_SetStarterFirmware (HIDS hCam, const CHAR* pcFilepath, UINT uFilepathLen); IDSEXP is_SetPacketFilter (INT iAdapterID, UINT uFilterSetting); IDSEXP is_GetComportNumber (HIDS hCam, UINT *pComportNumber); /*! * \brief Enumeration of IpConfig capability flags. * * \sa is_IpConfig, IPCONFIG_CMD_QUERY_CAPABILITIES. * \since uEye SDK 3.80. */ typedef enum E_IPCONFIG_CAPABILITY_FLAGS { /*! \brief Capability flag indicates support of Persistent IP for the device in question. */ IPCONFIG_CAP_PERSISTENT_IP_SUPPORTED = 0x01, /*! \brief Capability flag indicates support of IP auto configuration for the device in question. */ IPCONFIG_CAP_AUTOCONFIG_IP_SUPPORTED = 0x04 } IPCONFIG_CAPABILITY_FLAGS; /*! * \brief Enumeration of commands supported by the IP configuration access function \ref is_IpConfig. * * \since uEye SDK 3.80. */ typedef enum E_IPCONFIG_CMD { /*! * \brief Query the IP configuration capabilities. * Type of value: unsigned int bitmask, 32-bit. * \sa IPCONFIG_CAPABILITY_FLAGS. */ IPCONFIG_CMD_QUERY_CAPABILITIES = 0, /*! * \brief Set persistent IP configuration. * Type of value: \ref UEYE_ETH_IP_CONFIGURATION. * * \note Use camera's device id or camera's MAC address as identifier for \ref is_IpConfig. * \note Changing persistent IP configuration enabled status is allowed only if device is not paired. */ IPCONFIG_CMD_SET_PERSISTENT_IP = 0x01010000, /*! * \brief Set IP auto configuration setup. * Type of value: \ref UEYE_ETH_AUTOCFG_IP_SETUP. * * \note Use NIC's adapter id or NIC's MAC address as identifier for \ref is_IpConfig. * \note Changed autoconfig IP setup is applied for each device connected to the addressed NIC * at the next pairing of the device. */ IPCONFIG_CMD_SET_AUTOCONFIG_IP = 0x01040000, /*! * \brief Set IP auto configuration setup by device identification. * Type of value: \ref UEYE_ETH_AUTOCFG_IP_SETUP. * * \note Use camera's device id or camera's MAC address as identifier for \ref is_IpConfig. * \note Changed autoconfig IP setup is applied for each device connected to the addressed NIC * at the next pairing of the device. * * \since uEye SDK 4.00. */ IPCONFIG_CMD_SET_AUTOCONFIG_IP_BYDEVICE = 0x01040100, IPCONFIG_CMD_RESERVED1 = 0x01080000, /*! * \brief Get persistent IP configuration. * Type of value: \ref UEYE_ETH_IP_CONFIGURATION. * * \note Use camera's device id or camera's MAC address as identifier for \ref is_IpConfig. */ IPCONFIG_CMD_GET_PERSISTENT_IP = 0x02010000, /*! * \brief Get IP auto configuration setup. * Type of value: \ref UEYE_ETH_AUTOCFG_IP_SETUP. * * \note Use NIC's adapter id or NIC's MAC address as identifier for \ref is_IpConfig. */ IPCONFIG_CMD_GET_AUTOCONFIG_IP = 0x02040000, /*! * \brief Get IP auto configuration setup by device identification. * Type of value: \ref UEYE_ETH_AUTOCFG_IP_SETUP. * * \note Use camera's device id or camera's MAC address as identifier for \ref is_IpConfig. * * \since uEye SDK 4.00. */ IPCONFIG_CMD_GET_AUTOCONFIG_IP_BYDEVICE = 0x02040100 } IPCONFIG_CMD; /*! * \brief Generic interface to the device's IP configuration. * \param iID if != -1: id of the addressed camera device / network adapter. * \param mac if iID == -1: mac of the addressed camera device / network adapter. * \param nCommand code, indicates requested access and accessed value, \ref IPCONFIG_CMD enumeration. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code * * \since uEye SDK 3.80. */ IDSEXP is_IpConfig(INT iID, UEYE_ETH_ADDR_MAC mac, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of defines used by is_Configuration(), \ref is_Configuration. */ typedef enum E_CONFIGURATION_SEL { IS_CONFIG_CPU_IDLE_STATES_BIT_AC_VALUE = 0x01, /*!< Mains power */ IS_CONFIG_CPU_IDLE_STATES_BIT_DC_VALUE = 0x02, /*!< Battery power */ IS_CONFIG_IPO_NOT_ALLOWED = 0, IS_CONFIG_IPO_ALLOWED = 1, IS_CONFIG_OPEN_MP_DISABLE = 0, IS_CONFIG_OPEN_MP_ENABLE = 1, IS_CONFIG_INITIAL_PARAMETERSET_NONE = 0, IS_CONFIG_INITIAL_PARAMETERSET_1 = 1, IS_CONFIG_INITIAL_PARAMETERSET_2 = 2, IS_CONFIG_ETH_CONFIGURATION_MODE_OFF = 0, IS_CONFIG_ETH_CONFIGURATION_MODE_ON = 1, IS_CONFIG_TRUSTED_PAIRING_OFF = 0, IS_CONFIG_TRUSTED_PAIRING_ON = 1, IS_CONFIG_IMAGE_MEMORY_COMPATIBILITY_MODE_OFF = 0, IS_CONFIG_IMAGE_MEMORY_COMPATIBILITY_MODE_ON = 1 } CONFIGURATION_SEL; /*! * \brief Enumeration of commands of function is_Configuration , \ref is_Configuration. */ typedef enum E_CONFIGURATION_CMD { IS_CONFIG_CMD_GET_CAPABILITIES = 1, /*!< Get supported configuration capabilities (bitmask of CONFIGURATION_CAPS)*/ IS_CONFIG_CPU_IDLE_STATES_CMD_GET_ENABLE = 2, /*!< Get the current CPU idle states enable state (bitmask of CONFIGURATION_SEL)*/ IS_CONFIG_CPU_IDLE_STATES_CMD_SET_DISABLE_ON_OPEN = 4, /*!< Disable migration to other CPU idle states (other than C0) if the first USB camera is being opened*/ IS_CONFIG_CPU_IDLE_STATES_CMD_GET_DISABLE_ON_OPEN = 5, /*!< Get the current setting of the command IS_CPU_IDLE_STATES_CMD_SET_DISABLE_ON_OPEN*/ IS_CONFIG_OPEN_MP_CMD_GET_ENABLE = 6, IS_CONFIG_OPEN_MP_CMD_SET_ENABLE = 7, IS_CONFIG_OPEN_MP_CMD_GET_ENABLE_DEFAULT = 8, IS_CONFIG_INITIAL_PARAMETERSET_CMD_SET = 9, IS_CONFIG_INITIAL_PARAMETERSET_CMD_GET = 10, IS_CONFIG_ETH_CONFIGURATION_MODE_CMD_SET_ENABLE = 11, IS_CONFIG_ETH_CONFIGURATION_MODE_CMD_GET_ENABLE = 12, IS_CONFIG_IPO_CMD_GET_ALLOWED = 13, IS_CONFIG_IPO_CMD_SET_ALLOWED = 14, IS_CONFIG_CMD_TRUSTED_PAIRING_SET = 15, IS_CONFIG_CMD_TRUSTED_PAIRING_GET = 16, IS_CONFIG_CMD_TRUSTED_PAIRING_GET_DEFAULT = 17, IS_CONFIG_CMD_RESERVED_1 = 18, IS_CONFIG_CMD_SET_IMAGE_MEMORY_COMPATIBILIY_MODE = 19, IS_CONFIG_CMD_GET_IMAGE_MEMORY_COMPATIBILIY_MODE = 20, IS_CONFIG_CMD_GET_IMAGE_MEMORY_COMPATIBILIY_MODE_DEFAULT = 21 } CONFIGURATION_CMD; /*! * \brief Enumeration of configuration command capability flags, \ref is_Configuration. */ typedef enum E_CONFIGURATION_CAPS { IS_CONFIG_CPU_IDLE_STATES_CAP_SUPPORTED = 0x00000001, /*!< CPU idle state commands are supported by the SDK */ IS_CONFIG_OPEN_MP_CAP_SUPPORTED = 0x00000002, /*!< Open MP commands are supported by the SDK */ IS_CONFIG_INITIAL_PARAMETERSET_CAP_SUPPORTED = 0x00000004, /*!< Initial parameter set commands are supported by the SDK */ IS_CONFIG_IPO_CAP_SUPPORTED = 0x00000008, /*!< "Intel Performance Thread" is supported by the SDK */ IS_CONFIG_TRUSTED_PAIRING_CAP_SUPPORTED = 0x00000010 /*!< Camera supports trusted pairing when network connection was lost */ } CONFIGURATION_CAPS; /*! * \brief Command to set general configuration parameters (e.g. the CPU idle state settings) * \param nCommand specifies the command, \ref CONFIGURATION_CMD. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code. */ IDSEXP is_Configuration(UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Structure for flash delay and duration \ref is_IO. */ typedef struct S_IO_FLASH_PARAMS { INT s32Delay; UINT u32Duration; } IO_FLASH_PARAMS; /*! * \brief Structure for the PWM params \ref is_IO. */ typedef struct S_IO_PWM_PARAMS { double dblFrequency_Hz; double dblDutyCycle; } IO_PWM_PARAMS; /*! * \brief Structure for the configuration params of the GPIOs \ref is_IO. */ typedef struct S_IO_GPIO_CONFIGURATION { UINT u32Gpio; UINT u32Caps; UINT u32Configuration; UINT u32State; UINT u32Reserved[12]; } IO_GPIO_CONFIGURATION; /*! * \brief Defines used by is_IO(), \ref is_IO. */ #define IO_LED_STATE_1 0 // Bit 0 #define IO_LED_STATE_2 1 // #define IO_LED_ENABLE 2 // after cam start up default: blink off, blink x times off #define IO_LED_DISABLE 3 // blink off, blink x times off #define IO_LED_BLINK_ENABLE 4 // no retrun value #define IO_LED_BLINK_DISABLE 5 // no retrun value #define IO_LED_BLINK_5_TIMES 6 // no retrun value #define IO_FLASH_MODE_OFF 0 #define IO_FLASH_MODE_TRIGGER_LO_ACTIVE 1 #define IO_FLASH_MODE_TRIGGER_HI_ACTIVE 2 #define IO_FLASH_MODE_CONSTANT_HIGH 3 #define IO_FLASH_MODE_CONSTANT_LOW 4 #define IO_FLASH_MODE_FREERUN_LO_ACTIVE 5 #define IO_FLASH_MODE_FREERUN_HI_ACTIVE 6 #define IS_FLASH_MODE_PWM 0x8000 #define IO_FLASH_MODE_GPIO_1 0x0010 #define IO_FLASH_MODE_GPIO_2 0x0020 #define IO_FLASH_MODE_GPIO_3 0x0040 #define IO_FLASH_MODE_GPIO_4 0x0080 #define IO_FLASH_MODE_GPIO_5 0x0100 #define IO_FLASH_MODE_GPIO_6 0x0200 #define IO_FLASH_GPIO_PORT_MASK (IO_FLASH_MODE_GPIO_1 | IO_FLASH_MODE_GPIO_2 | IO_FLASH_MODE_GPIO_3 | IO_FLASH_MODE_GPIO_4 | IO_FLASH_MODE_GPIO_5 | IO_FLASH_MODE_GPIO_6) #define IO_GPIO_1 0x0001 #define IO_GPIO_2 0x0002 #define IO_GPIO_3 0x0004 #define IO_GPIO_4 0x0008 #define IO_GPIO_5 0x0010 #define IO_GPIO_6 0x0020 #define IS_GPIO_INPUT 0x0001 #define IS_GPIO_OUTPUT 0x0002 #define IS_GPIO_FLASH 0x0004 #define IS_GPIO_PWM 0x0008 #define IS_GPIO_COMPORT_RX 0x0010 #define IS_GPIO_COMPORT_TX 0x0020 #define IS_GPIO_MULTI_INTEGRATION_MODE 0x0040 #define IS_GPIO_TRIGGER 0x0080 #define IS_GPIO_I2C 0x0100 #define IS_GPIO_TWI IS_GPIO_I2C #define IS_FLASH_AUTO_FREERUN_OFF 0 #define IS_FLASH_AUTO_FREERUN_ON 1 /*! * \brief Enumeration of commands of function is_IO , \ref is_IO. */ typedef enum E_IO_CMD { IS_IO_CMD_GPIOS_GET_SUPPORTED = 1, IS_IO_CMD_GPIOS_GET_SUPPORTED_INPUTS = 2, IS_IO_CMD_GPIOS_GET_SUPPORTED_OUTPUTS = 3, IS_IO_CMD_GPIOS_GET_DIRECTION = 4, IS_IO_CMD_GPIOS_SET_DIRECTION = 5, IS_IO_CMD_GPIOS_GET_STATE = 6, IS_IO_CMD_GPIOS_SET_STATE = 7, IS_IO_CMD_LED_GET_STATE = 8, IS_IO_CMD_LED_SET_STATE = 9, IS_IO_CMD_LED_TOGGLE_STATE = 10, IS_IO_CMD_FLASH_GET_GLOBAL_PARAMS = 11, IS_IO_CMD_FLASH_APPLY_GLOBAL_PARAMS = 12, IS_IO_CMD_FLASH_GET_SUPPORTED_GPIOS = 13, IS_IO_CMD_FLASH_GET_PARAMS_MIN = 14, IS_IO_CMD_FLASH_GET_PARAMS_MAX = 15, IS_IO_CMD_FLASH_GET_PARAMS_INC = 16, IS_IO_CMD_FLASH_GET_PARAMS = 17, IS_IO_CMD_FLASH_SET_PARAMS = 18, IS_IO_CMD_FLASH_GET_MODE = 19, IS_IO_CMD_FLASH_SET_MODE = 20, IS_IO_CMD_PWM_GET_SUPPORTED_GPIOS = 21, IS_IO_CMD_PWM_GET_PARAMS_MIN = 22, IS_IO_CMD_PWM_GET_PARAMS_MAX = 23, IS_IO_CMD_PWM_GET_PARAMS_INC = 24, IS_IO_CMD_PWM_GET_PARAMS = 25, IS_IO_CMD_PWM_SET_PARAMS = 26, IS_IO_CMD_PWM_GET_MODE = 27, IS_IO_CMD_PWM_SET_MODE = 28, IS_IO_CMD_GPIOS_GET_CONFIGURATION = 29, IS_IO_CMD_GPIOS_SET_CONFIGURATION = 30, IS_IO_CMD_FLASH_GET_GPIO_PARAMS_MIN = 31, IS_IO_CMD_FLASH_SET_GPIO_PARAMS = 32, IS_IO_CMD_FLASH_GET_AUTO_FREERUN_DEFAULT = 33, IS_IO_CMD_FLASH_GET_AUTO_FREERUN = 34, IS_IO_CMD_FLASH_SET_AUTO_FREERUN = 35 } IO_CMD; /*! * \brief Function for all IO features (including flash) * \param nCommand specifies the command, \ref CONFIGURATION_CMD. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code. */ IDSEXP is_IO(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands of function is_AutoParameter, \ref is_AutoParameter. */ typedef enum E_AUTOPARAMETER_CMD { IS_AWB_CMD_GET_SUPPORTED_TYPES = 1, IS_AWB_CMD_GET_TYPE = 2, IS_AWB_CMD_SET_TYPE = 3, IS_AWB_CMD_GET_ENABLE = 4, IS_AWB_CMD_SET_ENABLE = 5, IS_AWB_CMD_GET_SUPPORTED_RGB_COLOR_MODELS = 6, IS_AWB_CMD_GET_RGB_COLOR_MODEL = 7, IS_AWB_CMD_SET_RGB_COLOR_MODEL = 8, IS_AES_CMD_GET_SUPPORTED_TYPES = 9, IS_AES_CMD_SET_ENABLE = 10, IS_AES_CMD_GET_ENABLE = 11, IS_AES_CMD_SET_TYPE = 12, IS_AES_CMD_GET_TYPE = 13, IS_AES_CMD_SET_CONFIGURATION = 14, IS_AES_CMD_GET_CONFIGURATION = 15, IS_AES_CMD_GET_CONFIGURATION_DEFAULT = 16, IS_AES_CMD_GET_CONFIGURATION_RANGE = 17 } AUTOPARAMETER_CMD; /*! * \brief AES modes used by is_AutoParameter, \ref is_AutoParameter. */ typedef enum E_AES_MODE { IS_AES_MODE_PEAK = 0x01, IS_AES_MODE_MEAN = 0x02 }AES_MODE; /*! * \brief AES configuration used by is_AutoParameter, \ref is_AutoParameter. */ typedef struct { INT nMode; CHAR pConfiguration[1]; } AES_CONFIGURATION; /*! * \brief AES peak white configuration used by is_AutoParameter, \ref is_AutoParameter. */ typedef struct { IS_RECT rectUserAOI; UINT nFrameSkip; UINT nHysteresis; UINT nReference; UINT nChannel; double f64Maximum; double f64Minimum; CHAR reserved[32]; }AES_PEAK_WHITE_CONFIGURATION; /*! * \brief AES peak configuration used by is_AutoParameter, \ref is_AutoParameter. */ typedef struct { IS_RECT rectUserAOI; UINT nFrameSkip; UINT nHysteresis; UINT nReference; UINT nChannel; double f64Maximum; double f64Minimum; UINT nMode; UINT nGranularity; }AES_PEAK_CONFIGURATION; /*! * \brief AES peak white configuration range used by is_AutoParameter, \ref is_AutoParameter. */ typedef struct { IS_RANGE_S32 rangeFrameSkip; IS_RANGE_S32 rangeHysteresis; IS_RANGE_S32 rangeReference; CHAR reserved[32]; }AES_PEAK_WHITE_CONFIGURATION_RANGE; /*! * \brief AES peak configuration range used by is_AutoParameter, \ref is_AutoParameter. */ typedef struct { IS_RANGE_S32 rangeFrameSkip; IS_RANGE_S32 rangeHysteresis; IS_RANGE_S32 rangeReference; }AES_PEAK_CONFIGURATION_RANGE; /*! * \brief AES channel enumeration used by is_AutoParameter, \ref is_AutoParameter. */ typedef enum E_AES_CHANNEL { IS_AES_CHANNEL_MONO = 0x01, IS_AES_CHANNEL_RED = 0x01, IS_AES_CHANNEL_GREEN = 0x02, IS_AES_CHANNEL_BLUE = 0x04 }AES_CHANNEL; /*! * \brief AES peak channel mode enumeration used by AES_PEAK_CONFIGURATION, \ref AES_PEAK_CONFIGURATION. */ typedef enum E_AES_PEAK_MODE { IS_AES_PEAK_MODE_SELECTED_CHANNELS = 0x00, IS_AES_PEAK_MODE_LEADING_CHANNEL = 0x01, IS_AES_PEAK_MODE_ACCUMULATED_CHANNELS = 0x02 }AES_PEAK_MODE; /*! * \brief AES peak granularity enumeration used by AES_PEAK_CONFIGURATION, \ref AES_PEAK_CONFIGURATION. */ typedef enum E_AES_GRANULARITY { IS_AES_GRANULARITY_PER_100 = 0x00, IS_AES_GRANULARITY_PER_1000 = 0x01, IS_AES_GRANULARITY_PER_10000 = 0x02 }AES_GRANULARITY; /*! * \brief Defines used by is_AutoParameter, \ref is_AutoParameter. */ #define IS_AWB_GREYWORLD 0x0001 #define IS_AWB_COLOR_TEMPERATURE 0x0002 #define IS_AUTOPARAMETER_DISABLE 0 #define IS_AUTOPARAMETER_ENABLE 1 #define IS_AUTOPARAMETER_ENABLE_RUNONCE 2 /*! * \brief Function to control all auto parameter settings * \param nCommand specifies the command, \ref AUTOPARAMETER_CMD. * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code. */ IDSEXP is_AutoParameter(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef struct { char* pSourceBuffer; char* pDestBuffer; INT nDestPixelFormat; INT nDestPixelConverter; INT nDestGamma; INT nDestEdgeEnhancement; INT nDestColorCorrectionMode; INT nDestSaturationU; INT nDestSaturationV; BYTE reserved[32]; } BUFFER_CONVERSION_PARAMS; /*! * \brief Enumeration of commands of function is_Convert , \ref is_Convert. */ typedef enum E_CONVERT_CMD { IS_CONVERT_CMD_APPLY_PARAMS_AND_CONVERT_BUFFER = 1 } CONVERT_CMD; /*! * \brief Function for different conversions (e.g. raw images to different pixelformats) * \param hCam valid device handle. * \param nCommand specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code. */ IDSEXP is_Convert(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands of function is_ParameterSet , \ref is_ParameterSet. */ typedef enum E_PARAMETERSET_CMD { IS_PARAMETERSET_CMD_LOAD_EEPROM = 1, IS_PARAMETERSET_CMD_LOAD_FILE = 2, IS_PARAMETERSET_CMD_SAVE_EEPROM = 3, IS_PARAMETERSET_CMD_SAVE_FILE = 4, IS_PARAMETERSET_CMD_GET_NUMBER_SUPPORTED = 5, IS_PARAMETERSET_CMD_GET_HW_PARAMETERSET_AVAILABLE = 6, IS_PARAMETERSET_CMD_ERASE_HW_PARAMETERSET = 7 } PARAMETERSET_CMD; /*! * \brief Interface to control all parameters settings * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_ParameterSet(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands of function is_EdgeEnhancement , \ref is_EdgeEnhancement. */ typedef enum E_EDGE_ENHANCEMENT_CMD { IS_EDGE_ENHANCEMENT_CMD_GET_RANGE = 1, IS_EDGE_ENHANCEMENT_CMD_GET_DEFAULT = 2, IS_EDGE_ENHANCEMENT_CMD_GET = 3, IS_EDGE_ENHANCEMENT_CMD_SET = 4 } EDGE_ENHANCEMENT_CMD; /*! * \brief Interface to set the edge enhancement * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_EdgeEnhancement(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands of function is_PixelClock , \ref is_PixelClock. */ typedef enum E_PIXELCLOCK_CMD { IS_PIXELCLOCK_CMD_GET_NUMBER = 1, IS_PIXELCLOCK_CMD_GET_LIST = 2, IS_PIXELCLOCK_CMD_GET_RANGE = 3, IS_PIXELCLOCK_CMD_GET_DEFAULT = 4, IS_PIXELCLOCK_CMD_GET = 5, IS_PIXELCLOCK_CMD_SET = 6 } PIXELCLOCK_CMD; /*! * \brief Interface to set the pixel clock * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_PixelClock(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef struct { wchar_t* pwchFileName; UINT nFileType; UINT nQuality; char** ppcImageMem; UINT* pnImageID; BYTE reserved[32]; } IMAGE_FILE_PARAMS; /*! * \brief Enumeration of commands of function \ref is_ImageFile, * * \sa is_ImageFile. */ typedef enum E_IMAGE_FILE_CMD { IS_IMAGE_FILE_CMD_LOAD = 1, IS_IMAGE_FILE_CMD_SAVE = 2 } IMAGE_FILE_CMD; /*! * \brief Interface for all image file operations * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_ImageFile(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of modes of function \ref is_Blacklevel. */ typedef enum E_BLACKLEVEL_MODES { IS_AUTO_BLACKLEVEL_OFF = 0, IS_AUTO_BLACKLEVEL_ON = 1 } BLACKLEVEL_MODES; /*! * \brief Enumeration of caps of function \ref is_Blacklevel. */ typedef enum E_BLACKLEVEL_CAPS { IS_BLACKLEVEL_CAP_SET_AUTO_BLACKLEVEL = 1, IS_BLACKLEVEL_CAP_SET_OFFSET = 2, } BLACKLEVEL_CAPS; /*! * \brief Enumeration of commands of function \ref is_Blacklevel. */ typedef enum E_BLACKLEVEL_CMD { IS_BLACKLEVEL_CMD_GET_CAPS = 1, IS_BLACKLEVEL_CMD_GET_MODE_DEFAULT = 2, IS_BLACKLEVEL_CMD_GET_MODE = 3, IS_BLACKLEVEL_CMD_SET_MODE = 4, IS_BLACKLEVEL_CMD_GET_OFFSET_DEFAULT = 5, IS_BLACKLEVEL_CMD_GET_OFFSET_RANGE = 6, IS_BLACKLEVEL_CMD_GET_OFFSET = 7, IS_BLACKLEVEL_CMD_SET_OFFSET = 8 } BLACKLEVEL_CMD; /*! * \brief Interface for all black level operations * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_Blacklevel(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Enumeration of commands of function \ref is_ImageBuffer. */ typedef enum E_IMGBUF_CMD { IS_IMGBUF_DEVMEM_CMD_GET_AVAILABLE_ITERATIONS = 1, IS_IMGBUF_DEVMEM_CMD_GET_ITERATION_INFO = 2, IS_IMGBUF_DEVMEM_CMD_TRANSFER_IMAGE = 3, IS_IMGBUF_DEVMEM_CMD_RELEASE_ITERATIONS = 4 } IMGBUF_CMD; /*! * \brief Data type for ID ranges of iterations or image IDs */ typedef struct S_ID_RANGE { INT s32First; INT s32Last; } ID_RANGE; /*! * \brief Info structure for capture iterations. */ typedef struct S_IMGBUF_ITERATION_INFO { UINT u32IterationID; ID_RANGE rangeImageID; BYTE bReserved[52]; } IMGBUF_ITERATION_INFO; /*! * \brief Structure to specify concrete image */ typedef struct S_IMGBUF_ITEM { UINT u32IterationID; INT s32ImageID; } IMGBUF_ITEM; /*! * \brief Interface for all ImageBuffer operations * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_ImageBuffer(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef enum E_MEASURE_SHARPNESS_CALCULATION_ALGORITHM { IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_TENENGRAD = 0x01, IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_MEAN_SCORE = 0x02, IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_HISTOGRAM_VARIANCE = 0x04, IS_MEASURE_SHARPNESS_CALCULATION_ALGORITHM_SOBEL = 0x10 } MEASURE_SHARPNESS_CALCULATION_ALGORITHM; /*! * \brief Info structure about the calculated sharpness value from the function \ref is_Measure. */ struct S_MEASURE_SHARPNESS_AOI_INFO { UINT u32NumberAOI; UINT u32SharpnessValue; IS_RECT rcAOI; }; typedef DEPRECATED(struct S_MEASURE_SHARPNESS_AOI_INFO MEASURE_SHARPNESS_AOI_INFO); typedef struct S_MEASURE_SHARPNESS_INFO { UINT u32NumberAOI; float fSharpnessValue; IS_RECT rcAOI; char* pcImageMem; } MEASURE_SHARPNESS_INFO; /*! * \brief Enumeration of commands of function \ref is_Measure. */ typedef enum E_MEASURE_CMD { IS_MEASURE_CMD_SHARPNESS_AOI_SET = 1, IS_MEASURE_CMD_SHARPNESS_AOI_INQUIRE = 2, IS_MEASURE_CMD_SHARPNESS_AOI_SET_PRESET = 3, IS_MEASURE_CMD_SHARPNESS_CALCULATION_ALGORITHM_SET = 4 } MEASURE_CMD; /*! * \brief sharpness AOI presets for the function \ref is_Measure. */ typedef enum E_MEASURE_SHARPNESS_AOI_PRESETS { IS_MEASURE_SHARPNESS_AOI_PRESET_1 = 1 } MEASURE_SHARPNESS_AOI_PRESETS; /*! * \brief Interface for all measure operations * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_Measure(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Defines for the is_LUT() function */ #define IS_LUT_64 64 #define IS_LUT_128 128 #define IS_LUT_PRESET_ID_IDENTITY 0 #define IS_LUT_PRESET_ID_NEGATIVE 1 #define IS_LUT_PRESET_ID_GLOW1 2 #define IS_LUT_PRESET_ID_GLOW2 3 #define IS_LUT_PRESET_ID_ASTRO1 4 #define IS_LUT_PRESET_ID_RAINBOW1 5 #define IS_LUT_PRESET_ID_MAP1 6 #define IS_LUT_PRESET_ID_HOT 7 #define IS_LUT_PRESET_ID_SEPIC 8 #define IS_LUT_PRESET_ID_ONLY_RED 9 #define IS_LUT_PRESET_ID_ONLY_GREEN 10 #define IS_LUT_PRESET_ID_ONLY_BLUE 11 #define IS_LUT_PRESET_ID_DIGITAL_GAIN_2X 12 #define IS_LUT_PRESET_ID_DIGITAL_GAIN_4X 13 #define IS_LUT_PRESET_ID_DIGITAL_GAIN_8X 14 typedef INT IS_LUT_PRESET; /*! * \brief Structure with LUT values \ref is_LUT. */ typedef struct { double dblValues[3][IS_LUT_64]; BOOL bAllChannelsAreEqual; } IS_LUT_CONFIGURATION_64; /*! * \brief Structure for LUT presets \ref is_LUT. */ typedef struct { IS_LUT_PRESET predefinedLutID; IS_LUT_CONFIGURATION_64 lutConfiguration; } IS_LUT_CONFIGURATION_PRESET_64; /*! * \brief Commands for the is_LUT function \ref is_LUT. */ #define IS_LUT_CMD_SET_ENABLED 0x0001 #define IS_LUT_CMD_SET_MODE 0x0002 #define IS_LUT_CMD_GET_STATE 0x0005 #define IS_LUT_CMD_GET_SUPPORT_INFO 0x0006 #define IS_LUT_CMD_SET_USER_LUT 0x0010 #define IS_LUT_CMD_GET_USER_LUT 0x0011 #define IS_LUT_CMD_GET_COMPLETE_LUT 0x0012 #define IS_LUT_CMD_GET_PRESET_LUT 0x0013 #define IS_LUT_CMD_LOAD_FILE 0x0100 #define IS_LUT_CMD_SAVE_FILE 0x0101 /*! * \brief Defines for the state of the LUT \ref is_LUT. */ #define IS_LUT_STATE_ID_FLAG_HARDWARE 0x0010 #define IS_LUT_STATE_ID_FLAG_SOFTWARE 0x0020 #define IS_LUT_STATE_ID_FLAG_GAMMA 0x0100 #define IS_LUT_STATE_ID_FLAG_LUT 0x0200 #define IS_LUT_STATE_ID_INACTIVE 0x0000 #define IS_LUT_STATE_ID_NOT_SUPPORTED 0x0001 #define IS_LUT_STATE_ID_HARDWARE_LUT (IS_LUT_STATE_ID_FLAG_HARDWARE | IS_LUT_STATE_ID_FLAG_LUT) #define IS_LUT_STATE_ID_HARDWARE_GAMMA (IS_LUT_STATE_ID_FLAG_HARDWARE | IS_LUT_STATE_ID_FLAG_GAMMA) #define IS_LUT_STATE_ID_HARDWARE_LUTANDGAMMA (IS_LUT_STATE_ID_FLAG_HARDWARE | IS_LUT_STATE_ID_FLAG_LUT | IS_LUT_STATE_ID_FLAG_GAMMA) #define IS_LUT_STATE_ID_SOFTWARE_LUT (IS_LUT_STATE_ID_FLAG_SOFTWARE | IS_LUT_STATE_ID_FLAG_LUT) #define IS_LUT_STATE_ID_SOFTWARE_GAMMA (IS_LUT_STATE_ID_FLAG_SOFTWARE | IS_LUT_STATE_ID_FLAG_GAMMA) #define IS_LUT_STATE_ID_SOFTWARE_LUTANDGAMMA (IS_LUT_STATE_ID_FLAG_SOFTWARE | IS_LUT_STATE_ID_FLAG_LUT | IS_LUT_STATE_ID_FLAG_GAMMA) #define IS_LUT_MODE_ID_DEFAULT 0 #define IS_LUT_MODE_ID_FORCE_HARDWARE 1 #define IS_LUT_MODE_ID_FORCE_SOFTWARE 2 #define IS_LUT_DISABLED 0 #define IS_LUT_ENABLED 1 typedef INT IS_LUT_ENABLED_STATE; typedef INT IS_LUT_MODE; /*! * \brief Structure for the state of the LUT \ref is_LUT. */ typedef struct { /* use userdefined lut (or only gamma?) */ BOOL bLUTEnabled; /* lut state id */ INT nLUTStateID; /* lut mode */ INT nLUTModeID; /* lut bit depth */ INT nLUTBits; } IS_LUT_STATE; /*! * \brief Structure with infos about the LUT settings \ref is_LUT. */ typedef struct { /* supported lut features in current color/conversion mode */ BOOL bSupportLUTHardware; BOOL bSupportLUTSoftware; INT nBitsHardware; INT nBitsSoftware; /* supported lut channels */ INT nChannelsHardware; INT nChannelsSoftware; } IS_LUT_SUPPORT_INFO; /*! * \brief Function to control the LUT * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_LUT(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams); /*! * \brief Defines for the is_Gamma function \ref is_Gamma. */ #define IS_GAMMA_CMD_SET 0x0001 #define IS_GAMMA_CMD_GET_DEFAULT 0x0002 #define IS_GAMMA_CMD_GET 0x0003 #define IS_GAMMA_VALUE_MIN 1 #define IS_GAMMA_VALUE_MAX 1000 /*! * \brief Function to set/get gamma * \param hCam valid device handle. * \param nCommand Specifies the command * \param pParam input or output storage for the accessed param. * \param cbSizeOfParam size of *pParam. * \return error code */ IDSEXP is_Gamma(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams); typedef enum E_IS_MEMORY_CMD { IS_MEMORY_GET_SIZE = 1, IS_MEMORY_READ = 2, IS_MEMORY_WRITE = 3 } IS_MEMORY_CMD; typedef enum E_IS_MEMORY_DESCRIPTION { IS_MEMORY_USER_1 = 1, IS_MEMORY_USER_2 = 2 } IS_MEMORY_DESCRIPTION; typedef struct { UINT u32Description; UINT u32Offset; unsigned char* pu8Data; UINT u32SizeOfData; } IS_MEMORY_ACCESS; typedef struct { UINT u32Description; UINT u32SizeBytes; } IS_MEMORY_SIZE; /*! * \brief Generic function to access memory. * * \param hf Valid camera handle. * \param u32Command The read / write command. * \param pParam I/O parameter, depends on the command. * \param cbParam Size of *pParam. * \return Status of the execution. */ IDSEXP is_Memory(HIDS hf, UINT nCommand, void* pParam, UINT cbSizeOfParam); typedef struct { UINT nPosX; // start position in x-direction UINT nPosY; // start position in y-direction UINT nWidth; // width of the AOI UINT nHeight; // height of the AOI UINT nStatus; // Indicates the status of this AOI after a call to IS_AOI(IS_AOI_MULTI_SET_AOI,...); } IS_MULTI_AOI_DESCRIPTOR; typedef struct { UINT nNumberOfAOIs; // The number of AOI descriptors in pMultiAOIList IS_MULTI_AOI_DESCRIPTOR * pMultiAOIList; // Contains an array of IS_MULTI_AOI_DESCRIPTOR with nNumberOfAOIs elements } IS_MULTI_AOI_CONTAINER; typedef struct { UEYE_ETH_ADDR_IPV4 ipCamera; UEYE_ETH_ADDR_IPV4 ipMulticast; UINT u32CameraId; UINT u32ErrorHandlingMode; } IS_PMC_READONLYDEVICEDESCRIPTOR; #define IS_MC_CMD_FLAG_ACTIVE 0x1000 #define IS_MC_CMD_FLAG_PASSIVE 0x2000 /* is_Multicast() commands for passive mode (listener only) */ #define IS_PMC_CMD_INITIALIZE ( 0x0001 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_DEINITIALIZE ( 0x0002 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_ADDMCDEVICE ( 0x0003 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_REMOVEMCDEVICE ( 0x0004 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_STOREDEVICES ( 0x0005 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_LOADDEVICES ( 0x0006 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_SYSTEM_SET_ENABLE ( 0x0007 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_SYSTEM_GET_ENABLE ( 0x0008 | IS_MC_CMD_FLAG_PASSIVE ) #define IS_PMC_CMD_REMOVEALLMCDEVICES ( 0x0009 | IS_MC_CMD_FLAG_PASSIVE ) /* is_Multicast() commands for active mode (master) */ #define IS_AMC_CMD_SET_MC_IP ( 0x0010 | IS_MC_CMD_FLAG_ACTIVE ) #define IS_AMC_CMD_GET_MC_IP ( 0x0011 | IS_MC_CMD_FLAG_ACTIVE ) #define IS_AMC_CMD_SET_MC_ENABLED ( 0x0012 | IS_MC_CMD_FLAG_ACTIVE ) #define IS_AMC_CMD_GET_MC_ENABLED ( 0x0013 | IS_MC_CMD_FLAG_ACTIVE ) #define IS_AMC_CMD_GET_MC_SUPPORTED ( 0x0014 | IS_MC_CMD_FLAG_ACTIVE ) #define IS_AMC_SUPPORTED_FLAG_DEVICE ( 0x0001 ) #define IS_AMC_SUPPORTED_FLAG_FIRMWARE ( 0x0002 ) #define IS_PMC_ERRORHANDLING_REJECT_IMAGES 0x01 #define IS_PMC_ERRORHANDLING_IGNORE_MISSING_PARTS 0x02 #define IS_PMC_ERRORHANDLING_MERGE_IMAGES_RELEASE_ON_COMPLETE 0x03 #define IS_PMC_ERRORHANDLING_MERGE_IMAGES_RELEASE_ON_RECEIVED_IMGLEN 0x04 /*! * \brief Multicast configuration. * * \param hf Camera handle. Only used for active multicast commands. * \param u32Command Multicast command. * \param pParam I/O parameter, depends on the command. * \param cbParam Size of *pParam. * \return Status of the execution. */ IDSEXP is_Multicast( HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams ); /*! * \brief Sequencer command list */ typedef enum E_SEQUENCER_CMD { /*! Enable or disable the sequencer * Param: in Int32 */ IS_SEQUENCER_MODE_ENABLED_SET = 1, /*! Receive the state of the sequencer * Param: out Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_MODE_ENABLED_GET = 2, /*! Enable or disable the sequencer configuration * Param: in Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_CONFIGURATION_ENABLED_SET = 3, /*! Receive the state of the sequencer configuration * Param: out Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_CONFIGURATION_ENABLED_GET = 4, /*! Receive if the sequencer is supported by the device * Param: out Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_MODE_SUPPORTED_GET = 5, /*! Reset the sequencer * Param: NULL * Size: 0 */ IS_SEQUENCER_RESET = 6, /*! Load the given sequencer configuration file * Param: in wchar_t* * Size: 0 */ IS_SEQUENCER_CONFIGURATION_LOAD = 7, /*! Save the current configuration to the given sequencer configuration file * Param: in wchar_t* * Size: 0 */ IS_SEQUENCER_CONFIGURATION_SAVE = 8, /*! Saves the current device state for the currently selected set * Param: NULL * Size: 0 */ IS_SEQUENCER_SET_SAVE = 10, /*! Sets the initial/start sequencer set, which is the first set used within a sequencer * Param: in Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_SET_START_SET = 11, /*! Receives the initial/start sequencer set, which is the first set used within a sequencer * Param: out Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_SET_START_GET = 12, /*! Selects the sequencer set to which further feature settings applies. * Param: in Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_SET_SELECTED_SET = 13, /*! Receives the currently selected set to which further feature settings applies. * Param: out Int32 * Size: sizeof(Int32) */ IS_SEQUENCER_SET_SELECTED_GET = 14, /*! Sets the sequencer path configuration * Param: in IS_SEQUENCER_PATH * Size: sizeof(IS_SEQUENCER_PATH) */ IS_SEQUENCER_SET_PATH_SET = 15, /*! Receives the sequencer path configuration * Param: in IS_SEQUENCER_PATH * Size: sizeof(IS_SEQUENCER_PATH) */ IS_SEQUENCER_SET_PATH_GET = 16, /*! Receives the maximum count of supported sequencer sets * Param: out Int32 * Size : sizeof(Int32) */ IS_SEQUENCER_SET_MAX_COUNT_GET = 17, /*! Selects which sequencer features to control * Param: in Int64 * Size: sizeof(Int64) */ IS_SEQUENCER_FEATURE_SELECTED_SET = 20, /*! Receives the currently selected sequencer feature to control * Param: out Int64 * Size: sizeof(Int64) */ IS_SEQUENCER_FEATURE_SELECTED_GET = 21, /*! Enables the selected feature and make it active in all the sequencer sets. * Param: in Int32 (1 to enable, 0 to disable) * Size: sizeof(Int32) */ IS_SEQUENCER_FEATURE_ENABLED_SET = 22, /*! Receives if the selected feature is enabled. * Param: out Int32 (1 feature is enabled, 0 feature is disabled) * Size: sizeof(Int32) */ IS_SEQUENCER_FEATURE_ENABLED_GET = 23, /*! Receives a bitmask with the supported sequencer features * Param: out Int64 (1 feature is enabled, 0 feature is disabled) * Size: sizeof(Int64) */ IS_SEQUENCER_FEATURE_SUPPORTED_GET = 24, /*! Receives the currently saved value for the selected feature * Param: depends on feature * Size: sizeof(T) * /see IS_SEQUENCER_FEATURE */ IS_SEQUENCER_FEATURE_VALUE_GET = 25, /*! Receives the maximum count of supported paths * Param: out Int32 * Size : sizeof(Int32) */ IS_SEQUENCER_PATH_MAX_COUNT_GET = 30, /*! Receives a bitmask with the supported sequencer trigger sources * Param: out Int32 (1 trigger source is supported, 0 trigger source is not supported) * Size: sizeof(Int32) */ IS_SEQUENCER_TRIGGER_SOURCE_SUPPORTED_GET = 31 }IS_SEQUENCER_CMD; /*! * \brief Sequencer path configuration */ typedef struct { /*! Path index to which the configuration will apply. (0 and 1 is supported) */ UINT u32PathIndex; /*! Specifies the next sequencer set. */ UINT u32NextIndex; /*! Specifies the internal signal or physical input line to use as the sequencer trigger source. */ UINT u32TriggerSource; /*! Specifies the activation mode of the sequencer trigger */ UINT u32TriggerActivation; } IS_SEQUENCER_PATH; /*! * \brief Sequencer gain configuration for the gain feature */ typedef struct { UINT Master; UINT Red; UINT Green; UINT Blue; }IS_SEQUENCER_GAIN_CONFIGURATION; /*! * \brief Sequencer flash configuration for the flash feature */ typedef struct { UINT u32Mode; UINT u32Duration; UINT u32Delay; }IS_SEQUENCER_FLASH_CONFIGURATION; /*! * \brief Sequencer features * * Specifies the sequencer features that can be part of a device sequencer set. All the device's sequencer * sets have the same features. */ typedef enum E_IS_SEQUENCER_FEATURE { /*! Exposure * Value type: double */ IS_FEATURE_EXPOSURE = 0x01, /*! Gain configuration * Value type: IS_SEQUENCER_GAIN_CONFIGURATION */ IS_FEATURE_GAIN = 0x02, /*! AOI offset x position * Value type: int32 */ IS_FEATURE_AOI_OFFSET_X = 0x04, /*! AOI offset y position * Value type: int32 */ IS_FEATURE_AOI_OFFSET_Y = 0x08, /*! Flash parameter * Value type: IS_SEQUENCER_FLASH_CONFIGURATION */ IS_FEATURE_FLASH = 0x10 } IS_SEQUENCER_FEATURE; /*! * \brief Sequencer trigger source * * Specifies the internal signal or physical input line to use as the sequencer trigger source. */ typedef enum E_IS_SEQUENCER_TRIGGER_SOURCE { /*! Disables the sequencer trigger source */ IS_TRIGGER_SOURCE_OFF = 0, /*! Starts with the reception of the Frame End. */ IS_TRIGGER_SOURCE_FRAME_END = 0x01, /*! Starts with the reception of the Frame Start. */ IS_TRIGGER_SOURCE_FRAME_START = 0x02, /*! Starts with the end of exposure. */ IS_TRIGGER_SOURCE_EXPOSURE_END = 0x04 } E_IS_SEQUENCER_TRIGGER_SOURCE; /*! * \brief Sequencer configuration. * * \param hCam Camera handle. * \param u32Command Sequencer command. * \param pParam I/O parameter, depends on the command. * \param cbSizeOfParams Size of *pParam. * \return Status of the execution. */ IDSEXP is_Sequencer( HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams ); /*! * \brief Structure for read/write of persistent camera memories (EEPROM, Flash) */ typedef struct { UINT u32Offset; UINT u32Count; INT s32Option; char* pu8Memory; } IS_PERSISTENT_MEMORY; typedef enum E_PERSISTENT_MEMORY_CMD { IS_PERSISTENT_MEMORY_READ_USER_EXTENDED = 1, IS_PERSISTENT_MEMORY_WRITE_USER_EXTENDED = 2, IS_PERSISTENT_MEMORY_GET_SIZE_USER_EXTENDED = 3, IS_PERSISTENT_MEMORY_READ_USER = 4, IS_PERSISTENT_MEMORY_WRITE_USER = 5, IS_PERSISTENT_MEMORY_GET_SIZE_USER = 6, IS_PERSISTENT_MEMORY_READ_USER_PROTECTED = 7, IS_PERSISTENT_MEMORY_WRITE_USER_PROTECTED = 8, IS_PERSISTENT_MEMORY_GET_SIZE_USER_PROTECTED = 9 } IS_PERSISTENT_MEMORY_CMD; /*! * \brief Persistent memory read/write. Replaces deprectated functions is_WriteEEPROM, is_ReadEEPROM * * \param hCam Camera handle. * \param u32Command Command. * \param pParam I/O parameter, depends on the command. * \param cbSizeOfParams Size of *pParam. * \return Status of the execution. */ IDSEXP is_PersistentMemory(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam); /*! * \brief Power delivery * * \param hCam Camera handle. * \param u32Command Power delivery command. * \param pParam I/O parameter, depends on the command. * \param cbSizeOfParams Size of *pParam. * \return Status of the execution. */ IDSEXP is_PowerDelivery(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParams); /* Command list for is_PowerDelivery() */ typedef enum E_POWER_DELIVERY_CMD { IS_POWER_DELIVERY_CMD_GET_SUPPORTED = 1, IS_POWER_DELIVERY_CMD_GET_PROFILE = 2, IS_POWER_DELIVERY_CMD_GET_SUPPORTED_PROFILES = 3, IS_POWER_DELIVERY_CMD_SET_PROFILE = 4 } POWER_DELIVERY_CMD; /*! Supported voltages for power delivery */ typedef enum E_POWER_DELIVERY_PROFILES { IS_POWER_DELIVERY_PROFILE_INVALID = 0x00000000, IS_POWER_DELIVERY_PROFILE_5V_LOW_POWER = 0x00000001, IS_POWER_DELIVERY_PROFILE_5V_HIGH_POWER = 0x00000002, IS_POWER_DELIVERY_PROFILE_9V = 0x00000004, IS_POWER_DELIVERY_PROFILE_12V = 0x00000008, IS_POWER_DELIVERY_PROFILE_14V8 = 0x00000010, IS_POWER_DELIVERY_PROFILE_15V = 0x00000020 } POWER_DELIVERY_PROFILES; #ifdef __cplusplus }; #endif /* __cplusplus */ #pragma pack(pop) #endif // #ifndef __IDS_HEADER__