· 6 years ago · Sep 04, 2019, 01:18 AM
1
2Skip to content
3Pull requests
4Issues
5Marketplace
6Explore
7@jonathon-b
8Learn Git and GitHub without any code!
9
10Using the Hello World guide, you’ll start a branch, write comments, and open a pull request.
11
121
130
14
15 0
16
17BeckmanAvionics/03-Camera-Test
18Code
19Issues 0
20Pull requests 0
21Projects 0
22Wiki
23Security
24Insights
2503-Camera-Test/xiApiPlusOcv.hpp
26@eho99 eho99 Add files via upload e21f170 6 minutes ago
272119 lines (1555 sloc) 79.2 KB
28
29
30//-------------------------------------------------------------------------------------------------------------------
31// xiApi Extension header file
32
33// Generated for xiAPI version 4.17.51
34
35#ifndef __XIAPIEXT_H
36#define __XIAPIEXT_H
37
38//-------------------------------------------------------------------------------------------------------------------
39// xiApiExtended parameters
40
41#define XI_PRM_SENSOR_LINE_PERIOD "sensor_line_period" // Image sensor line period in us
42#define XI_PRM_LENS_COMM_DATA "lens_comm_data" // Write/Read data sequences to/from lens
43#define XI_PRM_DEVICE_ID "device_id" // Return unique device ID
44#define XI_PRM_IMAGE_CORRECTION_SELECTOR "image_correction_selector"// Select image correction function XI_IMAGE_CORRECTION_SELECTOR
45#define XI_PRM_IMAGE_CORRECTION_VALUE "image_correction_value" // Select image correction selected function value
46#define XI_PRM_CAM_ENUM_GOLDEN_ENABLED "cam_enum_golden_enabled" // Enable enumeration of golden devices
47#define XI_PRM_RESET_USB_IF_BOOTLOADER "reset_usb_if_bootloader" // Resets USB device if started as bootloader
48#define XI_PRM_CAM_SIMULATORS_COUNT "cam_simulators_count" // Number of camera simulators to be available.
49#define XI_PRM_CAM_SENSOR_INIT_DISABLED "cam_sensor_init_disabled"// Camera sensor will not be initialized when 1=XI_ON is set.
50#define XI_PRM_PROC_ENGINE "proc_engine" // Set processing engine XI_PROC_ENGINE
51#define XI_PRM_EXTENDED_FEATURE_SELECTOR "ext_feature_selector" // Selection of extended feature. XI_EXT_FEATURE_SELECTOR
52#define XI_PRM_EXTENDED_FEATURE "ext_feature" // Extended feature value.
53#define XI_PRM_DEVICE_UNIT_SELECTOR "device_unit_selector" // Selects device unit. XI_DEVICE_UNIT_SELECTOR
54#define XI_PRM_DEVICE_UNIT_REGISTER_SELECTOR "device_unit_register_selector"// Selects register of selected device unit(XI_PRM_DEVICE_UNIT_SELECTOR).
55#define XI_PRM_DEVICE_UNIT_REGISTER_VALUE "device_unit_register_value"// Sets/gets register value of selected device unit(XI_PRM_DEVICE_UNIT_SELECTOR).
56#define XI_PRM_API_PROGRESS_CALLBACK "api_progress_callback" // Callback address of pointer that is called upon long tasks (e.g. XI_PRM_WRITE_FILE_FFS).
57
58
59//-------------------------------------------------------------------------------------------------------------------
60// defines
61#define XI_LIST_STATUS_GENERATED 0x0001 //Sensor defects list was generated
62#define XI_LIST_STATUS_UPTODATE 0x0002 //Sensor defects list is uptodate
63
64//-------------------------------------------------------------------------------------------------------------------
65// xiAPI enumerators
66// Selector of processing engine(instructions set)
67typedef enum
68{
69 XI_PE_ALL =0, // Use all available instrunctions
70 XI_PE_C =1, // Use C(C++) code
71 XI_PE_SSE2 =3, // Use SSE2 instrunctions
72 XI_PE_AVX =4, // Use AVX instrunctions
73 XI_PE_AVX2 =5, // Use AVX2 instrunctions
74
75} XI_PROC_ENGINE;
76
77// Image correction function
78typedef enum
79{
80 XI_CORRECTION_TYPE_SELECTOR =0, // Correction Type selected see XI_TYPE_CORRECTION_SELECTOR
81 XI_DEFECT_ID =1, // Select defect id
82 XI_DEFECTS_COUNT_BY_TYPE =2, // Count of defects selected by current XI_DEFECT_TYPE
83 XI_DEFECT_TYPE =3, // Type of defect see XI_IMAGE_DEFECT_TYPE
84 XI_DEFECT_SUB_TYPE =4, // Defect sub type see XI_IMAGE_DEFECT_SUB_TYPE
85 XI_DEFECT_POS_X =5, // Defect position x
86 XI_DEFECT_POS_Y =6, // Defect position y
87 XI_DEFECT_CMD_ADD =7, // Write cached defect to the list
88 XI_DEFECT_CMD_DELETE =8, // Delete defect to the list
89 XI_DEFECT_CMD_APPLY_CHANGES =9, // Apply changes
90 XI_DEFECT_CMD_LIST_CLEAR =10, // Clear list
91 XI_DEFECT_CMD_LISTS_CLEAR =11, // Clear lists
92 XI_DEFECT_CMD_SAVE =12, // Save list to device
93 XI_CORRECTION_TYPE_ENABLED =13, // Enable or disable correction type
94 XI_DEFECT_ID_BY_TYPE =14, // Select defect id by type
95 XI_LIST_ID =15, // Select list id
96 XI_DEFECT_CMD_APPLY_CHANGES_ALL=16, // Apply changes to all lists
97 XI_LIST_STATUS =17, // Current list status (Read-only). Result is mask of bits XI_LIST_STATUS_GENERATED, XI_LIST_STATUS_...
98 XI_IMG_COR_TAP_SELECTOR =64, // Selected tap id (0-N) for image correction
99 XI_IMG_COR_GAIN_TUNE =65, // Adjustment of gain in dB. For multitap sensors, active tap is selected by XI_IMG_COR_TAP_SELECTOR.
100 XI_IMG_COR_OFFSET_TUNE =66, // Adjustment of pixel values offset. For multitap sensors, active tap is selected by XI_IMG_COR_TAP_SELECTOR.
101
102} XI_IMAGE_CORRECTION_SELECTOR;
103
104// Define image correction type
105typedef enum
106{
107 XI_CORR_TYPE_SENSOR_DEFECTS_FACTORY=0, // Factory defect list
108 XI_CORR_TYPE_SENSOR_COLUMN_FPN=1, // Select Fixed Pattern Noise Correction for Columns
109 XI_CORR_TYPE_SENSOR_ADC_BLO =2, // ADC gain and black level offset sensor register correction
110 XI_CORR_TYPE_SENSOR_ROW_FPN =3, // Select Fixed Pattern Noise Correction for Rows
111 XI_CORR_TYPE_SENSOR_DEFECTS_USER0=4, // User defect list
112 XI_CORR_TYPE_SENSOR_CHANNELS_TUNE=5, // Image channel/tap intensity correction
113
114} XI_TYPE_CORRECTION_SELECTOR;
115
116// Define image defect types
117typedef enum
118{
119 XI_IMAGE_DEFECT_TYPE_PIXEL =0, // Defect is pixel
120 XI_IMAGE_DEFECT_TYPE_COLUMN =1, // Defect is column
121 XI_IMAGE_DEFECT_TYPE_ROW =2, // Defect is row
122
123} XI_IMAGE_DEFECT_TYPE;
124
125// Define image defect sub types
126typedef enum
127{
128 XI_IMAGE_DEFECT_SUB_TYPE_DARK=0, // Defect pixel(s) is(are) too dark
129 XI_IMAGE_DEFECT_SUB_TYPE_BRIGHT=1, // Defect pixel(s) is(are) out of range
130 XI_IMAGE_DEFECT_SUB_TYPE_HOT =2, // Defect pixel(s) is(are) too bright
131
132} XI_IMAGE_DEFECT_SUB_TYPE;
133
134// Extended feature selector.
135typedef enum
136{
137 XI_EXT_FEATURE_SEL_SIMULATOR_GENERATOR_FRAME_LOST_PERIOD_MIN=1, // Camera simulator lost frame generation minimum period (in frames).
138 XI_EXT_FEATURE_SEL_SIMULATOR_GENERATOR_FRAME_LOST_PERIOD_MAX=2, // Camera simulator lost frame generation random period (in frames).
139 XI_EXT_FEATURE_SEL_SIMULATOR_IMAGE_DATA_FORMAT=3, // Camera simulator image data format.
140 XI_EXT_FEATURE_SEL_BANDWIDTH_MEASUREMENT_TIME_SECONDS=4, // Number of seconds for bandwidth measurement. Default = 1.
141 XI_EXT_FEATURE_SEL_IMAGE_INTENSIFIER_VOLTAGE=5, // Input voltage for image intensifier. Default = 0.
142 XI_EXT_FEATURE_SEL_TRIG_FRAME=6, // Triggers frame(s) on internal event. Default = 0.
143 XI_EXT_FEATURE_SEL_IMAGE_OVERSAMPLING=7, // Enable/disable image pixels oversampling. Default = 0.
144 XI_EXT_FEATURE_SEL_APPLY_DATA_FINAL=8, // Enable/disable applying data final. Default = 1.
145 XI_EXT_FEATURE_SEL_FAN_RPM =9, // Sets camera cooling fan rpm (% from max). Default = 100.
146 XI_EXT_FEATURE_SEL_DITHERING_HOST=10, // Enables/Disables shifted(left/up) image data dithering on HOST side. Default = 0(off).
147 XI_EXT_FEATURE_SEL_DITHERING_DEVICE=11, // Enables/Disables shifted(left/up) image data dithering on DEVICE side. Default = 0(off).
148 XI_EXT_FEATURE_SEL_FAN_THR_TEMP=12, // Sets camera fan/back side threshold temperature. Default = 35.
149 XI_EXT_FEATURE_PCIE_IOCTL_GLOBAL_LOCK_ENABLED=13, // Controls if PCIe IOCTL global locking is enabled. If disabled, concurrent operation (e.g. using filesystem is running faster in multiple threads)
150
151} XI_EXT_FEATURE_SELECTOR;
152
153// Device unit selector
154typedef enum
155{
156 XI_DEVICE_UNIT_SENSOR1 =0, // Selects first sensor on device
157 XI_DEVICE_UNIT_FPGA1 =1, // Selects first FPGA on device
158 XI_DEVICE_UNIT_SAL =2, // Selects sensor abstraction layer
159 XI_DEVICE_UNIT_DAL =3, // Selects driver abstraction layer
160 XI_DEVICE_UNIT_SCM =4, // Selects sensor correction module
161 XI_DEVICE_UNIT_FGENTL =5, // Selects register in underlying GenTL layer
162 XI_DEVICE_UNIT_MCU1 =6, // Selects first MCU on device
163 XI_DEVICE_UNIT_MCU2 =7, // Selects second MCU on device
164 XI_DEVICE_UNIT_CHF =8, // Selects Camera High Features Model
165
166} XI_DEVICE_UNIT_SELECTOR;
167
168
169#endif /* __XIAPIEXT_H */
170
171
172//-------------------------------------------------------------------------------------------------------------------
173// xiAPIplus header file - created from gen_xiAPIplus_h_file.xslt
174// XIMEA Application Programming Interface Object Oriented Approach
175//-------------------------------------------------------------------------------------------------------------------
176
177#pragma once
178
179#ifdef WIN32
180#ifdef WIN32
181#include "xiApi.h"
182#else
183#include <m3api/xiApi.h> // Linux, OSX
184#endif // Windows
185#else
186#include <m3api/xiApi.h> // Linux, OSX
187#endif
188
189//#include <xiExt.h>
190
191#include <stdio.h>
192#include <opencv2/core.hpp>
193#include <opencv2/highgui/highgui.hpp>
194#include <stdint.h>
195
196// debug support
197#define DBFIN "xAPIp:"
198#define DBFOUT "res: "
199#define xiAPIPlusDP(x) {if (is_debug_enabled) {printf x;}}
200#define CheckCamHandle(place) {xiAPIPlusDP((DBFIN "%s ... ",place));if (!camera_handle) CheckResult(XI_INVALID_HANDLE, place);}
201#define CheckCamHandleInt(place,i) {xiAPIPlusDP((DBFIN "%s(%d) ... ",place,i));if (!camera_handle) CheckResult(XI_INVALID_HANDLE, place);}
202
203// -----------------------------------------------
204// xiAPIplus
205// -----------------------------------------------
206
207class xiAPIplus
208{
209public:
210 unsigned long GetNumberOfConnectedCameras();
211
212 void EnableCamEnumGoldenEnabled();
213
214};
215
216class xiAPIplus_Exception
217{
218public:
219 xiAPIplus_Exception(XI_RETURN code, char* desc)
220 {
221 description = desc;
222 error_code = code;
223 }
224 XI_RETURN GetErrorNumber() {return error_code;}
225 void GetDescription(char* name, size_t name_max_size);
226 void PrintError();
227private:
228 char* description;
229 XI_RETURN error_code;
230};
231
232// -----------------------------------------------
233// general parametes interface
234// working with set of parameters
235// -----------------------------------------------
236
237class xiAPIplus_Camera_Parameters
238{
239public:
240 void Save_to_File(char* filename);
241 void Load_from_File(char* filename);
242 void Save_to_Preset(int id);
243 void Load_from_Preset(int id);
244 int Get_Count();
245 void Get_Name(int id, char* name, size_t name_max_size);
246 void Get_Value(int id, char* value, size_t value_max_size);
247 void Set_Value(int id, char* value);
248private:
249};
250
251// -----------------------------------------------
252// class xiAPIplus - Image
253// -----------------------------------------------
254
255class xiAPIplus_Image
256{
257public:
258 xiAPIplus_Image();
259 virtual ~xiAPIplus_Image();
260
261 // functions
262 XI_IMG_FORMAT GetDataFormat() {return image.frm;}
263 unsigned char* GetPixels() {return (unsigned char*)image.bp;}
264 int GetWidth() {return image.width;}
265 int GetHeight() {return image.height;}
266 int GetPadding_X();
267 XI_IMG* GetXI_IMG();
268 int GetBytesPerPixel();
269 int GetFrameNumber(){ return image.nframe;};
270 int GetPixelsArraySize() {return ((image.width + GetPadding_X()) * image.height * GetBytesPerPixel());}
271 int GetBitCount();
272
273 virtual void CopyTo(xiAPIplus_Image* image_copy);
274 bool IsCopy() {return is_copy;}
275 void SetCopy(bool en) {is_copy=en;}
276private:
277XI_IMG image;
278bool is_copy; // =1 if image bitmap is allocated, 0= if it is area in memory, that is not allocated in API
279};
280
281// -----------------------------------------------
282// class xiAPIplus - Camera
283// -----------------------------------------------
284
285class xiAPIplus_Camera
286{
287public:
288 xiAPIplus_Camera();
289 ~xiAPIplus_Camera();
290
291 // API
292 unsigned long GetNumberOfConnectedCameras();
293
294 // open/close
295 void OpenFirst();
296 void OpenByID(unsigned long id);
297 void OpenBySN(char* serial_number);
298 void OpenByPath(char* device_path);
299 void OpenByUserID(char* user_id);
300 void OpenByLocation(char* location);
301 void Close();
302
303 // debug
304 void EnableDebug() {is_debug_enabled=true;}
305 void DisableDebug() {is_debug_enabled=false;}
306 bool IsDebugEnabled() {return is_debug_enabled;}
307
308 // acquisition
309 void StartAcquisition();
310 void StopAcquisition();
311 bool IsAcquisitionActive();
312
313 // image
314 void SetNextImageTimeout_ms(int timeout_ms);
315 int GetNextImageTimeout_ms();
316 xiAPIplus_Image* GetNextImage(xiAPIplus_Image* app_image);
317 xiAPIplus_Image* GetLastImage();
318 HANDLE GetCameraHandle() {return camera_handle;}
319 void SetCameraHandle(HANDLE handle) {camera_handle = handle;}
320
321 // parameters
322 xiAPIplus_Camera_Parameters* GetParameters() {return ¶meters;}
323 void GetXIAPIParamString(char* xiapi_param_name, char* value, int value_max_size);
324 void SetXIAPIParamString(char* xiapi_param_name, char* value, unsigned int value_size);
325
326 void GetXIAPIParamInt(char* xiapi_param_name, int* value);
327 void SetXIAPIParamInt(char* xiapi_param_name, int value);
328
329 void GetXIAPIParamFloat(char* xiapi_param_name, float* value);
330 void SetXIAPIParamFloat(char* xiapi_param_name, float value);
331
332 void GetXIAPIParam(char* xiapi_param_name, void* value, size_t * value_size, XI_PRM_TYPE * type);
333 void SetXIAPIParam(char* xiapi_param_name, void* value, size_t value_size, XI_PRM_TYPE type);
334
335
336 //-------------------------------------------------------------------------------------------------------------------
337 // xiApi parameters
338
339
340 //-------------------------------------------------------------------------------------------------------------------
341 // ---- Parameter Group: Basic
342 //-------------------------------------------------------------------------------------------------------------------
343
344
345 // Exposure time in microseconds (XI_PRM_EXPOSURE)
346 int GetExposureTime();
347 int GetExposureTime_Maximum();
348 int GetExposureTime_Minimum();
349 int GetExposureTime_Increment();
350 void SetExposureTime(int ExposureTime);
351
352 // Sets the number of times of exposure in one frame. (XI_PRM_EXPOSURE_BURST_COUNT)
353 int GetExposureBurstCount();
354 int GetExposureBurstCount_Maximum();
355 int GetExposureBurstCount_Minimum();
356 int GetExposureBurstCount_Increment();
357 void SetExposureBurstCount(int ExposureBurstCount);
358
359 // Gain selector for parameter Gain allows to select different type of gains. (XI_PRM_GAIN_SELECTOR)
360 XI_GAIN_SELECTOR_TYPE GetGainSelector();
361 XI_GAIN_SELECTOR_TYPE GetGainSelector_Maximum();
362 XI_GAIN_SELECTOR_TYPE GetGainSelector_Minimum();
363 int GetGainSelector_Increment();
364
365 void SetGainSelector(XI_GAIN_SELECTOR_TYPE GainSelector);
366
367 // Gain in dB (XI_PRM_GAIN)
368
369 float GetGain();
370 float GetGain_Maximum();
371 float GetGain_Minimum();
372 float GetGain_Increment();
373
374 void SetGain(float Gain);
375
376 // Change image resolution by binning or skipping. (XI_PRM_DOWNSAMPLING)
377 XI_DOWNSAMPLING_VALUE GetDownsampling();
378 XI_DOWNSAMPLING_VALUE GetDownsampling_Maximum();
379 XI_DOWNSAMPLING_VALUE GetDownsampling_Minimum();
380 int GetDownsampling_Increment();
381
382 void SetDownsampling(XI_DOWNSAMPLING_VALUE Downsampling);
383
384 // Change image downsampling type. (XI_PRM_DOWNSAMPLING_TYPE)
385 XI_DOWNSAMPLING_TYPE GetDownsamplingType();
386 XI_DOWNSAMPLING_TYPE GetDownsamplingType_Maximum();
387 XI_DOWNSAMPLING_TYPE GetDownsamplingType_Minimum();
388 int GetDownsamplingType_Increment();
389
390 void SetDownsamplingType(XI_DOWNSAMPLING_TYPE DownsamplingType);
391
392 // Selects which test pattern generator is controlled by the TestPattern feature. (XI_PRM_TEST_PATTERN_GENERATOR_SELECTOR)
393 XI_TEST_PATTERN_GENERATOR GetTestPatternGeneratorSelector();
394 XI_TEST_PATTERN_GENERATOR GetTestPatternGeneratorSelector_Maximum();
395 XI_TEST_PATTERN_GENERATOR GetTestPatternGeneratorSelector_Minimum();
396 int GetTestPatternGeneratorSelector_Increment();
397
398 void SetTestPatternGeneratorSelector(XI_TEST_PATTERN_GENERATOR TestPatternGeneratorSelector);
399
400 // Selects which test pattern type is generated by the selected generator. (XI_PRM_TEST_PATTERN)
401 XI_TEST_PATTERN GetTestPattern();
402 XI_TEST_PATTERN GetTestPattern_Maximum();
403 XI_TEST_PATTERN GetTestPattern_Minimum();
404 int GetTestPattern_Increment();
405
406 void SetTestPattern(XI_TEST_PATTERN TestPattern);
407
408 // Output data format. (XI_PRM_IMAGE_DATA_FORMAT)
409 XI_IMG_FORMAT GetImageDataFormat();
410 XI_IMG_FORMAT GetImageDataFormat_Maximum();
411 XI_IMG_FORMAT GetImageDataFormat_Minimum();
412 int GetImageDataFormat_Increment();
413
414 void SetImageDataFormat(XI_IMG_FORMAT ImageDataFormat);
415
416 // Change sensor shutter type(CMOS sensor). (XI_PRM_SHUTTER_TYPE)
417 XI_SHUTTER_TYPE GetShutterType();
418 XI_SHUTTER_TYPE GetShutterType_Maximum();
419 XI_SHUTTER_TYPE GetShutterType_Minimum();
420 int GetShutterType_Increment();
421
422 void SetShutterType(XI_SHUTTER_TYPE ShutterType);
423
424 // Number of taps (XI_PRM_SENSOR_TAPS)
425 XI_SENSOR_TAP_CNT GetSensorTaps();
426 XI_SENSOR_TAP_CNT GetSensorTaps_Maximum();
427 XI_SENSOR_TAP_CNT GetSensorTaps_Minimum();
428 int GetSensorTaps_Increment();
429
430 void SetSensorTaps(XI_SENSOR_TAP_CNT SensorTaps);
431
432 // Automatic exposure/gain (XI_PRM_AEAG)
433
434 bool IsAutoExposureAutoGain();
435
436 void EnableAutoExposureAutoGain();
437 void DisableAutoExposureAutoGain();
438
439 // Automatic exposure/gain ROI offset X (XI_PRM_AEAG_ROI_OFFSET_X)
440 int GetAutoExposureAutoGainROIoffsetX();
441 int GetAutoExposureAutoGainROIoffsetX_Maximum();
442 int GetAutoExposureAutoGainROIoffsetX_Minimum();
443 int GetAutoExposureAutoGainROIoffsetX_Increment();
444 void SetAutoExposureAutoGainROIoffsetX(int AutoExposureAutoGainROIoffsetX);
445
446 // Automatic exposure/gain ROI offset Y (XI_PRM_AEAG_ROI_OFFSET_Y)
447 int GetAutoExposureAutoGainROIoffsetY();
448 int GetAutoExposureAutoGainROIoffsetY_Maximum();
449 int GetAutoExposureAutoGainROIoffsetY_Minimum();
450 int GetAutoExposureAutoGainROIoffsetY_Increment();
451 void SetAutoExposureAutoGainROIoffsetY(int AutoExposureAutoGainROIoffsetY);
452
453 // Automatic exposure/gain ROI Width (XI_PRM_AEAG_ROI_WIDTH)
454 int GetAutoExposureAutoGainROIWidth();
455 int GetAutoExposureAutoGainROIWidth_Maximum();
456 int GetAutoExposureAutoGainROIWidth_Minimum();
457 int GetAutoExposureAutoGainROIWidth_Increment();
458 void SetAutoExposureAutoGainROIWidth(int AutoExposureAutoGainROIWidth);
459
460 // Automatic exposure/gain ROI Height (XI_PRM_AEAG_ROI_HEIGHT)
461 int GetAutoExposureAutoGainROIHeight();
462 int GetAutoExposureAutoGainROIHeight_Maximum();
463 int GetAutoExposureAutoGainROIHeight_Minimum();
464 int GetAutoExposureAutoGainROIHeight_Increment();
465 void SetAutoExposureAutoGainROIHeight(int AutoExposureAutoGainROIHeight);
466
467 // Selector of list used by Sensor Defects Correction parameter (XI_PRM_SENS_DEFECTS_CORR_LIST_SELECTOR)
468 XI_SENS_DEFFECTS_CORR_LIST_SELECTOR GetSensorDefectsCorrectionListSelector();
469 XI_SENS_DEFFECTS_CORR_LIST_SELECTOR GetSensorDefectsCorrectionListSelector_Maximum();
470 XI_SENS_DEFFECTS_CORR_LIST_SELECTOR GetSensorDefectsCorrectionListSelector_Minimum();
471 int GetSensorDefectsCorrectionListSelector_Increment();
472
473 void SetSensorDefectsCorrectionListSelector(XI_SENS_DEFFECTS_CORR_LIST_SELECTOR SensorDefectsCorrectionListSelector);
474
475 // Sets/Gets sensor defects list in special text format (XI_PRM_SENS_DEFECTS_CORR_LIST_CONTENT)
476
477 void GetSensDefectsCorrListContent(char* buffer, int buffer_lenght);
478
479 void SetSensDefectsCorrListContent(char* SensDefectsCorrListContent);
480
481 // Correction of sensor defects (pixels, columns, rows) enable/disable (XI_PRM_SENS_DEFECTS_CORR)
482
483 bool IsSensorDefectsCorrection();
484
485 void EnableSensorDefectsCorrection();
486 void DisableSensorDefectsCorrection();
487
488 // Automatic white balance (XI_PRM_AUTO_WB)
489
490 bool IsWhiteBalanceAuto();
491
492 void EnableWhiteBalanceAuto();
493 void DisableWhiteBalanceAuto();
494
495 // Calculates White Balance(xiGetImage function must be called) (XI_PRM_MANUAL_WB)
496
497 void SetWhiteBalanceManualNow(int WhiteBalanceManualNow);
498
499 // White balance offset X (XI_PRM_WB_ROI_OFFSET_X)
500 int GetWhiteBalanceROIoffsetX();
501 int GetWhiteBalanceROIoffsetX_Maximum();
502 int GetWhiteBalanceROIoffsetX_Minimum();
503 int GetWhiteBalanceROIoffsetX_Increment();
504 void SetWhiteBalanceROIoffsetX(int WhiteBalanceROIoffsetX);
505
506 // White balance offset Y (XI_PRM_WB_ROI_OFFSET_Y)
507 int GetWhiteBalanceROIoffsetY();
508 int GetWhiteBalanceROIoffsetY_Maximum();
509 int GetWhiteBalanceROIoffsetY_Minimum();
510 int GetWhiteBalanceROIoffsetY_Increment();
511 void SetWhiteBalanceROIoffsetY(int WhiteBalanceROIoffsetY);
512
513 // White balance width (XI_PRM_WB_ROI_WIDTH)
514 int GetWhiteBalanceROIWidth();
515 int GetWhiteBalanceROIWidth_Maximum();
516 int GetWhiteBalanceROIWidth_Minimum();
517 int GetWhiteBalanceROIWidth_Increment();
518 void SetWhiteBalanceROIWidth(int WhiteBalanceROIWidth);
519
520 // White balance height (XI_PRM_WB_ROI_HEIGHT)
521 int GetWhiteBalanceROIHeight();
522 int GetWhiteBalanceROIHeight_Maximum();
523 int GetWhiteBalanceROIHeight_Minimum();
524 int GetWhiteBalanceROIHeight_Increment();
525 void SetWhiteBalanceROIHeight(int WhiteBalanceROIHeight);
526
527 // White balance red coefficient (XI_PRM_WB_KR)
528
529 float GetWhiteBalanceRed();
530 float GetWhiteBalanceRed_Maximum();
531 float GetWhiteBalanceRed_Minimum();
532 float GetWhiteBalanceRed_Increment();
533
534 void SetWhiteBalanceRed(float WhiteBalanceRed);
535
536 // White balance green coefficient (XI_PRM_WB_KG)
537
538 float GetWhiteBalanceGreen();
539 float GetWhiteBalanceGreen_Maximum();
540 float GetWhiteBalanceGreen_Minimum();
541 float GetWhiteBalanceGreen_Increment();
542
543 void SetWhiteBalanceGreen(float WhiteBalanceGreen);
544
545 // White balance blue coefficient (XI_PRM_WB_KB)
546
547 float GetWhiteBalanceBlue();
548 float GetWhiteBalanceBlue_Maximum();
549 float GetWhiteBalanceBlue_Minimum();
550 float GetWhiteBalanceBlue_Increment();
551
552 void SetWhiteBalanceBlue(float WhiteBalanceBlue);
553
554 // Width of the Image provided by the device (in pixels). (XI_PRM_WIDTH)
555 int GetWidth();
556 int GetWidth_Maximum();
557 int GetWidth_Minimum();
558 int GetWidth_Increment();
559 void SetWidth(int Width);
560
561 // Height of the Image provided by the device (in pixels). (XI_PRM_HEIGHT)
562 int GetHeight();
563 int GetHeight_Maximum();
564 int GetHeight_Minimum();
565 int GetHeight_Increment();
566 void SetHeight(int Height);
567
568 // Horizontal offset from the origin to the area of interest (in pixels). (XI_PRM_OFFSET_X)
569 int GetOffsetX();
570 int GetOffsetX_Maximum();
571 int GetOffsetX_Minimum();
572 int GetOffsetX_Increment();
573 void SetOffsetX(int OffsetX);
574
575 // Vertical offset from the origin to the area of interest (in pixels). (XI_PRM_OFFSET_Y)
576 int GetOffsetY();
577 int GetOffsetY_Maximum();
578 int GetOffsetY_Minimum();
579 int GetOffsetY_Increment();
580 void SetOffsetY(int OffsetY);
581
582 // Selects Region in Multiple ROI which parameters are set by width, height, ... ,region mode (XI_PRM_REGION_SELECTOR)
583 int GetRegion_selector();
584 int GetRegion_selector_Maximum();
585 int GetRegion_selector_Minimum();
586 int GetRegion_selector_Increment();
587 void SetRegion_selector(int Region_selector);
588
589 // Activates/deactivates Region selected by Region Selector (XI_PRM_REGION_MODE)
590 int GetRegion_mode();
591 int GetRegion_mode_Maximum();
592 int GetRegion_mode_Minimum();
593 int GetRegion_mode_Increment();
594 void SetRegion_mode(int Region_mode);
595
596 // Horizontal flip enable (XI_PRM_HORIZONTAL_FLIP)
597
598 bool IsHorizontalFlip();
599
600 void EnableHorizontalFlip();
601 void DisableHorizontalFlip();
602
603 // Vertical flip enable (XI_PRM_VERTICAL_FLIP)
604
605 bool IsVerticalFlip();
606
607 void EnableVerticalFlip();
608 void DisableVerticalFlip();
609
610 // Image flat field correction (XI_PRM_FFC)
611
612 bool IsFlatFieldCorrection();
613
614 void EnableFlatFieldCorrection();
615 void DisableFlatFieldCorrection();
616
617 // Set name of file to be applied for FFC processor. (XI_PRM_FFC_FLAT_FIELD_FILE_NAME)
618
619 void GetFFCFlatFieldFileName(char* buffer, int buffer_lenght);
620
621 void SetFFCFlatFieldFileName(char* FFCFlatFieldFileName);
622
623 // Set name of file to be applied for FFC processor. (XI_PRM_FFC_DARK_FIELD_FILE_NAME)
624
625 void GetFFCDarkFieldFileName(char* buffer, int buffer_lenght);
626
627 void SetFFCDarkFieldFileName(char* FFCDarkFieldFileName);
628
629
630 //-------------------------------------------------------------------------------------------------------------------
631 // ---- Parameter Group: Image Format
632 //-------------------------------------------------------------------------------------------------------------------
633
634
635 // Binning engine selector. (XI_PRM_BINNING_SELECTOR)
636 XI_BIN_SELECTOR GetBinningSelector();
637 XI_BIN_SELECTOR GetBinningSelector_Maximum();
638 XI_BIN_SELECTOR GetBinningSelector_Minimum();
639 int GetBinningSelector_Increment();
640
641 void SetBinningSelector(XI_BIN_SELECTOR BinningSelector);
642
643 // Sets the mode to use to combine vertical pixel together. (XI_PRM_BINNING_VERTICAL_MODE)
644 XI_BIN_MODE GetBinningVerticalMode();
645 XI_BIN_MODE GetBinningVerticalMode_Maximum();
646 XI_BIN_MODE GetBinningVerticalMode_Minimum();
647 int GetBinningVerticalMode_Increment();
648
649 void SetBinningVerticalMode(XI_BIN_MODE BinningVerticalMode);
650
651 // Vertical Binning - number of vertical photo-sensitive cells to combine together. (XI_PRM_BINNING_VERTICAL)
652 int GetBinningVertical();
653 int GetBinningVertical_Maximum();
654 int GetBinningVertical_Minimum();
655 int GetBinningVertical_Increment();
656 void SetBinningVertical(int BinningVertical);
657
658 // Sets the mode to use to combine horizontal pixel together. (XI_PRM_BINNING_HORIZONTAL_MODE)
659 XI_BIN_MODE GetBinningHorizontalMode();
660 XI_BIN_MODE GetBinningHorizontalMode_Maximum();
661 XI_BIN_MODE GetBinningHorizontalMode_Minimum();
662 int GetBinningHorizontalMode_Increment();
663
664 void SetBinningHorizontalMode(XI_BIN_MODE BinningHorizontalMode);
665
666 // Horizontal Binning - number of horizontal photo-sensitive cells to combine together. (XI_PRM_BINNING_HORIZONTAL)
667 int GetBinningHorizontal();
668 int GetBinningHorizontal_Maximum();
669 int GetBinningHorizontal_Minimum();
670 int GetBinningHorizontal_Increment();
671 void SetBinningHorizontal(int BinningHorizontal);
672
673 // Binning horizontal pattern type. (XI_PRM_BINNING_HORIZONTAL_PATTERN)
674 XI_BIN_PATTERN GetBinningHorizontalPattern();
675 XI_BIN_PATTERN GetBinningHorizontalPattern_Maximum();
676 XI_BIN_PATTERN GetBinningHorizontalPattern_Minimum();
677 int GetBinningHorizontalPattern_Increment();
678
679 void SetBinningHorizontalPattern(XI_BIN_PATTERN BinningHorizontalPattern);
680
681 // Binning vertical pattern type. (XI_PRM_BINNING_VERTICAL_PATTERN)
682 XI_BIN_PATTERN GetBinningVerticalPattern();
683 XI_BIN_PATTERN GetBinningVerticalPattern_Maximum();
684 XI_BIN_PATTERN GetBinningVerticalPattern_Minimum();
685 int GetBinningVerticalPattern_Increment();
686
687 void SetBinningVerticalPattern(XI_BIN_PATTERN BinningVerticalPattern);
688
689 // Decimation engine selector. (XI_PRM_DECIMATION_SELECTOR)
690 XI_DEC_SELECTOR GetDecimationSelector();
691 XI_DEC_SELECTOR GetDecimationSelector_Maximum();
692 XI_DEC_SELECTOR GetDecimationSelector_Minimum();
693 int GetDecimationSelector_Increment();
694
695 void SetDecimationSelector(XI_DEC_SELECTOR DecimationSelector);
696
697 // Vertical Decimation - vertical sub-sampling of the image - reduces the vertical resolution of the image by the specified vertical decimation factor. (XI_PRM_DECIMATION_VERTICAL)
698 int GetDecimationVertical();
699 int GetDecimationVertical_Maximum();
700 int GetDecimationVertical_Minimum();
701 int GetDecimationVertical_Increment();
702 void SetDecimationVertical(int DecimationVertical);
703
704 // Horizontal Decimation - horizontal sub-sampling of the image - reduces the horizontal resolution of the image by the specified vertical decimation factor. (XI_PRM_DECIMATION_HORIZONTAL)
705 int GetDecimationHorizontal();
706 int GetDecimationHorizontal_Maximum();
707 int GetDecimationHorizontal_Minimum();
708 int GetDecimationHorizontal_Increment();
709 void SetDecimationHorizontal(int DecimationHorizontal);
710
711 // Decimation horizontal pattern type. (XI_PRM_DECIMATION_HORIZONTAL_PATTERN)
712 XI_DEC_PATTERN GetDecimationHorizontalPattern();
713 XI_DEC_PATTERN GetDecimationHorizontalPattern_Maximum();
714 XI_DEC_PATTERN GetDecimationHorizontalPattern_Minimum();
715 int GetDecimationHorizontalPattern_Increment();
716
717 void SetDecimationHorizontalPattern(XI_DEC_PATTERN DecimationHorizontalPattern);
718
719 // Decimation vertical pattern type. (XI_PRM_DECIMATION_VERTICAL_PATTERN)
720 XI_DEC_PATTERN GetDecimationVerticalPattern();
721 XI_DEC_PATTERN GetDecimationVerticalPattern_Maximum();
722 XI_DEC_PATTERN GetDecimationVerticalPattern_Minimum();
723 int GetDecimationVerticalPattern_Increment();
724
725 void SetDecimationVerticalPattern(XI_DEC_PATTERN DecimationVerticalPattern);
726
727
728 //-------------------------------------------------------------------------------------------------------------------
729 // ---- Parameter Group: AE Setup
730 //-------------------------------------------------------------------------------------------------------------------
731
732
733 // Exposure priority (0.8 - exposure 80%, gain 20%). (XI_PRM_EXP_PRIORITY)
734
735 float GetAutoExposureAutoGainExposurePriority();
736 float GetAutoExposureAutoGainExposurePriority_Maximum();
737 float GetAutoExposureAutoGainExposurePriority_Minimum();
738 float GetAutoExposureAutoGainExposurePriority_Increment();
739
740 void SetAutoExposureAutoGainExposurePriority(float AutoExposureAutoGainExposurePriority);
741
742 // Maximum limit of gain in AEAG procedure (XI_PRM_AG_MAX_LIMIT)
743
744 float GetAutoGainTopLimit();
745 float GetAutoGainTopLimit_Maximum();
746 float GetAutoGainTopLimit_Minimum();
747 float GetAutoGainTopLimit_Increment();
748
749 void SetAutoGainTopLimit(float AutoGainTopLimit);
750
751 // Maximum time (us) used for exposure in AEAG procedure (XI_PRM_AE_MAX_LIMIT)
752 int GetAutoExposureTopLimit();
753 int GetAutoExposureTopLimit_Maximum();
754 int GetAutoExposureTopLimit_Minimum();
755 int GetAutoExposureTopLimit_Increment();
756 void SetAutoExposureTopLimit(int AutoExposureTopLimit);
757
758 // Average intensity of output signal AEAG should achieve(in %) (XI_PRM_AEAG_LEVEL)
759 int GetAutoExposureAutoGainTargetLevel();
760 int GetAutoExposureAutoGainTargetLevel_Maximum();
761 int GetAutoExposureAutoGainTargetLevel_Minimum();
762 int GetAutoExposureAutoGainTargetLevel_Increment();
763 void SetAutoExposureAutoGainTargetLevel(int AutoExposureAutoGainTargetLevel);
764
765
766 //-------------------------------------------------------------------------------------------------------------------
767 // ---- Parameter Group: Performance
768 //-------------------------------------------------------------------------------------------------------------------
769
770
771 // Set/get bandwidth(datarate)(in Megabits) (XI_PRM_LIMIT_BANDWIDTH)
772 int GetBandwidthLimit();
773 int GetBandwidthLimit_Maximum();
774 int GetBandwidthLimit_Minimum();
775 int GetBandwidthLimit_Increment();
776 void SetBandwidthLimit(int BandwidthLimit);
777
778 // Bandwidth limit enabled (XI_PRM_LIMIT_BANDWIDTH_MODE)
779 XI_SWITCH GetBandwidthLimitMode();
780 XI_SWITCH GetBandwidthLimitMode_Maximum();
781 XI_SWITCH GetBandwidthLimitMode_Minimum();
782 int GetBandwidthLimitMode_Increment();
783
784 void SetBandwidthLimitMode(XI_SWITCH BandwidthLimitMode);
785
786 // Image sensor line period in us (XI_PRM_SENSOR_LINE_PERIOD)
787
788 float GetSensorLinePeriod();
789 float GetSensorLinePeriod_Maximum();
790 float GetSensorLinePeriod_Minimum();
791 float GetSensorLinePeriod_Increment();
792
793 void SetSensorLinePeriod(float SensorLinePeriod);
794
795 // Sensor output data bit depth. (XI_PRM_SENSOR_DATA_BIT_DEPTH)
796 XI_BIT_DEPTH GetSensorDataBitDepth();
797 XI_BIT_DEPTH GetSensorDataBitDepth_Maximum();
798 XI_BIT_DEPTH GetSensorDataBitDepth_Minimum();
799 int GetSensorDataBitDepth_Increment();
800
801 void SetSensorDataBitDepth(XI_BIT_DEPTH SensorDataBitDepth);
802
803 // Device output data bit depth. (XI_PRM_OUTPUT_DATA_BIT_DEPTH)
804 XI_BIT_DEPTH GetDeviceOutputDataBitDepth();
805 XI_BIT_DEPTH GetDeviceOutputDataBitDepth_Maximum();
806 XI_BIT_DEPTH GetDeviceOutputDataBitDepth_Minimum();
807 int GetDeviceOutputDataBitDepth_Increment();
808
809 void SetDeviceOutputDataBitDepth(XI_BIT_DEPTH DeviceOutputDataBitDepth);
810
811 // bitdepth of data returned by function xiGetImage (XI_PRM_IMAGE_DATA_BIT_DEPTH)
812 XI_BIT_DEPTH GetImageDataBitDepth();
813 XI_BIT_DEPTH GetImageDataBitDepth_Maximum();
814 XI_BIT_DEPTH GetImageDataBitDepth_Minimum();
815 int GetImageDataBitDepth_Increment();
816
817 void SetImageDataBitDepth(XI_BIT_DEPTH ImageDataBitDepth);
818
819 // Device output data packing (or grouping) enabled. Packing could be enabled if output_data_bit_depth > 8 and packing capability is available. (XI_PRM_OUTPUT_DATA_PACKING)
820
821 bool IsDeviceOutputDataPacking();
822
823 void EnableDeviceOutputDataPacking();
824 void DisableDeviceOutputDataPacking();
825
826 // Data packing type. Some cameras supports only specific packing type. (XI_PRM_OUTPUT_DATA_PACKING_TYPE)
827 XI_OUTPUT_DATA_PACKING_TYPE GetDeviceOutputDataPackingType();
828 XI_OUTPUT_DATA_PACKING_TYPE GetDeviceOutputDataPackingType_Maximum();
829 XI_OUTPUT_DATA_PACKING_TYPE GetDeviceOutputDataPackingType_Minimum();
830 int GetDeviceOutputDataPackingType_Increment();
831
832 void SetDeviceOutputDataPackingType(XI_OUTPUT_DATA_PACKING_TYPE DeviceOutputDataPackingType);
833
834
835 //-------------------------------------------------------------------------------------------------------------------
836 // ---- Parameter Group: Temperature
837 //-------------------------------------------------------------------------------------------------------------------
838
839
840 // Returns 1 for cameras that support cooling. (XI_PRM_IS_COOLED)
841
842 bool IsCooled();
843
844 // Temperature control mode. (XI_PRM_COOLING)
845 XI_TEMP_CTRL_MODE_SELECTOR GetCooling();
846 XI_TEMP_CTRL_MODE_SELECTOR GetCooling_Maximum();
847 XI_TEMP_CTRL_MODE_SELECTOR GetCooling_Minimum();
848 int GetCooling_Increment();
849
850 void SetCooling(XI_TEMP_CTRL_MODE_SELECTOR Cooling);
851
852 // Set sensor target temperature for cooling. (XI_PRM_TARGET_TEMP)
853
854 float GetTargetTemperature();
855 float GetTargetTemperature_Maximum();
856 float GetTargetTemperature_Minimum();
857 float GetTargetTemperature_Increment();
858
859 void SetTargetTemperature(float TargetTemperature);
860
861 // Selector of mechanical point where thermometer is located. (XI_PRM_TEMP_SELECTOR)
862 XI_TEMP_SELECTOR GetTemperatureSelector();
863 XI_TEMP_SELECTOR GetTemperatureSelector_Maximum();
864 XI_TEMP_SELECTOR GetTemperatureSelector_Minimum();
865 int GetTemperatureSelector_Increment();
866
867 void SetTemperatureSelector(XI_TEMP_SELECTOR TemperatureSelector);
868
869 // Camera temperature (selected by XI_PRM_TEMP_SELECTOR) (XI_PRM_TEMP)
870
871 float GetTemperature();
872 float GetTemperature_Maximum();
873 float GetTemperature_Minimum();
874 float GetTemperature_Increment();
875
876 // Temperature control mode. (XI_PRM_TEMP_CONTROL_MODE)
877 XI_TEMP_CTRL_MODE_SELECTOR GetTemperatureControlMode();
878 XI_TEMP_CTRL_MODE_SELECTOR GetTemperatureControlMode_Maximum();
879 XI_TEMP_CTRL_MODE_SELECTOR GetTemperatureControlMode_Minimum();
880 int GetTemperatureControlMode_Increment();
881
882 void SetTemperatureControlMode(XI_TEMP_CTRL_MODE_SELECTOR TemperatureControlMode);
883
884 // Camera sensor temperature (XI_PRM_CHIP_TEMP)
885
886 float GetTemperatureSensor();
887 float GetTemperatureSensor_Maximum();
888 float GetTemperatureSensor_Minimum();
889 float GetTemperatureSensor_Increment();
890
891 // Camera housing tepmerature (XI_PRM_HOUS_TEMP)
892
893 float GetTemperatureHousing();
894 float GetTemperatureHousing_Maximum();
895 float GetTemperatureHousing_Minimum();
896 float GetTemperatureHousing_Increment();
897
898 // Camera housing back side tepmerature (XI_PRM_HOUS_BACK_SIDE_TEMP)
899
900 float GetTemperatureHousingBackSide();
901 float GetTemperatureHousingBackSide_Maximum();
902 float GetTemperatureHousingBackSide_Minimum();
903 float GetTemperatureHousingBackSide_Increment();
904
905 // Camera sensor board temperature (XI_PRM_SENSOR_BOARD_TEMP)
906
907 float GetTemperatureSensorBoard();
908 float GetTemperatureSensorBoard_Maximum();
909 float GetTemperatureSensorBoard_Minimum();
910 float GetTemperatureSensorBoard_Increment();
911
912 // Temperature element selector (TEC(Peltier), Fan). (XI_PRM_TEMP_ELEMENT_SEL)
913 XI_TEMP_ELEMENT_SELECTOR GetTemperatureElementSelector();
914 XI_TEMP_ELEMENT_SELECTOR GetTemperatureElementSelector_Maximum();
915 XI_TEMP_ELEMENT_SELECTOR GetTemperatureElementSelector_Minimum();
916 int GetTemperatureElementSelector_Increment();
917
918 void SetTemperatureElementSelector(XI_TEMP_ELEMENT_SELECTOR TemperatureElementSelector);
919
920 // Temperature element value in percents of full control range (XI_PRM_TEMP_ELEMENT_VALUE)
921
922 float GetTemperatureElementValue();
923 float GetTemperatureElementValue_Maximum();
924 float GetTemperatureElementValue_Minimum();
925 float GetTemperatureElementValue_Increment();
926
927 void SetTemperatureElementValue(float TemperatureElementValue);
928
929
930 //-------------------------------------------------------------------------------------------------------------------
931 // ---- Parameter Group: Color Correction
932 //-------------------------------------------------------------------------------------------------------------------
933
934
935 // Mode of color management system. (XI_PRM_CMS)
936 XI_CMS_MODE GetColorManagementMode();
937 XI_CMS_MODE GetColorManagementMode_Maximum();
938 XI_CMS_MODE GetColorManagementMode_Minimum();
939 int GetColorManagementMode_Increment();
940
941 void SetColorManagementMode(XI_CMS_MODE ColorManagementMode);
942
943 // Intent of color management system. (XI_PRM_CMS_INTENT)
944 XI_CMS_INTENT GetColorManagementIntent();
945 XI_CMS_INTENT GetColorManagementIntent_Maximum();
946 XI_CMS_INTENT GetColorManagementIntent_Minimum();
947 int GetColorManagementIntent_Increment();
948
949 void SetColorManagementIntent(XI_CMS_INTENT ColorManagementIntent);
950
951 // Enable applying of CMS profiles to xiGetImage (see XI_PRM_INPUT_CMS_PROFILE, XI_PRM_OUTPUT_CMS_PROFILE). (XI_PRM_APPLY_CMS)
952
953 bool IsColorManagementApply();
954
955 void EnableColorManagementApply();
956 void DisableColorManagementApply();
957
958 // Filename for input cms profile (e.g. input.icc) (XI_PRM_INPUT_CMS_PROFILE)
959
960 void GetColorManagementInputProfile(char* buffer, int buffer_lenght);
961
962 void SetColorManagementInputProfile(char* ColorManagementInputProfile);
963
964 // Filename for output cms profile (e.g. input.icc) (XI_PRM_OUTPUT_CMS_PROFILE)
965
966 void GetColorManagementOutputProfile(char* buffer, int buffer_lenght);
967
968 void SetColorManagementOutputProfile(char* ColorManagementOutputProfile);
969
970 // Returns 1 for color cameras. (XI_PRM_IMAGE_IS_COLOR)
971
972 bool IsSensorColor();
973
974 // Returns color filter array type of RAW data. (XI_PRM_COLOR_FILTER_ARRAY)
975 XI_COLOR_FILTER_ARRAY GetSensorColorFilterArray();
976 XI_COLOR_FILTER_ARRAY GetSensorColorFilterArray_Maximum();
977 XI_COLOR_FILTER_ARRAY GetSensorColorFilterArray_Minimum();
978 int GetSensorColorFilterArray_Increment();
979
980 // Luminosity gamma (XI_PRM_GAMMAY)
981
982 float GetGammaLuminosity();
983 float GetGammaLuminosity_Maximum();
984 float GetGammaLuminosity_Minimum();
985 float GetGammaLuminosity_Increment();
986
987 void SetGammaLuminosity(float GammaLuminosity);
988
989 // Chromaticity gamma (XI_PRM_GAMMAC)
990
991 float GetGammaChromaticity();
992 float GetGammaChromaticity_Maximum();
993 float GetGammaChromaticity_Minimum();
994 float GetGammaChromaticity_Increment();
995
996 void SetGammaChromaticity(float GammaChromaticity);
997
998 // Sharpness Strenght (XI_PRM_SHARPNESS)
999
1000 float GetSharpness();
1001 float GetSharpness_Maximum();
1002 float GetSharpness_Minimum();
1003 float GetSharpness_Increment();
1004
1005 void SetSharpness(float Sharpness);
1006
1007 // Color Correction Matrix element [0][0] (XI_PRM_CC_MATRIX_00)
1008
1009 float GetColorCorrectionMatrix00();
1010 float GetColorCorrectionMatrix00_Maximum();
1011 float GetColorCorrectionMatrix00_Minimum();
1012 float GetColorCorrectionMatrix00_Increment();
1013
1014 void SetColorCorrectionMatrix00(float ColorCorrectionMatrix00);
1015
1016 // Color Correction Matrix element [0][1] (XI_PRM_CC_MATRIX_01)
1017
1018 float GetColorCorrectionMatrix01();
1019 float GetColorCorrectionMatrix01_Maximum();
1020 float GetColorCorrectionMatrix01_Minimum();
1021 float GetColorCorrectionMatrix01_Increment();
1022
1023 void SetColorCorrectionMatrix01(float ColorCorrectionMatrix01);
1024
1025 // Color Correction Matrix element [0][2] (XI_PRM_CC_MATRIX_02)
1026
1027 float GetColorCorrectionMatrix02();
1028 float GetColorCorrectionMatrix02_Maximum();
1029 float GetColorCorrectionMatrix02_Minimum();
1030 float GetColorCorrectionMatrix02_Increment();
1031
1032 void SetColorCorrectionMatrix02(float ColorCorrectionMatrix02);
1033
1034 // Color Correction Matrix element [0][3] (XI_PRM_CC_MATRIX_03)
1035
1036 float GetColorCorrectionMatrix03();
1037 float GetColorCorrectionMatrix03_Maximum();
1038 float GetColorCorrectionMatrix03_Minimum();
1039 float GetColorCorrectionMatrix03_Increment();
1040
1041 void SetColorCorrectionMatrix03(float ColorCorrectionMatrix03);
1042
1043 // Color Correction Matrix element [1][0] (XI_PRM_CC_MATRIX_10)
1044
1045 float GetColorCorrectionMatrix10();
1046 float GetColorCorrectionMatrix10_Maximum();
1047 float GetColorCorrectionMatrix10_Minimum();
1048 float GetColorCorrectionMatrix10_Increment();
1049
1050 void SetColorCorrectionMatrix10(float ColorCorrectionMatrix10);
1051
1052 // Color Correction Matrix element [1][1] (XI_PRM_CC_MATRIX_11)
1053
1054 float GetColorCorrectionMatrix11();
1055 float GetColorCorrectionMatrix11_Maximum();
1056 float GetColorCorrectionMatrix11_Minimum();
1057 float GetColorCorrectionMatrix11_Increment();
1058
1059 void SetColorCorrectionMatrix11(float ColorCorrectionMatrix11);
1060
1061 // Color Correction Matrix element [1][2] (XI_PRM_CC_MATRIX_12)
1062
1063 float GetColorCorrectionMatrix12();
1064 float GetColorCorrectionMatrix12_Maximum();
1065 float GetColorCorrectionMatrix12_Minimum();
1066 float GetColorCorrectionMatrix12_Increment();
1067
1068 void SetColorCorrectionMatrix12(float ColorCorrectionMatrix12);
1069
1070 // Color Correction Matrix element [1][3] (XI_PRM_CC_MATRIX_13)
1071
1072 float GetColorCorrectionMatrix13();
1073 float GetColorCorrectionMatrix13_Maximum();
1074 float GetColorCorrectionMatrix13_Minimum();
1075 float GetColorCorrectionMatrix13_Increment();
1076
1077 void SetColorCorrectionMatrix13(float ColorCorrectionMatrix13);
1078
1079 // Color Correction Matrix element [2][0] (XI_PRM_CC_MATRIX_20)
1080
1081 float GetColorCorrectionMatrix20();
1082 float GetColorCorrectionMatrix20_Maximum();
1083 float GetColorCorrectionMatrix20_Minimum();
1084 float GetColorCorrectionMatrix20_Increment();
1085
1086 void SetColorCorrectionMatrix20(float ColorCorrectionMatrix20);
1087
1088 // Color Correction Matrix element [2][1] (XI_PRM_CC_MATRIX_21)
1089
1090 float GetColorCorrectionMatrix21();
1091 float GetColorCorrectionMatrix21_Maximum();
1092 float GetColorCorrectionMatrix21_Minimum();
1093 float GetColorCorrectionMatrix21_Increment();
1094
1095 void SetColorCorrectionMatrix21(float ColorCorrectionMatrix21);
1096
1097 // Color Correction Matrix element [2][2] (XI_PRM_CC_MATRIX_22)
1098
1099 float GetColorCorrectionMatrix22();
1100 float GetColorCorrectionMatrix22_Maximum();
1101 float GetColorCorrectionMatrix22_Minimum();
1102 float GetColorCorrectionMatrix22_Increment();
1103
1104 void SetColorCorrectionMatrix22(float ColorCorrectionMatrix22);
1105
1106 // Color Correction Matrix element [2][3] (XI_PRM_CC_MATRIX_23)
1107
1108 float GetColorCorrectionMatrix23();
1109 float GetColorCorrectionMatrix23_Maximum();
1110 float GetColorCorrectionMatrix23_Minimum();
1111 float GetColorCorrectionMatrix23_Increment();
1112
1113 void SetColorCorrectionMatrix23(float ColorCorrectionMatrix23);
1114
1115 // Color Correction Matrix element [3][0] (XI_PRM_CC_MATRIX_30)
1116
1117 float GetColorCorrectionMatrix30();
1118 float GetColorCorrectionMatrix30_Maximum();
1119 float GetColorCorrectionMatrix30_Minimum();
1120 float GetColorCorrectionMatrix30_Increment();
1121
1122 void SetColorCorrectionMatrix30(float ColorCorrectionMatrix30);
1123
1124 // Color Correction Matrix element [3][1] (XI_PRM_CC_MATRIX_31)
1125
1126 float GetColorCorrectionMatrix31();
1127 float GetColorCorrectionMatrix31_Maximum();
1128 float GetColorCorrectionMatrix31_Minimum();
1129 float GetColorCorrectionMatrix31_Increment();
1130
1131 void SetColorCorrectionMatrix31(float ColorCorrectionMatrix31);
1132
1133 // Color Correction Matrix element [3][2] (XI_PRM_CC_MATRIX_32)
1134
1135 float GetColorCorrectionMatrix32();
1136 float GetColorCorrectionMatrix32_Maximum();
1137 float GetColorCorrectionMatrix32_Minimum();
1138 float GetColorCorrectionMatrix32_Increment();
1139
1140 void SetColorCorrectionMatrix32(float ColorCorrectionMatrix32);
1141
1142 // Color Correction Matrix element [3][3] (XI_PRM_CC_MATRIX_33)
1143
1144 float GetColorCorrectionMatrix33();
1145 float GetColorCorrectionMatrix33_Maximum();
1146 float GetColorCorrectionMatrix33_Minimum();
1147 float GetColorCorrectionMatrix33_Increment();
1148
1149 void SetColorCorrectionMatrix33(float ColorCorrectionMatrix33);
1150
1151 // Set default Color Correction Matrix (XI_PRM_DEFAULT_CC_MATRIX)
1152
1153 void SetColorCorrectionMatrixDefault(int ColorCorrectionMatrixDefault);
1154
1155
1156 //-------------------------------------------------------------------------------------------------------------------
1157 // ---- Parameter Group: Device IO
1158 //-------------------------------------------------------------------------------------------------------------------
1159
1160
1161 // Defines source of trigger. (XI_PRM_TRG_SOURCE)
1162 XI_TRG_SOURCE GetTriggerSource();
1163 XI_TRG_SOURCE GetTriggerSource_Maximum();
1164 XI_TRG_SOURCE GetTriggerSource_Minimum();
1165 int GetTriggerSource_Increment();
1166
1167 void SetTriggerSource(XI_TRG_SOURCE TriggerSource);
1168
1169 // Generates an internal trigger. XI_PRM_TRG_SOURCE must be set to TRG_SOFTWARE. (XI_PRM_TRG_SOFTWARE)
1170
1171 void SetTriggerSoftware(int TriggerSoftware);
1172
1173 // Selects the type of trigger. (XI_PRM_TRG_SELECTOR)
1174 XI_TRG_SELECTOR GetTriggerSelector();
1175 XI_TRG_SELECTOR GetTriggerSelector_Maximum();
1176 XI_TRG_SELECTOR GetTriggerSelector_Minimum();
1177 int GetTriggerSelector_Increment();
1178
1179 void SetTriggerSelector(XI_TRG_SELECTOR TriggerSelector);
1180
1181 // The mode of Trigger Overlap. This influences of trigger acception/rejection policy (XI_PRM_TRG_OVERLAP)
1182 XI_TRG_OVERLAP GetTriggerOverlap();
1183 XI_TRG_OVERLAP GetTriggerOverlap_Maximum();
1184 XI_TRG_OVERLAP GetTriggerOverlap_Minimum();
1185 int GetTriggerOverlap_Increment();
1186
1187 void SetTriggerOverlap(XI_TRG_OVERLAP TriggerOverlap);
1188
1189 // Sets number of frames acquired by burst. This burst is used only if trigger is set to FrameBurstStart (XI_PRM_ACQ_FRAME_BURST_COUNT)
1190 int GetAcquisitionFrameBurstCount();
1191 int GetAcquisitionFrameBurstCount_Maximum();
1192 int GetAcquisitionFrameBurstCount_Minimum();
1193 int GetAcquisitionFrameBurstCount_Increment();
1194 void SetAcquisitionFrameBurstCount(int AcquisitionFrameBurstCount);
1195
1196 // Current value of the device timestamp counter (XI_PRM_TIMESTAMP)
1197 uint64_t GetTimestamp();
1198 uint64_t GetTimestamp_Maximum();
1199 uint64_t GetTimestamp_Minimum();
1200 uint64_t GetTimestamp_Increment();
1201
1202 //-------------------------------------------------------------------------------------------------------------------
1203 // ---- Parameter Group: GPIO Setup
1204 //-------------------------------------------------------------------------------------------------------------------
1205
1206
1207 // Selects GPI (XI_PRM_GPI_SELECTOR)
1208 XI_GPI_SELECTOR GetGPISelector();
1209 XI_GPI_SELECTOR GetGPISelector_Maximum();
1210 XI_GPI_SELECTOR GetGPISelector_Minimum();
1211 int GetGPISelector_Increment();
1212
1213 void SetGPISelector(XI_GPI_SELECTOR GPISelector);
1214
1215 // Defines GPI functionality (XI_PRM_GPI_MODE)
1216 XI_GPI_MODE GetGPIMode();
1217 XI_GPI_MODE GetGPIMode_Maximum();
1218 XI_GPI_MODE GetGPIMode_Minimum();
1219 int GetGPIMode_Increment();
1220
1221 void SetGPIMode(XI_GPI_MODE GPIMode);
1222
1223 // GPI level (XI_PRM_GPI_LEVEL)
1224 int GetGPILevel();
1225 int GetGPILevel_Maximum();
1226 int GetGPILevel_Minimum();
1227 int GetGPILevel_Increment();
1228 // GPI Level at image exposure start (XI_PRM_GPI_LEVEL_AT_IMAGE_EXP_START)
1229 int GetGPILevelAtImageExpStart();
1230 int GetGPILevelAtImageExpStart_Maximum();
1231 int GetGPILevelAtImageExpStart_Minimum();
1232 int GetGPILevelAtImageExpStart_Increment();
1233 // GPI Level at image exposure end (XI_PRM_GPI_LEVEL_AT_IMAGE_EXP_END)
1234 int GetGPILevelAtImageExpEnd();
1235 int GetGPILevelAtImageExpEnd_Maximum();
1236 int GetGPILevelAtImageExpEnd_Minimum();
1237 int GetGPILevelAtImageExpEnd_Increment();
1238 // Selects GPO (XI_PRM_GPO_SELECTOR)
1239 XI_GPO_SELECTOR GetGPOSelector();
1240 XI_GPO_SELECTOR GetGPOSelector_Maximum();
1241 XI_GPO_SELECTOR GetGPOSelector_Minimum();
1242 int GetGPOSelector_Increment();
1243
1244 void SetGPOSelector(XI_GPO_SELECTOR GPOSelector);
1245
1246 // Defines GPO functionality (XI_PRM_GPO_MODE)
1247 XI_GPO_MODE GetGPOMode();
1248 XI_GPO_MODE GetGPOMode_Maximum();
1249 XI_GPO_MODE GetGPOMode_Minimum();
1250 int GetGPOMode_Increment();
1251
1252 void SetGPOMode(XI_GPO_MODE GPOMode);
1253
1254 // Selects LED (XI_PRM_LED_SELECTOR)
1255 XI_LED_SELECTOR GetLEDSelector();
1256 XI_LED_SELECTOR GetLEDSelector_Maximum();
1257 XI_LED_SELECTOR GetLEDSelector_Minimum();
1258 int GetLEDSelector_Increment();
1259
1260 void SetLEDSelector(XI_LED_SELECTOR LEDSelector);
1261
1262 // Defines LED functionality (XI_PRM_LED_MODE)
1263 XI_LED_MODE GetLEDMode();
1264 XI_LED_MODE GetLEDMode_Maximum();
1265 XI_LED_MODE GetLEDMode_Minimum();
1266 int GetLEDMode_Increment();
1267
1268 void SetLEDMode(XI_LED_MODE LEDMode);
1269
1270 // Enable/Disable debounce to selected GPI (XI_PRM_DEBOUNCE_EN)
1271
1272 bool IsGPIDebounce();
1273
1274 void EnableGPIDebounce();
1275 void DisableGPIDebounce();
1276
1277
1278 //-------------------------------------------------------------------------------------------------------------------
1279 // ---- Parameter Group: Debounce Setup
1280 //-------------------------------------------------------------------------------------------------------------------
1281
1282
1283 // Debounce time (x * 10us) (XI_PRM_DEBOUNCE_T0)
1284 int GetGPIDebounceFirstEdge();
1285 int GetGPIDebounceFirstEdge_Maximum();
1286 int GetGPIDebounceFirstEdge_Minimum();
1287 int GetGPIDebounceFirstEdge_Increment();
1288 void SetGPIDebounceFirstEdge(int GPIDebounceFirstEdge);
1289
1290 // Debounce time (x * 10us) (XI_PRM_DEBOUNCE_T1)
1291 int GetGPIDebounceSecondEdge();
1292 int GetGPIDebounceSecondEdge_Maximum();
1293 int GetGPIDebounceSecondEdge_Minimum();
1294 int GetGPIDebounceSecondEdge_Increment();
1295 void SetGPIDebounceSecondEdge(int GPIDebounceSecondEdge);
1296
1297 // Debounce polarity (pol = 1 t0 - falling edge, t1 - rising edge) (XI_PRM_DEBOUNCE_POL)
1298 int GetGPIDebouncePolarity();
1299 int GetGPIDebouncePolarity_Maximum();
1300 int GetGPIDebouncePolarity_Minimum();
1301 int GetGPIDebouncePolarity_Increment();
1302 void SetGPIDebouncePolarity(int GPIDebouncePolarity);
1303
1304
1305 //-------------------------------------------------------------------------------------------------------------------
1306 // ---- Parameter Group: Lens Control
1307 //-------------------------------------------------------------------------------------------------------------------
1308
1309
1310 // Status of lens control interface. This shall be set to XI_ON before any Lens operations. (XI_PRM_LENS_MODE)
1311
1312 bool IsLensMode();
1313
1314 void EnableLensMode();
1315 void DisableLensMode();
1316
1317 // Current lens aperture value in stops. Examples: 2.8, 4, 5.6, 8, 11 (XI_PRM_LENS_APERTURE_VALUE)
1318
1319 float GetLensApertureValue();
1320 float GetLensApertureValue_Maximum();
1321 float GetLensApertureValue_Minimum();
1322 float GetLensApertureValue_Increment();
1323
1324 void SetLensApertureValue(float LensApertureValue);
1325
1326 // Current aperture index as reported by lens. (XI_PRM_LENS_APERTURE_INDEX)
1327 int GetLensApertureIndex();
1328 int GetLensApertureIndex_Maximum();
1329 int GetLensApertureIndex_Minimum();
1330 int GetLensApertureIndex_Increment();
1331 void SetLensApertureIndex(int LensApertureIndex);
1332
1333 // Lens current focus movement value to be used by XI_PRM_LENS_FOCUS_MOVE in motor steps. (XI_PRM_LENS_FOCUS_MOVEMENT_VALUE)
1334 int GetLensFocusMovementValue();
1335 int GetLensFocusMovementValue_Maximum();
1336 int GetLensFocusMovementValue_Minimum();
1337 int GetLensFocusMovementValue_Increment();
1338 void SetLensFocusMovementValue(int LensFocusMovementValue);
1339
1340 // Moves lens focus motor by steps set in XI_PRM_LENS_FOCUS_MOVEMENT_VALUE. (XI_PRM_LENS_FOCUS_MOVE)
1341
1342 void SetLensFocusMove(int LensFocusMove);
1343
1344 // Lens focus distance in cm. (XI_PRM_LENS_FOCUS_DISTANCE)
1345
1346 float GetLensFocusDistance();
1347 float GetLensFocusDistance_Maximum();
1348 float GetLensFocusDistance_Minimum();
1349 float GetLensFocusDistance_Increment();
1350
1351 // Lens focal distance in mm. (XI_PRM_LENS_FOCAL_LENGTH)
1352
1353 float GetLensFocalLength();
1354 float GetLensFocalLength_Maximum();
1355 float GetLensFocalLength_Minimum();
1356 float GetLensFocalLength_Increment();
1357
1358 // Selects the current feature which is accessible by XI_PRM_LENS_FEATURE. (XI_PRM_LENS_FEATURE_SELECTOR)
1359 XI_LENS_FEATURE GetLensFeatureSelector();
1360 XI_LENS_FEATURE GetLensFeatureSelector_Maximum();
1361 XI_LENS_FEATURE GetLensFeatureSelector_Minimum();
1362 int GetLensFeatureSelector_Increment();
1363
1364 void SetLensFeatureSelector(XI_LENS_FEATURE LensFeatureSelector);
1365
1366 // Allows access to lens feature value currently selected by XI_PRM_LENS_FEATURE_SELECTOR. (XI_PRM_LENS_FEATURE)
1367
1368 float GetLensFeature();
1369 float GetLensFeature_Maximum();
1370 float GetLensFeature_Minimum();
1371 float GetLensFeature_Increment();
1372
1373 void SetLensFeature(float LensFeature);
1374
1375 // Write/Read data sequences to/from lens (XI_PRM_LENS_COMM_DATA)
1376
1377 void GetLensCommData(char* buffer, int buffer_lenght);
1378
1379
1380 //-------------------------------------------------------------------------------------------------------------------
1381 // ---- Parameter Group: Device info parameters
1382 //-------------------------------------------------------------------------------------------------------------------
1383
1384
1385 // Return device name (XI_PRM_DEVICE_NAME)
1386
1387 void GetCameraName(char* buffer, int buffer_lenght);
1388
1389 // Return device type (XI_PRM_DEVICE_TYPE)
1390
1391 void GetCameraType(char* buffer, int buffer_lenght);
1392
1393 // Return device model id (XI_PRM_DEVICE_MODEL_ID)
1394 int GetModelId();
1395 int GetModelId_Maximum();
1396 int GetModelId_Minimum();
1397 int GetModelId_Increment();
1398 // Return device sensor model id (XI_PRM_SENSOR_MODEL_ID)
1399 int GetSensorId();
1400 int GetSensorId_Maximum();
1401 int GetSensorId_Minimum();
1402 int GetSensorId_Increment();
1403 // Return device serial number (XI_PRM_DEVICE_SN)
1404
1405 void GetSerialNumber(char* buffer, int buffer_lenght);
1406
1407 // Return sensor serial number (XI_PRM_DEVICE_SENS_SN)
1408
1409 void GetSensorSerialNumber(char* buffer, int buffer_lenght);
1410
1411 // Return unique device ID (XI_PRM_DEVICE_ID)
1412
1413 void GetDeviceId(char* buffer, int buffer_lenght);
1414
1415 // Return device system instance path. (XI_PRM_DEVICE_INSTANCE_PATH)
1416
1417 void GetDevicePath(char* buffer, int buffer_lenght);
1418
1419 // Represents the location of the device in the device tree. (XI_PRM_DEVICE_LOCATION_PATH)
1420
1421 void GetDeviceLocPath(char* buffer, int buffer_lenght);
1422
1423 // Return custom ID of camera. (XI_PRM_DEVICE_USER_ID)
1424
1425 void GetUserId(char* buffer, int buffer_lenght);
1426
1427 // Return device capability description XML. (XI_PRM_DEVICE_MANIFEST)
1428
1429 void GetDeviceManifest(char* buffer, int buffer_lenght);
1430
1431 // User image data at image header to track parameters synchronization. (XI_PRM_IMAGE_USER_DATA)
1432 int GetImageUserData();
1433 int GetImageUserData_Maximum();
1434 int GetImageUserData_Minimum();
1435 int GetImageUserData_Increment();
1436 void SetImageUserData(int ImageUserData);
1437
1438
1439 //-------------------------------------------------------------------------------------------------------------------
1440 // ---- Parameter Group: Device acquisition settings
1441 //-------------------------------------------------------------------------------------------------------------------
1442
1443
1444 // The alpha channel of RGB32 output image format. (XI_PRM_IMAGE_DATA_FORMAT_RGB32_ALPHA)
1445 int GetImageDataFormatRGB32Alpha();
1446 int GetImageDataFormatRGB32Alpha_Maximum();
1447 int GetImageDataFormatRGB32Alpha_Minimum();
1448 int GetImageDataFormatRGB32Alpha_Increment();
1449 void SetImageDataFormatRGB32Alpha(int ImageDataFormatRGB32Alpha);
1450
1451 // Buffer size in bytes sufficient for output image returned by xiGetImage (XI_PRM_IMAGE_PAYLOAD_SIZE)
1452 int GetImagePayloadSize();
1453 int GetImagePayloadSize_Maximum();
1454 int GetImagePayloadSize_Minimum();
1455 int GetImagePayloadSize_Increment();
1456 // Current format of pixels on transport layer. (XI_PRM_TRANSPORT_PIXEL_FORMAT)
1457 XI_GenTL_Image_Format_e GetTransportPixelFormat();
1458 XI_GenTL_Image_Format_e GetTransportPixelFormat_Maximum();
1459 XI_GenTL_Image_Format_e GetTransportPixelFormat_Minimum();
1460 int GetTransportPixelFormat_Increment();
1461
1462 void SetTransportPixelFormat(XI_GenTL_Image_Format_e TransportPixelFormat);
1463
1464 // Target selector for data - CPU RAM or GPU RAM (XI_PRM_TRANSPORT_DATA_TARGET)
1465 XI_TRANSPORT_DATA_TARGET_MODE GetTransportDataTarget();
1466 XI_TRANSPORT_DATA_TARGET_MODE GetTransportDataTarget_Maximum();
1467 XI_TRANSPORT_DATA_TARGET_MODE GetTransportDataTarget_Minimum();
1468 int GetTransportDataTarget_Increment();
1469
1470 void SetTransportDataTarget(XI_TRANSPORT_DATA_TARGET_MODE TransportDataTarget);
1471
1472 // Sensor clock frequency in Hz. (XI_PRM_SENSOR_CLOCK_FREQ_HZ)
1473
1474 float GetSensorClockFrequencyHz();
1475 float GetSensorClockFrequencyHz_Maximum();
1476 float GetSensorClockFrequencyHz_Minimum();
1477 float GetSensorClockFrequencyHz_Increment();
1478
1479 void SetSensorClockFrequencyHz(float SensorClockFrequencyHz);
1480
1481 // Sensor clock frequency index. Sensor with selected frequencies have possibility to set the frequency only by this index. (XI_PRM_SENSOR_CLOCK_FREQ_INDEX)
1482 int GetSensorClockFrequencyIndex();
1483 int GetSensorClockFrequencyIndex_Maximum();
1484 int GetSensorClockFrequencyIndex_Minimum();
1485 int GetSensorClockFrequencyIndex_Increment();
1486 void SetSensorClockFrequencyIndex(int SensorClockFrequencyIndex);
1487
1488 // Number of output channels from sensor used for data transfer. (XI_PRM_SENSOR_OUTPUT_CHANNEL_COUNT)
1489 XI_SENSOR_OUTPUT_CHANNEL_COUNT GetSensorOutputChannelCount();
1490 XI_SENSOR_OUTPUT_CHANNEL_COUNT GetSensorOutputChannelCount_Maximum();
1491 XI_SENSOR_OUTPUT_CHANNEL_COUNT GetSensorOutputChannelCount_Minimum();
1492 int GetSensorOutputChannelCount_Increment();
1493
1494 void SetSensorOutputChannelCount(XI_SENSOR_OUTPUT_CHANNEL_COUNT SensorOutputChannelCount);
1495
1496 // Define framerate in Hz (XI_PRM_FRAMERATE)
1497
1498 float GetFrameRate();
1499 float GetFrameRate_Maximum();
1500 float GetFrameRate_Minimum();
1501 float GetFrameRate_Increment();
1502
1503 void SetFrameRate(float FrameRate);
1504
1505 // Select counter (XI_PRM_COUNTER_SELECTOR)
1506 XI_COUNTER_SELECTOR GetCounterSelector();
1507 XI_COUNTER_SELECTOR GetCounterSelector_Maximum();
1508 XI_COUNTER_SELECTOR GetCounterSelector_Minimum();
1509 int GetCounterSelector_Increment();
1510
1511 void SetCounterSelector(XI_COUNTER_SELECTOR CounterSelector);
1512
1513 // Counter status (XI_PRM_COUNTER_VALUE)
1514 int GetCounterValue();
1515 int GetCounterValue_Maximum();
1516 int GetCounterValue_Minimum();
1517 int GetCounterValue_Increment();
1518 // Type of sensor frames timing. (XI_PRM_ACQ_TIMING_MODE)
1519 XI_ACQ_TIMING_MODE GetAcquisitionTimingMode();
1520 XI_ACQ_TIMING_MODE GetAcquisitionTimingMode_Maximum();
1521 XI_ACQ_TIMING_MODE GetAcquisitionTimingMode_Minimum();
1522 int GetAcquisitionTimingMode_Increment();
1523
1524 void SetAcquisitionTimingMode(XI_ACQ_TIMING_MODE AcquisitionTimingMode);
1525
1526 // Measure and return available interface bandwidth(int Megabits) (XI_PRM_AVAILABLE_BANDWIDTH)
1527 int GetBandwidthAvailable();
1528 int GetBandwidthAvailable_Maximum();
1529 int GetBandwidthAvailable_Minimum();
1530 int GetBandwidthAvailable_Increment();
1531 // Data move policy (XI_PRM_BUFFER_POLICY)
1532 XI_BP GetBufferPolicy();
1533 XI_BP GetBufferPolicy_Maximum();
1534 XI_BP GetBufferPolicy_Minimum();
1535 int GetBufferPolicy_Increment();
1536
1537 void SetBufferPolicy(XI_BP BufferPolicy);
1538
1539 // Activates LUT. (XI_PRM_LUT_EN)
1540
1541 bool IsLookUpTable();
1542
1543 void EnableLookUpTable();
1544 void DisableLookUpTable();
1545
1546 // Control the index (offset) of the coefficient to access in the LUT. (XI_PRM_LUT_INDEX)
1547 int GetLookUpTableIndex();
1548 int GetLookUpTableIndex_Maximum();
1549 int GetLookUpTableIndex_Minimum();
1550 int GetLookUpTableIndex_Increment();
1551 void SetLookUpTableIndex(int LookUpTableIndex);
1552
1553 // Value at entry LUTIndex of the LUT (XI_PRM_LUT_VALUE)
1554 int GetLookUpTableValue();
1555 int GetLookUpTableValue_Maximum();
1556 int GetLookUpTableValue_Minimum();
1557 int GetLookUpTableValue_Increment();
1558 void SetLookUpTableValue(int LookUpTableValue);
1559
1560 // Specifies the delay in microseconds (us) to apply after the trigger reception before activating it. (XI_PRM_TRG_DELAY)
1561 int GetTriggerDelay();
1562 int GetTriggerDelay_Maximum();
1563 int GetTriggerDelay_Minimum();
1564 int GetTriggerDelay_Increment();
1565 void SetTriggerDelay(int TriggerDelay);
1566
1567 // Defines how time stamp reset engine will be armed (XI_PRM_TS_RST_MODE)
1568 XI_TS_RST_MODE GetTimestampResetMode();
1569 XI_TS_RST_MODE GetTimestampResetMode_Maximum();
1570 XI_TS_RST_MODE GetTimestampResetMode_Minimum();
1571 int GetTimestampResetMode_Increment();
1572
1573 void SetTimestampResetMode(XI_TS_RST_MODE TimestampResetMode);
1574
1575 // Defines which source will be used for timestamp reset. Writing this parameter will trigger settings of engine (arming) (XI_PRM_TS_RST_SOURCE)
1576 XI_TS_RST_SOURCE GetTimestampResetSource();
1577 XI_TS_RST_SOURCE GetTimestampResetSource_Maximum();
1578 XI_TS_RST_SOURCE GetTimestampResetSource_Minimum();
1579 int GetTimestampResetSource_Increment();
1580
1581 void SetTimestampResetSource(XI_TS_RST_SOURCE TimestampResetSource);
1582
1583
1584 //-------------------------------------------------------------------------------------------------------------------
1585 // ---- Parameter Group: Extended Device parameters
1586 //-------------------------------------------------------------------------------------------------------------------
1587
1588
1589 // Returns 1 if camera connected and works properly. (XI_PRM_IS_DEVICE_EXIST)
1590
1591 bool IsExist();
1592
1593 // Acquisition buffer size in buffer_size_unit. Default bytes. (XI_PRM_ACQ_BUFFER_SIZE)
1594 int GetAcquisitionBufferSizeBytes();
1595 int GetAcquisitionBufferSizeBytes_Maximum();
1596 int GetAcquisitionBufferSizeBytes_Minimum();
1597 int GetAcquisitionBufferSizeBytes_Increment();
1598 void SetAcquisitionBufferSizeBytes(int AcquisitionBufferSizeBytes);
1599
1600 // Acquisition buffer size unit in bytes. Default 1. E.g. Value 1024 means that buffer_size is in KiBytes (XI_PRM_ACQ_BUFFER_SIZE_UNIT)
1601 int GetAcquisitionBufferSizeBytesUnit();
1602 int GetAcquisitionBufferSizeBytesUnit_Maximum();
1603 int GetAcquisitionBufferSizeBytesUnit_Minimum();
1604 int GetAcquisitionBufferSizeBytesUnit_Increment();
1605 void SetAcquisitionBufferSizeBytesUnit(int AcquisitionBufferSizeBytesUnit);
1606
1607 // Acquisition transport buffer size in bytes (XI_PRM_ACQ_TRANSPORT_BUFFER_SIZE)
1608 int GetAcquisitionTransportBufferSizeBytes();
1609 int GetAcquisitionTransportBufferSizeBytes_Maximum();
1610 int GetAcquisitionTransportBufferSizeBytes_Minimum();
1611 int GetAcquisitionTransportBufferSizeBytes_Increment();
1612 void SetAcquisitionTransportBufferSizeBytes(int AcquisitionTransportBufferSizeBytes);
1613
1614 // Acquisition transport packet size in bytes (XI_PRM_ACQ_TRANSPORT_PACKET_SIZE)
1615 int GetAcquisitionTransportPacketSizeBytes();
1616 int GetAcquisitionTransportPacketSizeBytes_Maximum();
1617 int GetAcquisitionTransportPacketSizeBytes_Minimum();
1618 int GetAcquisitionTransportPacketSizeBytes_Increment();
1619 void SetAcquisitionTransportPacketSizeBytes(int AcquisitionTransportPacketSizeBytes);
1620
1621 // Queue of field/frame buffers (XI_PRM_BUFFERS_QUEUE_SIZE)
1622 int GetAcquisitionQueueImagesCount();
1623 int GetAcquisitionQueueImagesCount_Maximum();
1624 int GetAcquisitionQueueImagesCount_Minimum();
1625 int GetAcquisitionQueueImagesCount_Increment();
1626 void SetAcquisitionQueueImagesCount(int AcquisitionQueueImagesCount);
1627
1628 // Number of buffers to commit to low level (XI_PRM_ACQ_TRANSPORT_BUFFER_COMMIT)
1629 int GetAcquisitionTransportBufferCommit();
1630 int GetAcquisitionTransportBufferCommit_Maximum();
1631 int GetAcquisitionTransportBufferCommit_Minimum();
1632 int GetAcquisitionTransportBufferCommit_Increment();
1633 void SetAcquisitionTransportBufferCommit(int AcquisitionTransportBufferCommit);
1634
1635 // GetImage returns most recent frame (XI_PRM_RECENT_FRAME)
1636
1637 bool IsSelectRecentImage();
1638
1639 void EnableSelectRecentImage();
1640 void DisableSelectRecentImage();
1641
1642 // Resets the camera to default state. (XI_PRM_DEVICE_RESET)
1643
1644 void SetDeviceReset(int DeviceReset);
1645
1646
1647 //-------------------------------------------------------------------------------------------------------------------
1648 // ---- Parameter Group: Sensor Defects Correction
1649 //-------------------------------------------------------------------------------------------------------------------
1650
1651
1652 // Correction of column FPN (XI_PRM_COLUMN_FPN_CORRECTION)
1653 XI_SWITCH GetColumnFpnCorrection();
1654 XI_SWITCH GetColumnFpnCorrection_Maximum();
1655 XI_SWITCH GetColumnFpnCorrection_Minimum();
1656 int GetColumnFpnCorrection_Increment();
1657
1658 void SetColumnFpnCorrection(XI_SWITCH ColumnFpnCorrection);
1659
1660 // Correction of row FPN (XI_PRM_ROW_FPN_CORRECTION)
1661 XI_SWITCH GetRowFpnCorrection();
1662 XI_SWITCH GetRowFpnCorrection_Maximum();
1663 XI_SWITCH GetRowFpnCorrection_Minimum();
1664 int GetRowFpnCorrection_Increment();
1665
1666 void SetRowFpnCorrection(XI_SWITCH RowFpnCorrection);
1667
1668 // Select image correction function (XI_PRM_IMAGE_CORRECTION_SELECTOR)
1669 XI_IMAGE_CORRECTION_SELECTOR GetImageCorrectionSelector();
1670 XI_IMAGE_CORRECTION_SELECTOR GetImageCorrectionSelector_Maximum();
1671 XI_IMAGE_CORRECTION_SELECTOR GetImageCorrectionSelector_Minimum();
1672 int GetImageCorrectionSelector_Increment();
1673
1674 void SetImageCorrectionSelector(XI_IMAGE_CORRECTION_SELECTOR ImageCorrectionSelector);
1675
1676 // Select image correction selected function value (XI_PRM_IMAGE_CORRECTION_VALUE)
1677
1678 float GetImageCorrectionValue();
1679 float GetImageCorrectionValue_Maximum();
1680 float GetImageCorrectionValue_Minimum();
1681 float GetImageCorrectionValue_Increment();
1682
1683 void SetImageCorrectionValue(float ImageCorrectionValue);
1684
1685
1686 //-------------------------------------------------------------------------------------------------------------------
1687 // ---- Parameter Group: Sensor features
1688 //-------------------------------------------------------------------------------------------------------------------
1689
1690
1691 // Current sensor mode. Allows to select sensor mode by one integer. Setting of this parameter affects: image dimensions and downsampling. (XI_PRM_SENSOR_MODE)
1692 XI_SENSOR_MODE GetSensorMode();
1693 XI_SENSOR_MODE GetSensorMode_Maximum();
1694 XI_SENSOR_MODE GetSensorMode_Minimum();
1695 int GetSensorMode_Increment();
1696
1697 void SetSensorMode(XI_SENSOR_MODE SensorMode);
1698
1699 // Enable High Dynamic Range feature. (XI_PRM_HDR)
1700
1701 bool IsHDR();
1702
1703 void EnableHDR();
1704 void DisableHDR();
1705
1706 // The number of kneepoints in the PWLR. (XI_PRM_HDR_KNEEPOINT_COUNT)
1707 int GetHDR_KNEEPOINT_COUNT();
1708 int GetHDR_KNEEPOINT_COUNT_Maximum();
1709 int GetHDR_KNEEPOINT_COUNT_Minimum();
1710 int GetHDR_KNEEPOINT_COUNT_Increment();
1711 void SetHDR_KNEEPOINT_COUNT(int HDR_KNEEPOINT_COUNT);
1712
1713 // position of first kneepoint(in % of XI_PRM_EXPOSURE) (XI_PRM_HDR_T1)
1714 int GetHDRTimeSlope1();
1715 int GetHDRTimeSlope1_Maximum();
1716 int GetHDRTimeSlope1_Minimum();
1717 int GetHDRTimeSlope1_Increment();
1718 void SetHDRTimeSlope1(int HDRTimeSlope1);
1719
1720 // position of second kneepoint (in % of XI_PRM_EXPOSURE) (XI_PRM_HDR_T2)
1721 int GetHDRTimeSlope2();
1722 int GetHDRTimeSlope2_Maximum();
1723 int GetHDRTimeSlope2_Minimum();
1724 int GetHDRTimeSlope2_Increment();
1725 void SetHDRTimeSlope2(int HDRTimeSlope2);
1726
1727 // value of first kneepoint (% of sensor saturation) (XI_PRM_KNEEPOINT1)
1728 int GetHDRKnee1Percent();
1729 int GetHDRKnee1Percent_Maximum();
1730 int GetHDRKnee1Percent_Minimum();
1731 int GetHDRKnee1Percent_Increment();
1732 void SetHDRKnee1Percent(int HDRKnee1Percent);
1733
1734 // value of second kneepoint (% of sensor saturation) (XI_PRM_KNEEPOINT2)
1735 int GetHDRKnee2Percent();
1736 int GetHDRKnee2Percent_Maximum();
1737 int GetHDRKnee2Percent_Minimum();
1738 int GetHDRKnee2Percent_Increment();
1739 void SetHDRKnee2Percent(int HDRKnee2Percent);
1740
1741 // Last image black level counts. Can be used for Offline processing to recall it. (XI_PRM_IMAGE_BLACK_LEVEL)
1742 int GetImageBlackLevel();
1743 int GetImageBlackLevel_Maximum();
1744 int GetImageBlackLevel_Minimum();
1745 int GetImageBlackLevel_Increment();
1746 void SetImageBlackLevel(int ImageBlackLevel);
1747
1748
1749 //-------------------------------------------------------------------------------------------------------------------
1750 // ---- Parameter Group: Version info
1751 //-------------------------------------------------------------------------------------------------------------------
1752
1753
1754 // Returns version of API. (XI_PRM_API_VERSION)
1755
1756 void GetVersionAPI(char* buffer, int buffer_lenght);
1757
1758 // Returns version of current device driver. (XI_PRM_DRV_VERSION)
1759
1760 void GetVersionDriver(char* buffer, int buffer_lenght);
1761
1762 // Returns version of MCU1 firmware. (XI_PRM_MCU1_VERSION)
1763
1764 void GetVersionMCU1(char* buffer, int buffer_lenght);
1765
1766 // Returns version of MCU2 firmware. (XI_PRM_MCU2_VERSION)
1767
1768 void GetVersionMCU2(char* buffer, int buffer_lenght);
1769
1770 // Returns version of MCU3 firmware. (XI_PRM_MCU3_VERSION)
1771
1772 void GetVersionMCU3(char* buffer, int buffer_lenght);
1773
1774 // Returns version of FPGA firmware currently running. (XI_PRM_FPGA1_VERSION)
1775
1776 void GetVersionFPGA1(char* buffer, int buffer_lenght);
1777
1778 // Returns version of XML manifest. (XI_PRM_XMLMAN_VERSION)
1779
1780 void GetVersionXMLMAN(char* buffer, int buffer_lenght);
1781
1782 // Returns hardware revision number. (XI_PRM_HW_REVISION)
1783
1784 void GetHWRevision(char* buffer, int buffer_lenght);
1785
1786
1787 //-------------------------------------------------------------------------------------------------------------------
1788 // ---- Parameter Group: API features
1789 //-------------------------------------------------------------------------------------------------------------------
1790
1791
1792 // Set debug level (XI_PRM_DEBUG_LEVEL)
1793 XI_DEBUG_LEVEL GetDebugLevel();
1794 XI_DEBUG_LEVEL GetDebugLevel_Maximum();
1795 XI_DEBUG_LEVEL GetDebugLevel_Minimum();
1796 int GetDebugLevel_Increment();
1797
1798 void SetDebugLevel(XI_DEBUG_LEVEL DebugLevel);
1799
1800 // Automatic bandwidth calculation, (XI_PRM_AUTO_BANDWIDTH_CALCULATION)
1801
1802 bool IsAutoBandwidthCalculation();
1803
1804 void EnableAutoBandwidthCalculation();
1805 void DisableAutoBandwidthCalculation();
1806
1807 // Enables (2015/FAPI) processing chain for MQ MU cameras. If disabled - legacy processing 2006 is used. (XI_PRM_NEW_PROCESS_CHAIN_ENABLE)
1808
1809 bool IsNewProcessChainEnable();
1810
1811 void EnableNewProcessChainEnable();
1812 void DisableNewProcessChainEnable();
1813
1814 // Enable enumeration of golden devices (XI_PRM_CAM_ENUM_GOLDEN_ENABLED)
1815
1816 bool IsCamEnumGoldenEnabled();
1817
1818 void EnableCamEnumGoldenEnabled();
1819 void DisableCamEnumGoldenEnabled();
1820
1821 // Resets USB device if started as bootloader (XI_PRM_RESET_USB_IF_BOOTLOADER)
1822
1823 bool IsResetUSBIfBootloader();
1824
1825 void EnableResetUSBIfBootloader();
1826 void DisableResetUSBIfBootloader();
1827
1828 // Number of camera simulators to be available. (XI_PRM_CAM_SIMULATORS_COUNT)
1829 int GetCameraSimulatorsCount();
1830 int GetCameraSimulatorsCount_Maximum();
1831 int GetCameraSimulatorsCount_Minimum();
1832 int GetCameraSimulatorsCount_Increment();
1833 void SetCameraSimulatorsCount(int CameraSimulatorsCount);
1834
1835 // Camera sensor will not be initialized when 1=XI_ON is set. (XI_PRM_CAM_SENSOR_INIT_DISABLED)
1836
1837 bool IsCameraSensorInitDisabled();
1838
1839 void EnableCameraSensorInitDisabled();
1840 void DisableCameraSensorInitDisabled();
1841
1842 // Number of threads per image processor (XI_PRM_PROC_NUM_THREADS)
1843 int GetProcessorNumberThreads();
1844 int GetProcessorNumberThreads_Maximum();
1845 int GetProcessorNumberThreads_Minimum();
1846 int GetProcessorNumberThreads_Increment();
1847 void SetProcessorNumberThreads(int ProcessorNumberThreads);
1848
1849 // Set processing engine (XI_PRM_PROC_ENGINE)
1850 XI_PROC_ENGINE GetProcessingEngine();
1851 XI_PROC_ENGINE GetProcessingEngine_Maximum();
1852 XI_PROC_ENGINE GetProcessingEngine_Minimum();
1853 int GetProcessingEngine_Increment();
1854
1855 void SetProcessingEngine(XI_PROC_ENGINE ProcessingEngine);
1856
1857
1858 //-------------------------------------------------------------------------------------------------------------------
1859 // ---- Parameter Group: Camera FFS
1860 //-------------------------------------------------------------------------------------------------------------------
1861
1862
1863 // Read file from camera flash filesystem. (XI_PRM_READ_FILE_FFS)
1864
1865 void GetReadFileFFS(char* buffer, int buffer_lenght);
1866
1867 // Write file to camera flash filesystem. (XI_PRM_WRITE_FILE_FFS)
1868
1869 void GetWriteFileFFS(char* buffer, int buffer_lenght);
1870
1871 void SetWriteFileFFS(char* WriteFileFFS);
1872
1873 // Set name of file to be written/read from camera FFS. (XI_PRM_FFS_FILE_NAME)
1874
1875 void GetFFSFileName(char* buffer, int buffer_lenght);
1876
1877 void SetFFSFileName(char* FFSFileName);
1878
1879 // File number. (XI_PRM_FFS_FILE_ID)
1880 int GetFFSFileId();
1881 int GetFFSFileId_Maximum();
1882 int GetFFSFileId_Minimum();
1883 int GetFFSFileId_Increment();
1884 // Size of file. (XI_PRM_FFS_FILE_SIZE)
1885 int GetFFSFileSize();
1886 int GetFFSFileSize_Maximum();
1887 int GetFFSFileSize_Minimum();
1888 int GetFFSFileSize_Increment();
1889 // Size of free camera FFS. (XI_PRM_FREE_FFS_SIZE)
1890 uint64_t GetFreeFFSSize();
1891 uint64_t GetFreeFFSSize_Maximum();
1892 uint64_t GetFreeFFSSize_Minimum();
1893 uint64_t GetFreeFFSSize_Increment();
1894 // Size of used camera FFS. (XI_PRM_USED_FFS_SIZE)
1895 uint64_t GetUsedFFSSize();
1896 uint64_t GetUsedFFSSize_Maximum();
1897 uint64_t GetUsedFFSSize_Minimum();
1898 uint64_t GetUsedFFSSize_Increment();
1899 // Setting of key enables file operations on some cameras. (XI_PRM_FFS_ACCESS_KEY)
1900 int GetFFSAccessKey();
1901 int GetFFSAccessKey_Maximum();
1902 int GetFFSAccessKey_Minimum();
1903 int GetFFSAccessKey_Increment();
1904 void SetFFSAccessKey(int FFSAccessKey);
1905
1906
1907 //-------------------------------------------------------------------------------------------------------------------
1908 // ---- Parameter Group: APIContextControl
1909 //-------------------------------------------------------------------------------------------------------------------
1910
1911
1912 // List of current parameters settings context - parameters with values. Used for offline processing. (XI_PRM_API_CONTEXT_LIST)
1913
1914 void GetApiContextList(char* buffer, int buffer_lenght);
1915
1916 void SetApiContextList(char* ApiContextList);
1917
1918
1919 //-------------------------------------------------------------------------------------------------------------------
1920 // ---- Parameter Group: Sensor Control
1921 //-------------------------------------------------------------------------------------------------------------------
1922
1923
1924 // Selects the current feature which is accessible by XI_PRM_SENSOR_FEATURE_VALUE. (XI_PRM_SENSOR_FEATURE_SELECTOR)
1925 XI_SENSOR_FEATURE_SELECTOR GetSensorFeatureSelector();
1926 XI_SENSOR_FEATURE_SELECTOR GetSensorFeatureSelector_Maximum();
1927 XI_SENSOR_FEATURE_SELECTOR GetSensorFeatureSelector_Minimum();
1928 int GetSensorFeatureSelector_Increment();
1929
1930 void SetSensorFeatureSelector(XI_SENSOR_FEATURE_SELECTOR SensorFeatureSelector);
1931
1932 // Allows access to sensor feature value currently selected by XI_PRM_SENSOR_FEATURE_SELECTOR. (XI_PRM_SENSOR_FEATURE_VALUE)
1933 int GetSensorFeatureValue();
1934 int GetSensorFeatureValue_Maximum();
1935 int GetSensorFeatureValue_Minimum();
1936 int GetSensorFeatureValue_Increment();
1937 void SetSensorFeatureValue(int SensorFeatureValue);
1938
1939
1940 //-------------------------------------------------------------------------------------------------------------------
1941 // ---- Parameter Group: Extended Features
1942 //-------------------------------------------------------------------------------------------------------------------
1943
1944
1945 // Selection of extended feature. (XI_PRM_EXTENDED_FEATURE_SELECTOR)
1946 XI_EXT_FEATURE_SELECTOR GetExtendedFeatureSelector();
1947 XI_EXT_FEATURE_SELECTOR GetExtendedFeatureSelector_Maximum();
1948 XI_EXT_FEATURE_SELECTOR GetExtendedFeatureSelector_Minimum();
1949 int GetExtendedFeatureSelector_Increment();
1950
1951 void SetExtendedFeatureSelector(XI_EXT_FEATURE_SELECTOR ExtendedFeatureSelector);
1952
1953 // Extended feature value. (XI_PRM_EXTENDED_FEATURE)
1954 int GetExtendedFeature();
1955 int GetExtendedFeature_Maximum();
1956 int GetExtendedFeature_Minimum();
1957 int GetExtendedFeature_Increment();
1958 void SetExtendedFeature(int ExtendedFeature);
1959
1960 // Selects device unit. (XI_PRM_DEVICE_UNIT_SELECTOR)
1961 XI_DEVICE_UNIT_SELECTOR GetDeviceUnitSelector();
1962 XI_DEVICE_UNIT_SELECTOR GetDeviceUnitSelector_Maximum();
1963 XI_DEVICE_UNIT_SELECTOR GetDeviceUnitSelector_Minimum();
1964 int GetDeviceUnitSelector_Increment();
1965
1966 void SetDeviceUnitSelector(XI_DEVICE_UNIT_SELECTOR DeviceUnitSelector);
1967
1968 // Selects register of selected device unit(XI_PRM_DEVICE_UNIT_SELECTOR). (XI_PRM_DEVICE_UNIT_REGISTER_SELECTOR)
1969 int GetDeviceUnitRegisterSelector();
1970 int GetDeviceUnitRegisterSelector_Maximum();
1971 int GetDeviceUnitRegisterSelector_Minimum();
1972 int GetDeviceUnitRegisterSelector_Increment();
1973 void SetDeviceUnitRegisterSelector(int DeviceUnitRegisterSelector);
1974
1975 // Sets/gets register value of selected device unit(XI_PRM_DEVICE_UNIT_SELECTOR). (XI_PRM_DEVICE_UNIT_REGISTER_VALUE)
1976 int GetDeviceUnitRegister();
1977 int GetDeviceUnitRegister_Maximum();
1978 int GetDeviceUnitRegister_Minimum();
1979 int GetDeviceUnitRegister_Increment();
1980 void SetDeviceUnitRegister(int DeviceUnitRegister);
1981
1982 // Callback address of pointer that is called upon long tasks (e.g. XI_PRM_WRITE_FILE_FFS). (XI_PRM_API_PROGRESS_CALLBACK)
1983
1984 void GetApiProgressCallback(char* buffer, int buffer_lenght);
1985
1986 void SetApiProgressCallback(char* ApiProgressCallback);
1987
1988 // Selects the internal acquisition signal to read using XI_PRM_ACQUISITION_STATUS. (XI_PRM_ACQUISITION_STATUS_SELECTOR)
1989 XI_ACQUISITION_STATUS_SELECTOR GetAcquisitionStatusSelector();
1990 XI_ACQUISITION_STATUS_SELECTOR GetAcquisitionStatusSelector_Maximum();
1991 XI_ACQUISITION_STATUS_SELECTOR GetAcquisitionStatusSelector_Minimum();
1992 int GetAcquisitionStatusSelector_Increment();
1993
1994 void SetAcquisitionStatusSelector(XI_ACQUISITION_STATUS_SELECTOR AcquisitionStatusSelector);
1995
1996 // Acquisition status(True/False) (XI_PRM_ACQUISITION_STATUS)
1997 XI_SWITCH GetAcquisitionStatus();
1998 XI_SWITCH GetAcquisitionStatus_Maximum();
1999 XI_SWITCH GetAcquisitionStatus_Minimum();
2000 int GetAcquisitionStatus_Increment();
2001
2002 // Data Pipe Unit Selector. (XI_PRM_DP_UNIT_SELECTOR)
2003 XI_DP_UNIT_SELECTOR GetDataPipeUnitSelector();
2004 XI_DP_UNIT_SELECTOR GetDataPipeUnitSelector_Maximum();
2005 XI_DP_UNIT_SELECTOR GetDataPipeUnitSelector_Minimum();
2006 int GetDataPipeUnitSelector_Increment();
2007
2008 void SetDataPipeUnitSelector(XI_DP_UNIT_SELECTOR DataPipeUnitSelector);
2009
2010 // Data Pipe Processor Selector. (XI_PRM_DP_PROC_SELECTOR)
2011 XI_DP_PROC_SELECTOR GetDataPipeProcSelector();
2012 XI_DP_PROC_SELECTOR GetDataPipeProcSelector_Maximum();
2013 XI_DP_PROC_SELECTOR GetDataPipeProcSelector_Minimum();
2014 int GetDataPipeProcSelector_Increment();
2015
2016 void SetDataPipeProcSelector(XI_DP_PROC_SELECTOR DataPipeProcSelector);
2017
2018 // Data Pipe Processor parameter Selector. (XI_PRM_DP_PARAM_SELECTOR)
2019 XI_DP_PARAM_SELECTOR GetDataPipeParamSelector();
2020 XI_DP_PARAM_SELECTOR GetDataPipeParamSelector_Maximum();
2021 XI_DP_PARAM_SELECTOR GetDataPipeParamSelector_Minimum();
2022 int GetDataPipeParamSelector_Increment();
2023
2024 void SetDataPipeParamSelector(XI_DP_PARAM_SELECTOR DataPipeParamSelector);
2025
2026 // Data Pipe processor parameter value (XI_PRM_DP_PARAM_VALUE)
2027
2028 float GetDataPipeParamValue();
2029 float GetDataPipeParamValue_Maximum();
2030 float GetDataPipeParamValue_Minimum();
2031 float GetDataPipeParamValue_Increment();
2032
2033 void SetDataPipeParamValue(float DataPipeParamValue);
2034
2035 // Enable or disable low level streaming via GenTL. (XI_PRM_GENTL_DATASTREAM_ENABLED)
2036
2037 bool IsGenTLStreamEn();
2038
2039 void EnableGenTLStreamEn();
2040 void DisableGenTLStreamEn();
2041
2042 // Get GenTL stream context pointer for low level streaming (XI_PRM_GENTL_DATASTREAM_CONTEXT)
2043
2044 void GetGenTLStreamContext(char* buffer, int buffer_lenght);
2045
2046
2047
2048private:
2049 // internal
2050 void CheckResult(XI_RETURN res,const char* location);
2051 void CheckResultParam(XI_RETURN res, const char* location, const char* param);
2052private:
2053 HANDLE camera_handle;
2054 xiAPIplus_Camera_Parameters parameters;
2055 int image_timeout_ms;
2056 xiAPIplus_Image last_image;
2057 bool acquisition_active;
2058 bool is_debug_enabled;
2059};
2060
2061// -----------------------------------------------
2062// class xiAPIplus - ImageProcessing
2063// -----------------------------------------------
2064
2065class xiAPIplus_ImageProcessing
2066{
2067public:
2068 xiAPIplus_ImageProcessing();
2069 ~xiAPIplus_ImageProcessing();
2070
2071 /**
2072 * xiSetProcParam
2073 * Sets the selected parameter to processing
2074 * @param[in] prm parameter name string.
2075 * @param[in] val pointer to parameter set value.
2076 * @param[in] size size of val.
2077 * @param[in] type val data type.
2078 * @return XI_OK on success, error value otherwise.
2079 */
2080 void SetParam(const char* prm, void* val, DWORD size, XI_PRM_TYPE type);
2081
2082 /**
2083 * PushImage
2084 * Set unprocessed image to processing chain
2085 * @param[in] First byte of first pixel of image to be processed
2086 */
2087 void PushImage(unsigned char* first_pixel);
2088
2089 /**
2090 * PullImage
2091 * Pulls processed image from processing chain into last_image_
2092 */
2093
2094 void PullImage();
2095
2096 /**
2097 * GetImage
2098 * Returns point to last processed image
2099 * @return pointer to last_image_ (xiAPIplus_Image)
2100 */
2101 void GetImage(xiAPIplus_Image* ret_image);
2102
2103
2104 void CheckResult(XI_RETURN res, const char* location);
2105private:
2106 xiProcessingHandle_t processing_handle_; //!< Handle for current processing context
2107 xiAPIplus_Image last_image_; //!< last image get by PullImage
2108};
2109
2110
2111class xiAPIplusCameraOcv : public xiAPIplus_Camera
2112{
2113public:
2114 /**
2115 * Initialize the xiAPIplusCameraOcv class.
2116 */
2117 xiAPIplusCameraOcv();
2118 /**
2119 * Class destructor. Free allocated memory, release images
2120 */
2121 virtual ~xiAPIplusCameraOcv();
2122 /**
2123 * Reads an image from the camera using XiAPI, stores the image in OpenCV Mat format.
2124 * @return OpenCV Mat image.
2125 */
2126 cv::Mat GetNextImageOcvMat(); //Reads an image and converts it to OpenCV Mat
2127 /**
2128 * Converts a XiAPI image (xiAPIplus_Image*) to OpenCV Mat.
2129 * @param input_image[in] Input xiAPIplus_Image* to be converted.
2130 * @return converted OpenCV IpliImage* image.
2131 */
2132 cv::Mat ConvertOcvMat(xiAPIplus_Image * input_image); //Converts an image to OpenCV Mat
2133 //virtual xiAPIplusCameraOcv& operator >> (CV_OUT Mat& input_image);
2134
2135 private:
2136
2137 /**
2138 * Resets the Opencv image if properties of XI_IMG have changed. Resets the cv_mat_image_.
2139 */
2140 void resetCvImage_(); //Resets the OpenCV image properties if XI_IMG format has changed
2141 cv::Mat cv_mat_image_;
2142 xiAPIplus_Image * next_image_;
2143 int timeout_;
2144 int counter_;
2145 int index_;
2146};
2147
2148 © 2019 GitHub, Inc.
2149 Terms
2150 Privacy
2151 Security
2152 Status
2153 Help
2154
2155 Contact GitHub
2156 Pricing
2157 API
2158 Training
2159 Blog
2160 About