1647 lines
62 KiB
C
1647 lines
62 KiB
C
/**
|
||
* @file IKapBoard.h
|
||
* @brief IKapBoard library main header file.
|
||
* @author iTek OptoElectronics Ltd
|
||
* @par Copyright (c) iTek OptoElectronics Ltd.
|
||
* All Rights Reserved
|
||
* @date 2019:06:11
|
||
* @note This file contains the defines necessary to use the IKapBoard "C" user interface.
|
||
* @version <1.7.0.1>
|
||
*/
|
||
|
||
/**
|
||
* @file IKapBoard.h
|
||
* @brief IKapBoard library main header file.
|
||
* @author iTek OptoElectronics Ltd
|
||
* @par Copyright (c) iTek OptoElectronics Ltd.
|
||
* All Rights Reserved
|
||
* @date 2018:01:09
|
||
* @note This file contains the defines necessary to use the IKapBoard "C" user interface.
|
||
* @version <1.7.0.1>
|
||
*/
|
||
|
||
#ifndef _IKAP_BOARD_H
|
||
#define _IKAP_BOARD_H
|
||
|
||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||
# ifdef IKAPBOARD_EXPORTS
|
||
# define IKAPBOARDDLL __declspec(dllexport)
|
||
# else
|
||
# define IKAPBOARDDLL __declspec(dllimport)
|
||
# endif
|
||
# define IKAPBOARD_CC _stdcall
|
||
# define IKAPBOARD_PACKING 8
|
||
#elif defined(__GNUC__)
|
||
# if __GNC__ >= 4 && defined(IKAPBOARD_EXPORTS)
|
||
# define IKAPBOARDDLL __attribute__((visibility("default")))
|
||
# else
|
||
# define IKAPBOARDDLL
|
||
# endif
|
||
# define IKAPBOARD_CC
|
||
# define IKAPBOARD_PACKING 8
|
||
#else
|
||
# error Unsupported platform
|
||
#endif
|
||
|
||
/*
|
||
Event type
|
||
*/
|
||
#define IKEvent_GrabStart (0x00000000)
|
||
#define IKEvent_FrameReady (0x00000001)
|
||
#define IKEvent_GrabStop (0x00000002)
|
||
#define IKEvent_FrameLost (0x00000003)
|
||
#define IKEvent_TimeOut (0x00000004)
|
||
#define IKEvent_PixelClock (0x00000005)
|
||
#define IKEvent_No_PixelClock (0x00000006)
|
||
#define IKEvent_External_Trigger_Ignored (0x00000007)
|
||
#define IKEvent_CXP_Over_Current_Protection (0x00000008)
|
||
#define IKEvent_CXP_CRC_Check_Error (0x00000009)
|
||
#define IKEvent_CXP_Transfer_Error (0x0000000A)
|
||
#define IKEvent_Line_Timeout (0x0000000B)
|
||
#define IKEvent_CXP_Incomplete_Frame (0x0000000C)
|
||
#define IKEvent_GVB_Incomplete_Frame (0x0000000D)
|
||
#define IKEvent_GVB_GVSP_CRC_Check_Error (0x0000000E)
|
||
#define IKEvent_GrabLine (0x00100000)
|
||
#define IKEvent_GrabLineEnd (0x00200000)
|
||
#define IKEvent_INPUT_FALLING_EDGE (0x00400000)
|
||
#define IKEVENT_INPUT_RISING_EDGE (0x00800000)
|
||
#define IKEvent_Start_Of_Frame (0x01000000)
|
||
#define IKEvent_End_Of_Frame (0x02000000)
|
||
#define IKEvent_End_Of_Transfer (0x04000000)
|
||
|
||
/*
|
||
User defined callback
|
||
*/
|
||
typedef void(IKAPBOARD_CC *HookFnPtr)(void *pContext);
|
||
|
||
/*
|
||
Resource Type
|
||
*/
|
||
#define IKBoardUnknown 0xFFFFFFFF
|
||
#define IKBoardALL 0x00000000
|
||
#define IKBoardUSB30 0x00000001
|
||
#define IKBoardPCIE 0x00000002
|
||
|
||
/*
|
||
Parameter information
|
||
*/
|
||
#define IKP_IMAGE_WIDTH (0x10000001)
|
||
#define IKP_IMAGE_HEIGHT (0x10000002)
|
||
#define IKP_DATA_FORMAT (0x10000003)
|
||
#define IKP_BOARD_BIT (0x10000004)
|
||
#define IKP_TIME_OUT (0x10000005)
|
||
#define IKP_SCAN_TYPE (0x10000006)
|
||
#define IKP_FPGA_VERSION (0x10000007)
|
||
#define IKP_INTERNEL_BUFFER_SIZE (0x10000008)
|
||
#define IKP_FRAME_SIZE (0x10000009)
|
||
#define IKP_IMAGE_TYPE (0x1000000a)
|
||
#define IKP_FRAME_COUNT (0x1000000b)
|
||
#define IKP_FRAME_TRANSFER_MODE (0x1000000c)
|
||
#define IKP_FRAME_AUTO_CLEAR (0x1000000d)
|
||
#define IKP_GRAB_MODE (0x1000000e)
|
||
#define IKP_FRAME_TIME_STAMP_LOW (0x1000000f)
|
||
#define IKP_FRAME_TIME_STAMP_HIGH (0x10000010)
|
||
#define IKP_BLOCK_TIME_STAMP_LOW (0x10000011)
|
||
#define IKP_BLOCK_TIME_STAMP_HIGH (0x10000012)
|
||
#define IKP_TAP_NUMBER (0x10000013)
|
||
#define IKP_TAP_ARRANGEMENT (0x10000014)
|
||
#define IKP_BAYER_PATTERN (0x10000015)
|
||
#define IKP_PIXEL_CLOCK (0x10000016)
|
||
#define IKP_DATA_VALID_ENABLE (0x10000017)
|
||
#define IKP_CC1_SOURCE (0x10000018)
|
||
#define IKP_CC2_SOURCE (0x10000019)
|
||
#define IKP_CC3_SOURCE (0x1000001a)
|
||
#define IKP_CC4_SOURCE (0x1000001b)
|
||
#define IKP_BOARD_TRIGGER_MODE (0x1000001c)
|
||
#define IKP_BOARD_TRIGGER_SOURCE (0x1000001d)
|
||
#define IKP_GENERAL_INPUT1_SAMPLE_MODE (0x1000001e)
|
||
#define IKP_GENERAL_INPUT1_PROTECT_MODE (0x1000001f)
|
||
#define IKP_GENERAL_INPUT1_MINIMUM_INTERVAL (0x10000020)
|
||
#define IKP_GENERAL_INPUT2_SAMPLE_MODE (0x10000021)
|
||
#define IKP_GENERAL_INPUT2_PROTECT_MODE (0x10000022)
|
||
#define IKP_GENERAL_INPUT2_MINIMUM_INTERVAL (0x10000023)
|
||
#define IKP_SHAFT_ENCODER1_PULSE_DROP (0x10000024)
|
||
#define IKP_SHAFT_ENCODER1_PROTECT_MODE (0x10000025)
|
||
#define IKP_SHAFT_ENCODER1_MINIMUM_INTERVAL (0x10000026)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE (0x10000027)
|
||
#define IKP_INTEGRATION_TRIGGER_FREQUENCY (0x10000028)
|
||
#define IKP_STROBE_TRIGGER_SOURCE (0x10000029)
|
||
#define IKP_BOARD_SYNC_OUTPUT1_SOURCE (0x1000002a)
|
||
#define IKP_BOARD_SYNC_OUTPUT2_SOURCE (0x1000002b)
|
||
#define IKP_GENERAL_OUTPUT1_SOURCE (0x1000002c)
|
||
#define IKP_GENERAL_OUTPUT2_SOURCE (0x1000002d)
|
||
#define IKP_INTEGRATION_METHOD (0x1000002e)
|
||
#define IKP_INTEGRATION_PARAM1 (0x1000002f)
|
||
#define IKP_INTEGRATION_PARAM2 (0x10000030)
|
||
#define IKP_INTEGRATION_PARAM3 (0x10000031)
|
||
#define IKP_INTEGRATION_PARAM4 (0x10000032)
|
||
#define IKP_INTEGRATION_POLARITY1 (0x10000033)
|
||
#define IKP_INTEGRATION_POLARITY2 (0x10000034)
|
||
#define IKP_STROBE_METHOD (0x10000035)
|
||
#define IKP_STROBE_PARAM1 (0x10000036)
|
||
#define IKP_STROBE_PARAM2 (0x10000037)
|
||
#define IKP_STROBE_PARAM3 (0x10000038)
|
||
#define IKP_STROBE_PARAM4 (0x10000039)
|
||
#define IKP_STROBE_POLARITY (0x1000003a)
|
||
#define IKP_GENERAL_OUTPUT1_POLARITY (0x1000003b)
|
||
#define IKP_GENERAL_OUTPUT1_DELAY (0x1000003c)
|
||
#define IKP_GENERAL_OUTPUT2_POLARITY (0x1000003d)
|
||
#define IKP_GENERAL_OUTPUT2_DELAY (0x1000003e)
|
||
#define IKP_GENERAL_INPUT1_TRIGGER_MODE (0x1000003f)
|
||
#define IKP_GENERAL_INPUT2_TRIGGER_MODE (0x10000040)
|
||
#define IKP_BOARD_SYNC1_TRIGGER_MODE (0x10000041)
|
||
#define IKP_BOARD_SYNC2_TRIGGER_MODE (0x10000042)
|
||
#define IKP_SHAFT_ENCODER1_CHANNEL (0x10000043)
|
||
#define IKP_SHAFT_ENCODER1_MULTIPlY_FACTOR (0x10000044)
|
||
#define IKP_PCB_VERSION (0x10000045)
|
||
#define IKP_LVAL_FILTER (0x10000046)
|
||
#define IKP_FRAME_TRANSFER_PERIOD (0x10000047)
|
||
#define IKP_LINE_TRANSFER_PERIOD (0x10000048)
|
||
#define IKP_FPGA_EXTERNAL_TRIGGER_TIMEOUT (0x10000049)
|
||
#define IKP_IMAGE_OFFSET_X (0x10000050)
|
||
#define IKP_GENERAL_INPUT1_POLARITY (0x10000051)
|
||
#define IKP_GENERAL_INPUT1_MIN_WIDTH (0x10000052)
|
||
#define IKP_GENERAL_INPUT2_POLARITY (0x10000053)
|
||
#define IKP_GENERAL_INPUT2_MIN_WIDTH (0x10000054)
|
||
#define IKP_CAMERA_PIXEL_CLOCK (0x10000055)
|
||
#define IKP_PCIE_KERNAL_BLOCK_SIZE (0x10000056)
|
||
#define IKP_SOFTWARE_TRIGGER_WIDTH (0x10000057)
|
||
#define IKP_SOFTWARE_TRIGGER_PERIOD (0x10000058)
|
||
#define IKP_SOFTWARE_TRIGGER_COUNT (0x10000059)
|
||
#define IKP_SOFTWARE_TRIGGER_START (0x10000060)
|
||
#define IKP_SOFTWARE_TRIGGER_DELAY (0x10000061)
|
||
#define IKP_SFOTWARE_TRIGGER_POLARITY (0x10000062)
|
||
#define IKP_GRAB_STATUS (0x10000063)
|
||
#define IKP_CHECK_FRAME_VALID_SIGNAL (0x10000064)
|
||
#define IKP_PIXEL_CLOCK_POLLING_TIME (0x10000065)
|
||
#define IKP_SOFTWARE_TRIGGER_SYNC_MODE (0x10000066)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY (0x10000067)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY (0x10000068)
|
||
#define IKP_IMAGE_ROI_X (0x10000069)
|
||
#define IKP_SHAFT_ENCODER1_MIN_WIDTH (0x10000070)
|
||
#define IKP_SHAFT_ENCODER1_VALID_DIRECTION (0x10000071)
|
||
#define IKP_SHAFT_ENCODER1_REVERSE_COMPENSATION (0x10000072)
|
||
#define IKP_FRAME_SIZE_64_LOW (0x10000073)
|
||
#define IKP_FRAME_SIZE_64_HIGH (0x10000074)
|
||
#define IKP_BOARD_TRIGGER_OUTTER_MODE_FRAME_COUNT (0x10000075)
|
||
#define IKP_SHAFT_ENCODER1_QUAD_FREQUENCY_SOURCE_TYPE (0x10000076)
|
||
#define IKP_CURRENT_BUFFER_INDEX (0x10000077)
|
||
/**
|
||
\~chinese
|
||
* @brief 多灯频闪个数
|
||
* @note 本参数表示多灯频闪个数【RW】。
|
||
*/
|
||
/**
|
||
\~english
|
||
* @brief Number of multiple lights
|
||
* @note This parameter represents the number of multiple lights [RW].
|
||
*/
|
||
#define IKP_MULTIPLE_LIGHT_COUNT (0x1000007D)
|
||
/**
|
||
\~chinese
|
||
* @brief 板间同步信号1最小脉冲宽度
|
||
* @note 本参数表示板间同步信号1最小脉冲宽度【RW】。
|
||
* <br> 1. 当实际信号的脉冲宽度大于该值认为是有效信号,否则丢弃。
|
||
\~english
|
||
* @brief Minimum pulse width of board synchronous signal1
|
||
* @note This parameter represents the minimum pulse width of board synchronous signal1 [RW].
|
||
* <br> 1. When pulse width of actual signal is greater than this value, it is considered a valid signal, otherwise it
|
||
is discarded.
|
||
*/
|
||
#define IKP_BOARD_SYNC1_DEBOUNCE (0x10000080)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 板间同步信号2最小脉冲宽度
|
||
* @note 本参数表示板间同步信号2最小脉冲宽度【RW】。
|
||
* <br> 1. 当实际信号的脉冲宽度大于该值认为是有效信号,否则丢弃。
|
||
\~english
|
||
* @brief Minimum pulse width of board synchronous signal2
|
||
* @note This parameter represents the minimum pulse width of board synchronous signal2 [RW].
|
||
* <br> 1. When pulse width of actual signal is greater than this value, it is considered a valid signal, otherwise it
|
||
is discarded.
|
||
*/
|
||
#define IKP_BOARD_SYNC2_DEBOUNCE (0x10000081)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 采集卡缓冲区chunk最小值
|
||
* @note 本参数表示采集卡缓冲区chunk最小值【RW】。
|
||
\~english
|
||
* @brief Minimum value of frame grabber buffer chunk
|
||
* @note This parameter represents the minimum value of frame grabber buffer chunk [RW].
|
||
*/
|
||
#define IKP_CHUNK_COUNT_MINIMUM (0x10000082)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 采集卡重叠高度
|
||
* @note 本参数表示采集卡重叠高度【RW】。
|
||
\~english
|
||
* @brief Overlapping height of frame grabber
|
||
* @note This parameter represents overlapping height of frame grabber [RW].
|
||
*/
|
||
#define IKP_OVERLAPPED_HEIGHT (0x10000083)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 采集卡不定长采图自动清空机制
|
||
* @note 本参数表示采集卡不定长采图自动清空机制,适用于CXP/SFP/GVB采集卡【RW】。
|
||
\~english
|
||
* @brief Automatic clearing mechanism of frame grabber for frame active image
|
||
* @note This parameter represents automatic clearing mechanism of frame grabber for frame active image, which is applicable
|
||
to CXP/SFP/GVB frame grabbers [RW].
|
||
*/
|
||
#define IKP_FRAME_ACTIVE_AUTO_BLANK (0x10000084)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 编码器信号倍频系数任意值
|
||
* @note 本参数表示编码器信号倍频系数任意值【RW】。
|
||
\~english
|
||
* @brief Encoder signal multiple factor of any value
|
||
* @note This parameter represents encoder signal multiple factor of any value [RW].
|
||
*/
|
||
#define IKP_SHAFT_ENCODER1_MULTIPlY_FACTOR_ANY (0x10000085)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief CL采集卡all_levels模式下低电平图像高度
|
||
* @note 本参数表示CL采集卡all_levels模式下低电平图像高度【RW】。
|
||
\~english
|
||
* @brief Low level image height in all_levels mode of CL frame grabber
|
||
* @note This parameter represents low level image height in all_levels mode of CL frame grabber [RW].
|
||
*/
|
||
#define IKP_IMAGE_HEIGHT_2ND (0x10000086)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief PFNC标准图像像素格式
|
||
* @note 本参数表示采集卡的GenICam PFNC图像像素格式【RW】。
|
||
\~english
|
||
* @brief PFNC image pixel format.
|
||
* @note This parameter represents the frame grabber PFNC image pixel format [RW].
|
||
*/
|
||
#define IKP_IMAGE_PIXEL_FORMAT_PFNC (0x10000087)
|
||
/**
|
||
\~chinese
|
||
* @brief 图像原始图像宽度
|
||
* @note 本参数表示图像的原始图像宽度, 仅在 IKP_ROI_ENABLE 为true时使用【RW】。
|
||
\~english
|
||
* @brief Origin image width
|
||
* @note This parameter represents origin image width,
|
||
* <br> which is only used when IKP_ROI_ENABLE [RW].
|
||
*/
|
||
#define IKP_ORIGIN_IMAGE_WIDTH (0x1000008A)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief ROI使能
|
||
* @note 本参数表示ROI是否使能【RW】。
|
||
*/
|
||
/**
|
||
\~english
|
||
* @brief ROI ENABLE
|
||
* @note This parameter represents if roi is enabled [RW].
|
||
*/
|
||
#define IKP_ROI_ENABLE (0x1000008B)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 多帧融合数量
|
||
* @note 本参数表示多帧融合的数量. 如果为1, 则不会进行多帧融合. 【RW】。
|
||
\~english
|
||
* @brief Multi-frame fusion count
|
||
* @note This parameter represents multi-frame fusion count. [RW].
|
||
*/
|
||
#define IKP_MULTI_FRAME_FUSION_COUNT (0x1000008C)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief DDR空缓冲区大小
|
||
* @note 本参数表示当前采集卡空缓冲区的大小(字节). 【RW】。
|
||
\~english
|
||
* @brief The size of empty buffer in the DDR.
|
||
* @note This parameter represents the Bytes of empty buffer in the DDR. [RW].
|
||
*/
|
||
#define IKP_DDR_EMPTY_BUFFER_SIZE (0x1000008F)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 使能GPU-Direct-For-Video功能
|
||
* @note 使能GPU-Direct-For-Video功能. 【RW】。
|
||
\~english
|
||
* @brief Enable GPU-Direct-For-Video
|
||
* @note Enable GPU-Direct-For-Video. [RW].
|
||
*/
|
||
#define IKP_ENABLE_GPU_DIRECT_FOR_VIDEO (0x1000008D)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 分时频闪图像输出模式
|
||
* @note 分时频闪图像输出模式. 设置为0的情况下, 输出一个包含多个分时频闪图像的缓冲区.
|
||
设置为1的情况下, 输出多个缓冲区分别包含多个分时频闪图像
|
||
(不能和 IKP_FRAME_AUTO_CLEAR_VAL_DISABLE 同时使用)【RW】
|
||
\~english
|
||
* @brief Multiple light image output mode.
|
||
* @note Multiple light image output mode.
|
||
If set it to 0, output one image contain multiple light images.
|
||
If set it to 1, output multiple images contain one light image
|
||
(can not use with IKP_FRAME_AUTO_CLEAR_VAL_DISABLE )[RW].
|
||
*/
|
||
#define IKP_MULTIPLE_LIGHT_OUTPUT_MODE (0x1000008E)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 采集卡重叠高度模式
|
||
* @note 本参数表示采集卡重叠高度模式. 仅适用于CL采集卡.
|
||
在该模式为1的时候, 在一个帧信号触发多张图的情况下, 每次帧信号的第一张图不会有重叠的图像【RW】。
|
||
*/
|
||
/**
|
||
\~english
|
||
* @brief Overlapped height mode of frame grabber
|
||
* @note This parameter represents overlapped height mode of frame grabber. Only applicable to CL frame grabbers.
|
||
When operating in Mode 1, in scenarios where a single frame signal triggers multiple image captures,
|
||
the first image within each frame signal cycle will not contain overlapping imagery[RW].
|
||
*/
|
||
#define IKP_OVERLAPPED_HEIGHT_MODE (0x1000008F)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief 采集卡拼接的图像数量
|
||
* @note 本参数表示采集卡拼接的图像数量, 采集卡会将N张图像(N表示此参数)纵向拼接成一张图像(无算法处理),
|
||
仅适用于采集卡的面阵模式. 在此情况下, IKP_IMAGE_HEIGHT 需要设置成相机图像高度的N倍. 当前CL和CXP支持此参数.【RW】。
|
||
*/
|
||
/**
|
||
\~english
|
||
* @brief Frame concatenation count
|
||
* @note This feature performs **vertical image concatenation** (no algorithmic processing).
|
||
The frame grabber simply joins N camera images vertically in the buffer.
|
||
Set `IKP_IMAGE_HEIGHT` to (original image height) × N. This setting applies only to the area mode of the frame grabber.
|
||
CL and CXP(3.5.4 or higher) support this parameter.[RW].
|
||
*/
|
||
#define IKP_FRAME_CONCATENATION_COUNT (0x10000090)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief RGB分离模式
|
||
* @note 本参数表示是否开启RGB分离模式, 采集卡会将连续排列的RGB图像转化为平面排列(interleaved->planar).
|
||
使用此功能时, 相机需传入RGB图像, 采集卡会输出3倍相机输出图像高度的Mono图像. 当前CXP支持此参数.【RW】。
|
||
*/
|
||
/**
|
||
\~english
|
||
* @brief RGB spilt mode
|
||
* @note This parameter indicates whether to enable the RGB separation mode.
|
||
* When activated, the frame grabber will convert interleaved RGB images into planar format (interleaved → planar).
|
||
* When using this function:
|
||
* The camera must transmit RGB images.
|
||
* The frame grabber will output Mono images with a height equal to 3 times the original camera output image height.
|
||
Note: This parameter is currently supported for CXP interfaces.[RW].
|
||
*/
|
||
#define IKP_RGB_SPLIT_MODE (0x10000091)
|
||
|
||
#define IKP_FPGA_SERIAL_NUMBER (0x20000001)
|
||
#define IKP_PCIE_LINK_STATE (0x20000002)
|
||
#define IKP_PCIE_SPEED_MISS_REQUIREMENT (0x20000003)
|
||
#define IKP_PCI_CONFIGURATION (0x20000004)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_MODE (0x20000005)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT1_DELAY_IN_LINES (0x20000006)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT2_DELAY_IN_LINES (0x20000007)
|
||
#define IKP_EVENT_INPUT_INTERNAL_COUNT (0x20000008)
|
||
#define IKP_EVENT_INPUT_GENERAL_1_COUNT (0x20000009)
|
||
#define IKP_EVENT_INPUT_GENERAL_2_COUNT (0x2000000a)
|
||
#define IKP_EVENT_INPUT_SHAFT_ENCODER_A_COUNT (0x2000000b)
|
||
#define IKP_EVENT_INPUT_SHAFT_ENCODER_B_COUNT (0x2000000c)
|
||
#define IKP_EVENT_INPUT_BOARD_SYNC_IN_1_COUNT (0x2000000d)
|
||
#define IKP_EVENT_INPUT_INTEGRATION_SIG_1_COUNT (0x2000000e)
|
||
#define IKP_EVENT_INPUT_INTEGRATION_SIG_2_COUNT (0x2000000f)
|
||
#define IKP_RCV_MORE_DATA_IN_TRIGGER_MODE (0x20000010)
|
||
#define IKP_DISABLE_IO_EVENT (0x20000011)
|
||
#define IKP_PUBLIC_VERSION_SUPPORT (0x20000012)
|
||
#define IKP_SHAFT_ENCODER1_REVERSE_COMPENSATION_LIMIT (0x20000013)
|
||
#define IKP_SHAFT_ENCODER1_CLOCK_DUTY_COMPENSATION_TYPE (0x20000014)
|
||
#define IKP_SHAFT_ENCODER1_CLOCK_DUTY_COMPENSATION_WIDTH (0x20000015)
|
||
#define IKP_CL_VALID_COLUMN (0x20000016)
|
||
#define IKP_CL_SIGNAL_ENHANCE_MODE (0x20000017)
|
||
#define IKP_CL_LONG_DISTANCE_TRANSMISSION (0x20000018)
|
||
#define IKP_FPGA_SERIAL_NUMBER_HIGH (0x20000019)
|
||
#define IKP_CL_LONG_CABLE_WORKING_MODE (0x20000020)
|
||
#define IKP_CXP_TEST_IMAGE (0x30000001)
|
||
#define IKP_CXP_TRIGGER_OUTPUT_SELECTOR (0x30000002)
|
||
#define IKP_LAST_FRAME_INDEX (0x30000003)
|
||
#define IKP_CXP_VOLTAGE_SUPPLY_STATUS (0x30000004)
|
||
#define IKP_CXP_POWER_SWITCH (0x30000005)
|
||
#define IKP_CXP_POWER_STATUS (0x30000006)
|
||
#define IKP_CXP_SENSE_CURRENT (0x30000007)
|
||
#define IKP_CXP_BUS_VOLTAGE (0x30000008)
|
||
#define IKP_CXP_RESET_OCP (0x30000009)
|
||
#define IKP_CXP_SENSE_VOLTAGE_HIGH (0x3000000a)
|
||
#define IKP_CXP_SENSE_VOLTAGE_LOW (0x3000000b)
|
||
#define IKP_CXP_SUPPLY_VOLTAGE_LOW (0x3000000c)
|
||
#define IKP_CXP_SUPPLY_CURRENT_LOW (0x3000000d)
|
||
#define IKP_CXP_FPGA_FRAME_TIMEOUT (0x3000000e)
|
||
#define IKP_CXP_FPGA_FRAME_TIMEOUT_MULTIPLE (0x3000000f)
|
||
#define IKP_CXP_CRC_ERROR_COUNT (0x30000010)
|
||
#define IKP_CXP_PoCXP_CHANNEL (0x30000011)
|
||
#define IKP_CXP_PoCXP_LOCKED_VOLTAGE (0x30000012)
|
||
#define IKP_CXP_SHAFT_ENCODER_DEBOUNCE (0x30000013)
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_MODE (0x30000014)
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_MAX (0x30000015)
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_RESET (0x30000016)
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_COUNT (0x30000017)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_MODE (0x30000018)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_MAX (0x30000019)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_RESET (0x30000020)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_COUNT (0x30000021)
|
||
#define IKP_CXP_GENERAL_OUTPUT1_THRESHOLD (0x30000022)
|
||
#define IKP_CXP_GENERAL_OUTPUT2_THRESHOLD (0x30000023)
|
||
#define IKP_CXP_FIRMWARE_TYPE (0x30000024)
|
||
#define IKP_GVB_FIRMWARE_TYPE (0x30000024)
|
||
#define IKP_CXP_TEMPERATURE (0x30000025)
|
||
#define IKP_GVB_TEMPERATURE (0x30000025)
|
||
#define IKP_CXP_GENERAL_INPUT_THRESHOLD (0x30000026)
|
||
#define IKP_CXP_GENERAL_OUTPUT1_SOURCE_CHANNEL (0x30000027)
|
||
#define IKP_CXP_GENERAL_OUTPUT2_SOURCE_CHANNEL (0x30000028)
|
||
#define IKP_CXP_GENERAL_INPUT1_TYPE (0x30000029)
|
||
#define IKP_CXP_GENERAL_INPUT2_TYPE (0x3000002a)
|
||
#define IKP_CXP_TRANSFER_CHANNEL_SELECTOR (0x3000002b)
|
||
#define IKP_CXP_CHANNEL_LOST_COUNT (0x3000002c)
|
||
#define IKP_CXP_CHANNEL_ERROR_COUNT (0x3000002d)
|
||
#define IKP_TRIGGER_FRAME_ACTIVE_MODE (0x3000002e)
|
||
#define IKP_JPEG_COMPRESS_ENABLE (0x3000002f)
|
||
#define IKP_JPEG_COMPRESS_QUALITY (0x30000030)
|
||
#define IKP_CXP_FRAME_BURST_COUNT (0x30000031)
|
||
#define IKP_CXP_FRAME_BURST_PERIOD (0x30000032)
|
||
#define IKP_CXP_CHANNEL_CRC_ERROR_COUNT (0x30000033)
|
||
#define IKP_CXP_TRIG_EDGE_MODE (0x30000034)
|
||
#define IKP_CXP_DATA_PACKED_TRANSFER (0x30000035)
|
||
#define IKP_CXP_TRIG_LEVEL (0x30000036)
|
||
#define IKP_CXP_BOARD_SYNC1_POLARITY (0x30000037)
|
||
#define IKP_CXP_BOARD_SYNC2_POLARITY (0x30000038)
|
||
#define IKP_CXP_BOARD_SYNC1_RISE_COUNT (0x30000039)
|
||
#define IKP_CXP_BOARD_SYNC1_FALL_COUNT (0x3000003a)
|
||
#define IKP_CXP_BOARD_SYNC2_RISE_COUNT (0x3000003b)
|
||
#define IKP_CXP_BOARD_SYNC2_FALL_COUNT (0x3000003c)
|
||
#define IKP_USE_CUDA_BUFFER_LINUX (0x40000000)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB使能SAccel压缩模式传输
|
||
* @note 本参数表示GVB采集卡是否解码SAccel压缩传输的数据【RW】。
|
||
\~english
|
||
* @brief GVB enable SAccel compression transfer
|
||
* @note This parameter represents if GVB frame grabber decompress the SAccel compressed data that camera transfer [RW].
|
||
*/
|
||
#define IKP_GVB_ENABLE_COMPRESSION_TRANSFER (0x31000001)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB使能重传包
|
||
* @note 本参数表示GVB采集卡是否会在解析到错误数据时发送重传包【RW】。
|
||
\~english
|
||
* @brief GVB enable packet resend
|
||
* @note This parameter represents if GVB send the packet resend when packet is error [RW].
|
||
*/
|
||
#define IKP_GVB_ENABLE_PACKET_RESEND (0x31000002)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB单次重传最大次数
|
||
* @note 本参数表示GVB重传发生超时的时候单个包再次重传的最大次数【RW】。
|
||
\~english
|
||
* @brief GVB single packet resend max retry count
|
||
* @note This parameter represents the maximum times of retransmission of a single packet
|
||
* that can be resend again if packet-resend timeout occurs [RW].
|
||
*/
|
||
#define IKP_GVB_SINGLE_PACKET_RESEND_RETRY_MAX_TIMES (0x31000003)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB 重传请求的偏移量
|
||
* @note GVB 重传请求的偏移量【RW】。
|
||
\~english
|
||
* @brief GVB packet resend offset
|
||
* @note GVB packet resend offset [RW].
|
||
*/
|
||
#define IKP_GVB_PACKET_RESEND_OFFSET (0x31000004)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB 重传请求超时时间
|
||
* @note GVB 重传请求超时时间【RW】。
|
||
\~english
|
||
* @brief GVB packet resend timeout
|
||
* @note GVB packet resend timeout [RW].
|
||
*/
|
||
#define IKP_GVB_PACKET_RESEND_TIMEOUT (0x31000005)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB有效重传事件计数
|
||
* @note 本参数表示GVB有效重传事件计数【RO】。
|
||
\~english
|
||
* @brief GVB valid packet-resend event count
|
||
* @note This parameter represents the count of GVB valid packet-resend event count [RO].
|
||
*/
|
||
#define IKP_GVB_VALID_PACKET_RESEND_EVENT_COUNT (0x31000006)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB丢包事件计数
|
||
* @note 本参数表示GVBGVB丢包事件计数【RO】。
|
||
\~english
|
||
* @brief GVB packet-lost event count
|
||
* @note This parameter represents the count of GVB packet-lost event count [RO].
|
||
*/
|
||
#define IKP_GVB_PACKET_LOST_EVENT_COUNT (0x31000007)
|
||
|
||
/**
|
||
\~chinese
|
||
* @brief GVB重传超时事件次数
|
||
* @note 本参数表示GVB重传超时事件次数【RO】。
|
||
\~english
|
||
* @brief GVB packet-resend timeout event count
|
||
* @note This parameter represents the count of GVB packet-resend timeout event count [RO].
|
||
*/
|
||
#define IKP_GVB_PACKET_RESEND_TIMEOUT_EVENT_COUNT (0x31000008)
|
||
/************************************************************************/
|
||
/*Data Format*/
|
||
/************************************************************************/
|
||
#define IKP_DATA_FORMAT_VAL_8Bit (8)
|
||
#define IKP_DATA_FORMAT_VAL_10Bit (10)
|
||
#define IKP_DATA_FORMAT_VAL_12Bit (12)
|
||
#define IKP_DATA_FORMAT_VAL_14Bit (14)
|
||
#define IKP_DATA_FORMAT_VAL_16Bit (16)
|
||
|
||
/************************************************************************/
|
||
/*Image Type*/
|
||
/************************************************************************/
|
||
#define IKP_IMAGE_TYPE_VAL_MONOCHROME (0)
|
||
#define IKP_IMAGE_TYPE_VAL_COLORFUL (1)
|
||
#define IKP_IMAGE_TYPE_VAL_RGB (1)
|
||
#define IKP_IMAGE_TYPE_VAL_RGBC (2)
|
||
#define IKP_IMAGE_TYPE_VAL_BGR (3)
|
||
#define IKP_IMAGE_TYPE_VAL_BGRC (4)
|
||
|
||
/************************************************************************/
|
||
/*Scan Type*/
|
||
/************************************************************************/
|
||
#define IKP_SCAN_TYPE_VAL_LINEAR (0)
|
||
#define IKP_SCAN_TYPE_VAL_AREA (1)
|
||
|
||
/************************************************************************/
|
||
/*Grab Start Mode*/
|
||
/************************************************************************/
|
||
#define IKP_GRAB_BLOCK (0)
|
||
#define IKP_GRAB_NON_BLOCK (1)
|
||
|
||
/************************************************************************/
|
||
/*Frame Transfer Mode*/
|
||
/************************************************************************/
|
||
#define IKP_FRAME_TRANSFER_SYNCHRONOUS (0)
|
||
#define IKP_FRAME_TRANSFER_ASYNCHRONOUS (1)
|
||
#define IKP_FRAME_TRANSFER_SYNCHRONOUS_NEXT_EMPTY_WITH_PROTECT (2)
|
||
|
||
/************************************************************************/
|
||
/*Frame Auto Clear*/
|
||
/************************************************************************/
|
||
#define IKP_FRAME_AUTO_CLEAR_VAL_DISABLE (0)
|
||
#define IKP_FRAME_AUTO_CLEAR_VAL_ENABLE (1)
|
||
|
||
/************************************************************************/
|
||
/*Bayer Pattern*/
|
||
/************************************************************************/
|
||
#define IKP_BAYER_PATTERN_VAL_NULL (0)
|
||
#define IKP_BAYER_PATTERN_VAL_BGGR (1)
|
||
#define IKP_BAYER_PATTERN_VAL_RGGB (2)
|
||
#define IKP_BAYER_PATTERN_VAL_GBRG (3)
|
||
#define IKP_BAYER_PATTERN_VAL_GRBG (4)
|
||
#define IKP_IMAGE_TYPE_VAL_YUV422 (5)
|
||
/************************************************************************/
|
||
/*CC<i> Source*/
|
||
/************************************************************************/
|
||
#define IKP_CC_SOURCE_VAL_NOT_USE (0)
|
||
#define IKP_CC_SOURCE_VAL_INTEGRATION_SIGNAL1 (1)
|
||
#define IKP_CC_SOURCE_VAL_INTEGRATION_SIGNAL2 (2)
|
||
#define IKP_CC_SOURCE_VAL_LOW (3)
|
||
#define IKP_CC_SOURCE_VAL_HIGH (4)
|
||
#define IKP_CC_SOURCE_VAL_SOFTWARE (5)
|
||
#define IKP_CC_SOURCE_VAL_GENERAL_INPUT1 (6)
|
||
#define IKP_CC_SOURCE_VAL_GENERAL_INPUT2 (7)
|
||
#define IKP_CC_SOURCE_VAL_BOARD_SYNC1 (8)
|
||
#define IKP_CC_SOURCE_VAL_BOARD_SYNC2 (9)
|
||
#define IKP_CC_SOURCE_VAL_STROBE (10)
|
||
|
||
/************************************************************************/
|
||
/*Board Trigger Mode*/
|
||
/************************************************************************/
|
||
#define IKP_BOARD_TRIGGER_MODE_VAL_INNER (0)
|
||
#define IKP_BOARD_TRIGGER_MODE_VAL_OUTTER (1)
|
||
#define IKP_BOARD_TRIGGER_MODE_VAL_CXP_LEVEL_VALID (2)
|
||
|
||
/************************************************************************/
|
||
/*Board Trigger Source*/
|
||
/************************************************************************/
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_GENERAL_INPUT1 (0)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_GENERAL_INPUT2 (1)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_SHAFT_ENCODER1 (2)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_BOARD_SYNC1 (3)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_BOARD_SYNC2 (4)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_INNER_TRIGGER (5)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_SOFTWARE (6)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_INTEGRATION_SIGNAL_1 (7)
|
||
#define IKP_BOARD_TRIGGER_SOURCE_VAL_INTEGRATION_SIGNAL_2 (8)
|
||
|
||
/************************************************************************/
|
||
/*General Input<i> Sample Mode*/
|
||
/************************************************************************/
|
||
#define IKP_GENERAL_INPUT_SAMPLE_MODE_VAL_ACTIVE_HIGH (0)
|
||
#define IKP_GENERAL_INPUT_SAMPLE_MODE_VAL_ACTIVE_LOW (1)
|
||
#define IKP_GENERAL_INPUT_SAMPLE_MODE_VAL_RISING_EDGE (2)
|
||
#define IKP_GENERAL_INPUT_SAMPLE_MODE_VAL_FALLING_EDGE (3)
|
||
|
||
/************************************************************************/
|
||
/*General Input<i> Protect Mode*/
|
||
/************************************************************************/
|
||
#define IKP_GENERAL_INPUT_PROTECT_MODE_VAL_NOT_USE (0)
|
||
#define IKP_GENERAL_INPUT_PROTECT_MODE_VAL_DELETE (1)
|
||
#define IKP_GENERAL_INPUT_PROTECT_MODE_VAL_MEMORIZE (2)
|
||
|
||
/************************************************************************/
|
||
/*Shaft Encoder<i> Protect Mode*/
|
||
/************************************************************************/
|
||
#define IKP_SHAFT_ENCODER_PROTECT_MODE_VAL_NOT_USE (0)
|
||
#define IKP_SHAFT_ENCODER_PROTECT_MODE_VAL_DELETE (1)
|
||
#define IKP_SHAFT_ENCODER_PROTECT_MODE_VAL_MEMORIZE (2)
|
||
|
||
/************************************************************************/
|
||
/*Integration Trigger Source*/
|
||
/************************************************************************/
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_INTERNAL (0)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_GENERAL_INPUT1 (1)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_GENERAL_INPUT2 (2)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_SHAFT_ENCODER1 (5)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_BOARD_SYNC1 (7)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_BOARD_SYNC2 (8)
|
||
#define IKP_INTEGRATION_TRIGGER_SOURCE_VAL_SOFTWARE (9)
|
||
|
||
/************************************************************************/
|
||
/*Strobe Trigger Source*/
|
||
/************************************************************************/
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_INTERNAL (0)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_GENERAL_INPUT1 (1)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_GENERAL_INPUT2 (2)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_SHAFT_ENCODER1 (5)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_BOARD_SYNC1 (7)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_BOARD_SYNC2 (8)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_FRAME_TRANSFER_END (9)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_SOFTWARE (10)
|
||
#define IKP_STROBE_TRIGGER_SOURCE_VAL_FRAME_TRANSFER_START (11)
|
||
|
||
/************************************************************************/
|
||
/*Board Sync Output Source*/
|
||
/************************************************************************/
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_NOT_USE (0)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_INTERNAL (1)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_GENERAL_INPUT1 (2)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_GENERAL_INPUT2 (3)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_SHAFT_ENCODER1 (4)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_INTEGRATION_SIGNAL1 (5)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_INTEGRATION_SIGNAL2 (6)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_STROBLE_SIGNAL1 (7)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_BOARD_SYNC1 (8)
|
||
#define IKP_BOARD_SYNC_OUTPUT_SOURCE_VAL_BOARD_SYNC2 (9)
|
||
|
||
/************************************************************************/
|
||
/*General Output<i> Source*/
|
||
/************************************************************************/
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_INTERNAL (0)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_GENERAL_INPUT1 (1)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_GENERAL_INPUT2 (2)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_SHAFT_ENCODER1 (3)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_INTEGRATION_SIGNAL1 (4)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_INTEGRATION_SIGNAL2 (5)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_STROBLE_SIGNAL1 (6)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_SOFTWARE (7)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_VAL_BOARD_SYNC1 (8)
|
||
#define IKP_GENERAL_OUTPUT_SOURCE_VAL_VAL_BOARD_SYNC2 (9)
|
||
|
||
/************************************************************************/
|
||
/*General Output<i> Polarity*/
|
||
/************************************************************************/
|
||
#define IKP_GENERAL_OUTPUT_POLARITY_VAL_SAME_TO_SOURCE (0)
|
||
#define IKP_GENERAL_OUTPUT_POLARITY_VAL_OPPOSITE_TO_SOURCE (1)
|
||
|
||
/************************************************************************/
|
||
/*Integration Method*/
|
||
/************************************************************************/
|
||
#define IKP_INTEGRATION_METHOD_VAL_1 (0)
|
||
#define IKP_INTEGRATION_METHOD_VAL_2 (1)
|
||
#define IKP_INTEGRATION_METHOD_VAL_3 (2)
|
||
#define IKP_INTEGRATION_METHOD_VAL_4 (3)
|
||
#define IKP_INTEGRATION_METHOD_VAL_5 (4)
|
||
|
||
/************************************************************************/
|
||
/*Integration Polarity*/
|
||
/************************************************************************/
|
||
#define IKP_INTEGRATION_POLARITY_VAL_HIGH (0)
|
||
#define IKP_INTEGRATION_POLARITY_VAL_LOW (1)
|
||
|
||
/************************************************************************/
|
||
/*Strobe Method*/
|
||
/************************************************************************/
|
||
#define IKP_STROBE_METHOD_VAL_1 (0)
|
||
#define IKP_STROBE_METHOD_VAL_2 (1)
|
||
#define IKP_STROBE_METHOD_VAL_3 (2)
|
||
#define IKP_STROBE_METHOD_VAL_4 (3)
|
||
|
||
/************************************************************************/
|
||
/*Strobe Polarity*/
|
||
/************************************************************************/
|
||
#define IKP_STROBE_POLARITY_VAL_HIGH (0)
|
||
#define IKP_STROBE_POLARITY_VAL_LOW (1)
|
||
|
||
/*
|
||
General input trigger mode
|
||
*/
|
||
#define IKP_GENERAL_INPUT_TRIGGER_MODE_VAL_EDGE (0)
|
||
#define IKP_GENERAL_INPUT_TRIGGER_MODE_VAL_LEVEL (1)
|
||
|
||
/*
|
||
Board synchronization trigger mode
|
||
*/
|
||
#define IKP_BOARD_SYNC_TRIGGER_MODE_VAL_EDGE (0)
|
||
#define IKP_BOARD_SYNC_TRIGGER_MODE_VAL_LEVEL (1)
|
||
|
||
/*
|
||
Shaft encoder channel
|
||
*/
|
||
#define IKP_SHAFT_ENCODER_CHANNEL_VAL_A (0)
|
||
#define IKP_SHAFT_ENCODER_CHANNLE_VAL_B (1)
|
||
|
||
/*
|
||
Shaft encoder mutiply factor
|
||
*/
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_1 (0)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_2 (1)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_4 (2)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_8 (3)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_16 (4)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_32 (5)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_64 (6)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_128 (7)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_256 (8)
|
||
#define IKP_SHAFT_ENCODER_MULTIPLY_FACTOR_VAL_512 (9)
|
||
|
||
/*
|
||
LVAL Filter Enable
|
||
*/
|
||
#define IKP_LVAL_FILTER_DISABLE (0)
|
||
#define IKP_LVAL_FILTER_ENABLE (1)
|
||
|
||
/*
|
||
FPGA External Trigger Timeout
|
||
*/
|
||
#define IKP_FPGA_EXTERNAL_TRIGGER_TIMEOUT_MIN (8)
|
||
#define IKP_FPGA_EXTERNAL_TRIGGER_TIMEOUT_MAX (0xFFFFFFFF)
|
||
|
||
/*
|
||
General input polarity
|
||
*/
|
||
#define IKP_GENERAL_INPUT_POLARITY_VAL_HIGH (0)
|
||
#define IKP_GENERAL_INPUT_POLARITY_VAL_LOW (1)
|
||
|
||
/*
|
||
General input min valid width
|
||
*/
|
||
#define IKP_GENERAL_INPUT_MIN_WIDTH_VAL_MINIMUM (50)
|
||
|
||
/*
|
||
PCIe Kernal Block Size
|
||
*/
|
||
#define IKP_PCIE_KERNAL_BLOCK_SIZE_VAL_4M (1)
|
||
#define IKP_PCIE_KERNAL_BLOCK_SIZE_VAL_8M (2)
|
||
#define IKP_PCIE_KERNAL_BLOCK_SIZE_VAL_12M (3)
|
||
#define IKP_PCIE_KERNAL_BLOCK_SIZE_VAL_16M (4)
|
||
|
||
/*
|
||
Software trigger polarity
|
||
*/
|
||
#define IKP_SOFTWARE_TRIGGER_POLARITY_VAL_HIGH (0)
|
||
#define IKP_SOFTWARE_TRIGGER_POLARITY_VAL_LOW (1)
|
||
|
||
/*
|
||
Software trigger sync mode
|
||
*/
|
||
#define IKP_SOFTWARE_TRIGGER_SYNC_MODE_VAL_DISABLE (0)
|
||
#define IKP_SOFTWARE_TRIGGER_SYNC_MODE_VAL_ENABLE (1)
|
||
|
||
/*
|
||
CoaXPress board trigger output selector
|
||
*/
|
||
#define IKP_CXP_TRIGGER_OUTPUT_NO (0)
|
||
#define IKP_CXP_TRIGGER_OUTPUT_INTEGRATION_SIGNAL1 (1)
|
||
#define IKP_CXP_TRIGGER_OUTPUT_INTEGRATION_SIGNAL2 (2)
|
||
#define IKP_CXP_TRIGGER_OUTPUT_BOARD_SYNC1 (3)
|
||
#define IKP_CXP_TRIGGER_OUTPUT_BOARD_SYNC2 (4)
|
||
|
||
/*
|
||
Monitor IO type
|
||
*/
|
||
#define IKP_EVENT_INPUT_INTERNAL (1 << 0)
|
||
#define IKP_EVENT_INPUT_GENERAL_1 (1 << 1)
|
||
#define IKP_EVENT_INPUT_GENERAL_2 (1 << 2)
|
||
#define IKP_EVENT_INPUT_SHAFT_ENCODER_A (1 << 3)
|
||
#define IKP_EVENT_INPUT_SHFAT_ENCODER_B (1 << 4)
|
||
#define IKP_EVENT_INPUT_BOARD_SYNC_IN_1 (1 << 5)
|
||
#define IKP_EVENT_INPUT_INTEGRATION_SIG_1 (1 << 6)
|
||
#define IKP_EVENT_INPUT_INTEGRATION_SIG_2 (1 << 7)
|
||
|
||
/*
|
||
CoaXPress test image for debug usage
|
||
*/
|
||
#define IKP_CXP_TEST_IMAGE_OFF (0)
|
||
#define IKP_CXP_TEST_IMAGE_1 (1)
|
||
#define IKP_CXP_TEST_IMAGE_2 (2)
|
||
|
||
/*
|
||
Shaft encoder valid direction
|
||
*/
|
||
#define IKP_SHAFT_ENCODER1_VALID_DIR_BOTH (0)
|
||
#define IKP_SHAFT_ENCODER1_VALID_DIR_FORWARD (1)
|
||
#define IKP_SHAFT_ENCODER1_VALID_DIR_BACKWARD (2)
|
||
|
||
/*
|
||
Shaft encoder reverse compensation
|
||
*/
|
||
#define IKP_SHAFT_ENCODER1_REVERSE_COMPENSATION_OFF (0)
|
||
#define IKP_SHAFT_ENCODER1_REVERSE_COMPENSATION_ON (1)
|
||
|
||
/*
|
||
Shaft encoder debounce period
|
||
*/
|
||
#define IKP_CXP_SHAFT_ENCODER1_DEBOUNCE_PERIOD_MIN (0)
|
||
#define IKP_CXP_SHAFT_ENCODER1_DEBOUNCE_PERIOD_MAX (65535)
|
||
|
||
/*
|
||
Shaft encoder tick mode
|
||
*/
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_MODE_FOLLOW_DIRECTION (0)
|
||
#define IKP_CXP_SHAFT_ENCODER_TICK_MODE_ANY_DIRECTION (1)
|
||
|
||
/*
|
||
CoaXPress firmware type
|
||
*/
|
||
#define IKP_CXP_FIRMWARE_TYPE_1_CAMERA (0)
|
||
#define IKP_CXP_FIRMWARE_TYPE_2_CAMERA (1)
|
||
#define IKP_CXP_FIRMWARE_TYPE_4_CAMERA (2)
|
||
#define IKP_CXP_FIRMWARE_TYPE_2_CAMERA_NEW (3)
|
||
#define IKP_CXP_FIRMWARE_TYPE_8_CAMERA_NEW (6) ///< @brief \~chinese 1拖8 \~english 1-8
|
||
#define IKP_CXP_FIRMWARE_TYPE_8_CAMERA (7)
|
||
/*
|
||
CoaXPress general output source channel
|
||
*/
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_A (0)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_B (1)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_C (2)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_D (3)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_E (4)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_F (5)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_G (6)
|
||
#define IKP_CXP_GENERAL_OUTPUT_SOURCE_CHANNEL_H (7)
|
||
/*
|
||
CoaXPress general input type
|
||
*/
|
||
#define IKP_CXP_GENERAL_INPUT_TYPE_DIFFERENTIAL (0)
|
||
#define IKP_CXP_GENERAL_INPUT_TYPE_SINGLE_END (1)
|
||
|
||
/*
|
||
IKP_CL_VALID_COLUMN
|
||
*/
|
||
#define IKP_CL_VALID_COLUMN_ALL (0)
|
||
#define IKP_CL_VALID_COLUMN_EVEN (1)
|
||
#define IKP_CL_VALID_COLUMN_ODD (2)
|
||
|
||
/*
|
||
IKP_CL_ENHANCE_MODE
|
||
*/
|
||
#define IKP_CL_SIGNAL_ENHANCE_MODE_OFF (0)
|
||
#define IKP_CL_SIGNAL_ENHANCE_MODE_ON (3)
|
||
|
||
/*
|
||
IKP_CL_LONG_DISTANCE_TRANSMISSION
|
||
*/
|
||
#define IKP_CL_LONG_DISTANCE_TRANSMISSION_OFF (0)
|
||
#define IKP_CL_LONG_DISTANCE_TRANSMISSION_ON (1)
|
||
|
||
/*
|
||
CoaXPress uart serial port index
|
||
*/
|
||
#define IKP_CXP_UART_PORT (8)
|
||
|
||
/*
|
||
Jpeg/Tiff/Png Image Compression flag
|
||
*/
|
||
#define IKP_DEFAULT_COMPRESSION (0x0000) //! default compression
|
||
#define IKP_JPEG_QUALITYSUPERB (0x0001) //! save with superb quality (100:1)
|
||
#define IKP_JPEG_QUALITYGOOD (0x0002) //! save with good quality (75:1)
|
||
#define IKP_JPEG_QUALITYNORMAL (0x0003) //! save with normal quality (50:1)
|
||
#define IKP_JPEG_QUALITYAVERAGE (0x0004) //! save with average quality (25:1)
|
||
#define IKP_JPEG_QUALITYBAD (0x0005) //! save with bad quality (10:1)
|
||
#define IKP_TIFF_NONE (0x0100) //! save without any compression
|
||
#define IKP_TIFF_LZW (0x0101) //! save using LZW compression
|
||
#define IKP_PNG_Z_NO_COMPRESSION (0x0200) //! save without ZLib compression
|
||
#define IKP_PNG_Z_BEST_SPEED (0x0201) //! save using ZLib level 1 compression flag (default value is 6)
|
||
#define IKP_PNG_Z_DEFAULT_COMPRESSION (0x0202) //! save using ZLib level 6 compression flag (default recommended value)
|
||
#define IKP_PNG_Z_BEST_COMPRESSION (0x0203) //! save using ZLib level 9 compression flag (default value is 6)
|
||
|
||
/*
|
||
General output threshold
|
||
*/
|
||
#define IKP_GENERAL_OUTPUT_THRESHOLD_3V3 (0x0)
|
||
#define IKP_GENERAL_OUTPUT_THRESHOLD_24V (0x1)
|
||
|
||
/*
|
||
Shaft encoder debounce value
|
||
*/
|
||
#define IKP_SHAFT_ENCODER_DEBOUNCE_MIN (0)
|
||
#define IKP_SHAFT_ENCODER_DEBOUNCE_MAX (1000 * 1000 * 1000)
|
||
|
||
/*
|
||
CXP General input threshold
|
||
*/
|
||
#define IKP_CXP_GENERAL_INPUT_THRESHOLD_5V (0)
|
||
#define IKP_CXP_GENERAL_INPUT_THRESHOLD_3V (1)
|
||
|
||
/*
|
||
General input delay mode
|
||
*/
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_MODE_IN_LINES (0)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_MODE_IN_US (1)
|
||
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_IN_LINES_MIN (0)
|
||
#define IKP_HARDWARE_TRIGGER_GENERAL_INPUT_DELAY_IN_LINES_MAX (65535)
|
||
|
||
/*
|
||
Shaft encoder quad frequency source type
|
||
*/
|
||
#define IKP_SHAFT_ENCODER1_QUAD_FREQUENCY_SOURCE_TYPE_VAL_DOUBLE_CHANNEL (0)
|
||
#define IKP_SHAFT_ENCODER1_QUAD_FREQUENCY_SOURCE_TYPE_VAL_SINGLE_CHANNEL (1)
|
||
|
||
/*
|
||
IKP_TRIGGER_FRAME_ACTIVE_MODE frame active mode is on or off
|
||
*/
|
||
#define IKP_TRIGGER_FRAME_ACTIVE_MODE_OFF (0)
|
||
#define IKP_TRIGGER_FRAME_ACTIVE_MODE_ON (1)
|
||
#define IKP_TRIGGER_FRAME_ACTIVE_MODE_ALL_LEVELS (2) ///< @brief \~chinese all_levels模式 \~english all_levels mode
|
||
|
||
/*
|
||
IKP_JPEG_COMPRESS_ENABLE
|
||
*/
|
||
#define IKP_JPEG_COMPRESS_ENABLE_OFF (0)
|
||
#define IKP_JPEG_COMPRESS_ENABLE_ON (1)
|
||
|
||
/*
|
||
IKP_JPEG_COMPRESS_QUALITY
|
||
*/
|
||
#define IKP_JPEG_COMPRESS_QUALITY_MIN (1)
|
||
#define IKP_JPEG_COMPRESS_QUALITY_MAX (100)
|
||
|
||
/*
|
||
IKP_SHAFT_ENCODER1_CLOCK_DUTY_COMPENSATION
|
||
*/
|
||
#define IKP_SHAFT_ENCODER1_CLOCK_DUTY_COMPENSATION_RISING_EDGE (0)
|
||
#define IKP_SHAFT_ENCODER1_CLOCK_DUTY_COMPENSATION_FALLING_EDGE (1)
|
||
|
||
/*
|
||
IKP_CXP_SHAFT_ENCODER_REVERSE_MODE
|
||
*/
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_MODE_FORWARD_ONLY (0)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_MODE_ANY_DIRECTION (1)
|
||
#define IKP_CXP_SHAFT_ENCODER_REVERSE_MODE_BACKWARD_ONLY (2)
|
||
|
||
/*
|
||
IKP_CXP_TRIG_EDGE_MODE
|
||
*/
|
||
#define IKP_CXP_TRIG_EDGE_MODE_DOUBLE_EDGE (0)
|
||
#define IKP_CXP_TRIG_EDGE_MODE_RISE_ONLY (1)
|
||
|
||
/*
|
||
IKP_CXP_DATA_PACKED_TRANSFER
|
||
*/
|
||
#define IKP_CXP_TRIG_LEVEL_ALL_LOW (0)
|
||
#define IKP_CXP_TRIG_LEVEL_ALL_HIGH (1)
|
||
#define IKP_CXP_TRIG_LEVEL_GENERAL_INPUT1 (2)
|
||
#define IKP_CXP_TRIG_LEVEL_GENERAL_INPUT2 (3)
|
||
|
||
/*
|
||
Status information
|
||
*/
|
||
#define IK_RTN_OK (1)
|
||
#define IK_RTN_ERROR (0)
|
||
|
||
#define IKStatus_Success 0x00000001
|
||
|
||
#define IKStatus_BoardNotFound 0x00000002
|
||
#define IKStatus_AllocMemoryFail 0x00000003
|
||
#define IKStatus_InvalidParameter 0x00000004
|
||
#define IKStatus_OpenBoardFail 0x00000005
|
||
#define IKStatus_TimeOut 0x00000006
|
||
#define IKStatus_WinError 0x00000007
|
||
#define IKStatus_BoardNotOpen 0x00000008
|
||
#define IKStatus_ConfigFilePathInvalid 0x00000009
|
||
#define IKStatus_ConfigParameterInvalid 0x0000000a
|
||
#define IKStatus_ZLP 0x0000000b
|
||
#define IKStatus_ThreadUnsetup 0x0000000c
|
||
#define IKStatus_ThreadExist 0x0000000d
|
||
#define IKStatus_CameraUnsupport 0x0000000e
|
||
#define IKStatus_XMLFileLoadFail 0x0000000f
|
||
#define IKStatus_NodeNotExist 0x00000010
|
||
#define IKStatus_WriteSerialFail 0x00000011
|
||
#define IKStatus_CommandNotExist 0x00000012
|
||
#define IKStatus_CommandCollision 0x00000013
|
||
#define IKStatus_CommandMissRequirement 0x00000014
|
||
#define IKStatus_CommandNotAllow 0x00000015
|
||
#define IKStatus_CommandSyntaxError 0x00000016
|
||
#define IKStatus_NodeTypeDismatch 0x00000017
|
||
#define IKStatus_FeatureUnSupport 0x00000018
|
||
#define IKStatus_CommandResultNoExit 0x00000019
|
||
#define IKStatus_CLRegPathNotFound 0x0000001a
|
||
#define IKStatus_CLDLLNotFound 0x0000001b
|
||
#define IKStatus_CameraNotFound 0x0000001c
|
||
#define IKStatus_BufferTooSmall 0x0000001d
|
||
#define IKStatus_BaudrateNotSupport 0x0000001e
|
||
#define IKStatus_CameraInUse 0x0000001f
|
||
#define IKStatus_FPGA_EraseFlashFail 0x00000020
|
||
#define IKStatus_FPGA_CheckFail 0x00000021
|
||
#define IKStatus_BoardNotBindingCOM 0x00000022
|
||
#define IKStatus_ReadRegFail 0x00000023
|
||
#define IKStatus_Invalid_Mutex 0x00000024
|
||
#define IKStatus_Mutex_Locked 0x00000025
|
||
#define IKStatus_Invalid_Handle 0x00000026
|
||
#define IKStatus_Set_Info_Error 0x00000027
|
||
#define IKStatus_Grab_Pending 0x00000028
|
||
#define IKStatus_Insufficient_Resource 0x00000029
|
||
#define IKStatus_Grab_Abort 0x0000002a
|
||
#define IKStatus_Need_Reboot 0x0000002b
|
||
#define IKStatus_Need_Restart 0x0000002c
|
||
#define IKStatus_Not_Implement 0x0000002d ///< \~chinese 功能未实现 \~english Function not implemented
|
||
#define IKStatus_Not_In_Callback \
|
||
0x0000002e ///< \~chinese 该功能应在回调函数中运行,但实际不在 \~english This function should be run in callback
|
||
///< function, but actually not
|
||
#define IKStatus_Not_Match_Driver_Version 0x0000002f ///< \~chinese 驱动版本不匹配 \~english Driver version mismatch
|
||
#define IKStatus_Prm_Not_Available \
|
||
0x00000030 ///< \~chinese 参数当前不可读不可写 \~english The parameter is currently unreadable and not writable
|
||
#define IKStatus_Prm_Locked \
|
||
0x00000031 ///< \~chinese 采集卡参数锁定,无法修改 \~english The parameters of frame grabber are locked and cannot be
|
||
///< modified
|
||
#define IKStatus_Logic_Error 0x00000032 ///< \~chinese 逻辑错误 \~english Logic error
|
||
#define IKStatus_Out_Of_Bounds 0x00000033 ///< \~chinese 参数越界 \~english Out-of-bounds
|
||
|
||
/**
|
||
* @name Buffer Status
|
||
* @brief This struct provides general information about the buffer status.
|
||
*/
|
||
typedef struct _ikap_buffer_status {
|
||
unsigned uFull; /**< 指明缓冲区是否为满 */
|
||
unsigned uEmpty; /**< 指明缓冲区是否为空 */
|
||
unsigned uTransfer; /**< 指明缓冲区是否正在传输 */
|
||
unsigned uOverflow; /**< 指明缓冲区是否越界 */
|
||
unsigned uLineNum; /**< 对于线扫描相机,该参数指明当前传输的图像有效行数;对于面扫描相机,该参数未定义。 */
|
||
} IKAPBUFFERSTATUS, *PIKAPBUFFERSTATUS;
|
||
|
||
typedef struct _ikap_buffer_status_ex {
|
||
unsigned uFull; /**< 指明缓冲区是否为满 */
|
||
unsigned uEmpty; /**< 指明缓冲区是否为空 */
|
||
unsigned uTransfer; /**< 指明缓冲区是否正在传输 */
|
||
unsigned uOverflow; /**< 指明缓冲区是否越界 */
|
||
unsigned uLineNum; /**<
|
||
对于线扫描相机,该参数指明当前传输的图像有效行数;对于面扫描相机,该参数未定义。
|
||
*/
|
||
unsigned long long uCompressSize; /**< 对于压缩图像,存储当前缓冲区中有效长度. */
|
||
unsigned long long uTimestamp; /**< 缓冲区完成的时间相对于开始采集的时间戳(us). */
|
||
double dFrameRate; /**< 计算出的当前缓冲区帧率, 1/(距离上一帧完成的时间),
|
||
与从采集卡读取的瞬时帧率不同 */
|
||
unsigned uIntegrationSignal1Count; /**< 帧完成成时的IntegrationSignal1计数*/
|
||
unsigned long long uThumbnailSize; /**< 位于有效图像数据之前的缩略图大小 */
|
||
unsigned long long uTimestampSinceEpoch; /**< 缓冲区完成的纪元时间戳(us). */
|
||
unsigned uVaryFrameEnd; /**< CL采集卡不定长采图是否结束. */
|
||
unsigned Reserved[54];
|
||
} IKAPBUFFERSTATUSEX, *PIKAPBUFFERSTATUSEX;
|
||
|
||
/**
|
||
* @name Error Handle
|
||
* @brief This struct provides general information about the error code.
|
||
*/
|
||
typedef struct _ikap_error_info {
|
||
unsigned uBoardType; /**< 采集卡类型 */
|
||
unsigned uBoardIndex; /**< 采集卡索引 */
|
||
unsigned uErrorCode; /**< 错误代码 */
|
||
} IKAPERRORINFO, *PIKAPERRORINFO;
|
||
|
||
/**
|
||
* @name CoaXPress Board Information
|
||
* @brief This struct provides CoaXPress frame grabber information
|
||
*/
|
||
typedef struct _ikap_cxp_board_info {
|
||
unsigned BoardIndex;
|
||
unsigned MasterPort;
|
||
unsigned SlaveCount;
|
||
unsigned SlavePort[7];
|
||
unsigned CameraIndex;
|
||
unsigned Topology;
|
||
char Reserved[248];
|
||
} IKAP_CXP_BOARD_INFO, *PIKAP_CXP_BOARD_INFO;
|
||
|
||
typedef struct _ikap_gvb_board_info {
|
||
unsigned BoardIndex; /**< Master connection board index. */
|
||
unsigned MasterPort; /**< Master connection board port. */
|
||
char MAC[32]; /**< Device mac. */
|
||
char Ip[32]; /**< Device ip. */
|
||
char SubNetMask[32]; /**< Device subnet mask. */
|
||
char GateWay[32]; /**< Device default gateway. */
|
||
char Reserved2[160]; /**< Reserved. */
|
||
} IKAP_GVB_BOARD_INFO, *PIKAP_GVB_BOARD_INFO;
|
||
|
||
/**
|
||
* @name Bus addressable memory
|
||
* @brief This struct provides bus addressabel memory
|
||
*/
|
||
typedef struct _ikap_bus_memory {
|
||
unsigned long long BusAddress; /**< PCIez总线物理地址 */
|
||
unsigned Size; /**< 内存大小 */
|
||
void * UserPointer; /**< 用户自定义指针 */
|
||
} IKAP_BUS_MEMORY, *PIKAP_BUS_MEMORY;
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif // __cplusplus
|
||
|
||
/**
|
||
* @brief Get current board count
|
||
* @param[in] resourceType : 0 - All; 1 - USB30; 2 - PCIe
|
||
* @param[out] resourceCount : current board count
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBoardName
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetBoardCount(unsigned resourceType, unsigned *resourceCount);
|
||
|
||
/**
|
||
* @brief Get board name
|
||
* @param[in] resourceType : 0 - All; 1 - USB30; 2 - PCIe
|
||
* @param[in] resourceIndex : 0 - resource_count - 1
|
||
* @param[out] resourceName : board name
|
||
* @param[out] resoureceNameSize : board name size
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBoardCount
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC
|
||
IKapGetBoardName(unsigned resourceType, unsigned resourceIndex, char *resourceName, unsigned *resourceNameSize);
|
||
|
||
/**
|
||
* @brief Open board
|
||
* @param[in] resourceType : 0 - All; 1 - USB30; 2 - PCIe
|
||
* @param[in] resourceIndex : 0 - resource_count - 1
|
||
* @Return:
|
||
* - hDev : board handle
|
||
*
|
||
* @note
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL void *IKAPBOARD_CC IKapOpen(unsigned resourceType, unsigned resourceIndex);
|
||
|
||
/**
|
||
* @brief open CXP board.
|
||
* @param[in] resourceType : 采集卡接口类型
|
||
* @param[in] resourceIndex : 0 - resource_count - 1
|
||
* @param[in] info : CoaXPress info
|
||
* @Return:
|
||
* - Handle : board handle
|
||
*
|
||
* @note
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL void *IKAPBOARD_CC IKapOpenCXP(unsigned resourceType, unsigned resourceIndex, IKAP_CXP_BOARD_INFO info);
|
||
|
||
/**
|
||
* @brief 打开采集卡设备.
|
||
* @param[in] resourceType : 采集卡接口类型
|
||
* @param[in] resourceIndex : 采集卡索引
|
||
* @param[in] info : CoaXPress采集卡信息
|
||
* @Return:
|
||
* - Handle : 采集卡设备句柄
|
||
*
|
||
* @note 使用该函数可以打开CoaXPress接口和GigEVisionBoard接口的采集卡设备;
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL void *IKAPBOARD_CC IKapOpenGVB(unsigned resourceType, unsigned resourceIndex, IKAP_GVB_BOARD_INFO info);
|
||
/**
|
||
* @brief Close board
|
||
* @param[in] hDev : board handle
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapOpen
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapClose(void *hDev);
|
||
|
||
/**
|
||
* @brief Load configuration file from local
|
||
* @param[in] hDev : board handle
|
||
* @param[in] lpFileName : file name
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapSaveConfigurationToFile
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapLoadConfigurationFromFile(void *hDev, char *lpFileName);
|
||
|
||
/**
|
||
* @brief Save configuration file to local.
|
||
* @param[in] hDev : board handle
|
||
* @param[in] lpFileName : local file name
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapLoadConfigurationToFile
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapSaveConfigurationToFile(void *hDev, char *lpFileName);
|
||
|
||
/**
|
||
* @brief Get board info
|
||
* @param[in] hDev : board handle
|
||
* @param[in] uType : info id
|
||
* @param[out] npValue : info value
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapSetInfo
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetInfo(void *hDev, unsigned int uType, int *npValue);
|
||
|
||
/**
|
||
* @brief Set device info
|
||
* @param[in] hdev : device handle
|
||
* @param[in] uType : info id
|
||
* @param[in] nValue : info value
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetInfo
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapSetInfo(void *hDev, unsigned int uType, int nValue);
|
||
|
||
/**
|
||
* @brief Register callback
|
||
* @param[in] hDev : device handle
|
||
* @param[in] uEventType : event type
|
||
* @param[in] fEventFunc : callback function
|
||
* @param[in] pContext : callback context
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapUnRegisterCallback
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapRegisterCallback(void *hDev, unsigned uEventType, HookFnPtr fEventFunc, void *pContext);
|
||
|
||
/**
|
||
* @brief Unregister callback
|
||
* @param[in] hDev : device handle
|
||
* @param[in] uEventType : device type
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapRegisterCallback
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapUnRegisterCallback(void *hDev, unsigned int uEventType);
|
||
|
||
/**
|
||
* @brief Start grab image
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameCount : grab frame count
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapStopGrab
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapStartGrab(void *hDev, int nFrameCount);
|
||
|
||
/**
|
||
* @brief Stop grab
|
||
* @param[in] hDev : device handle
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapStartGrab
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapStopGrab(void *hDev);
|
||
|
||
/**
|
||
* @brief Wait grab image done
|
||
* @param[in] hDev : device handle
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapStartGrab
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapWaitGrab(void *hDev);
|
||
|
||
/**
|
||
* @brief Clear grab state
|
||
* @param[in] hDev : device handle
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapStartGrab
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapClearGrab(void *hDev);
|
||
|
||
/**
|
||
* @brief Get transfer buffer address
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameNum : grab frame index
|
||
* @param[out] pAddress : device address
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetBufferAddress(void *hDev, int nFrameNum, void **pAddress);
|
||
|
||
/**
|
||
* @brief Set transfer buffer address
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameNum : grab frame index
|
||
* @param[in] pAddress : buffer address
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapSetBufferAddress(void *hDev, int nFrameNum, void *pAddress);
|
||
/**
|
||
* @brief 获取图像缓冲区物理总线映射地址
|
||
* @param[in] Handle : 采集卡句柄
|
||
* @param[in] nFrameNum : 缓冲区索引
|
||
* @param[out] pBusAddress : 物理总线地址
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapSetBufferBusAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetBufferBusAddress(void *hDev, int nFrameNum, PIKAP_BUS_MEMORY pBusAddress);
|
||
|
||
/**
|
||
* @brief 设置图像缓冲区物理总线映射地址
|
||
* @param[in] Handle : 采集卡句柄
|
||
* @param[in] nFrameNum : 缓冲区索引
|
||
* @param[in] pBusAddress : 物理总线地址
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferBusAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapSetBufferBusAddress(void *hDev, int nFrameNum, IKAP_BUS_MEMORY BusAddress);
|
||
/**
|
||
* @brief Get buffer statue
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameNum : grab frame index
|
||
* @param[out] pIKapBufferStatus : buffer status
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetBufferStatus(void *hDev, int nFrameNum, PIKAPBUFFERSTATUS pIKapBufferStatus);
|
||
|
||
/**
|
||
* @brief Get buffer statue ex
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameNum : grab frame index
|
||
* @param[out] pIKapBufferStatus : buffer status
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetBufferStatusEx(void *hDev, int nFrameNum, PIKAPBUFFERSTATUSEX pIKapBufferStatusEx);
|
||
|
||
/**
|
||
* @brief release buffer to free state
|
||
* @param[in] hDev : device handle
|
||
* @param[in] nFrameNum : frame index
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapGetBufferAddress
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapReleaseBuffer(void *hDev, int nFrameNum);
|
||
|
||
/**
|
||
* @brief Get camera status now
|
||
* @param[in] hDev : device handle
|
||
* @param[in] npValue : camera status
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapReleaseBuffer
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetCameraStatus(void *hDev, int *npValue);
|
||
|
||
/**
|
||
* @brief Get last error info
|
||
* @param[in] pIKapErrorInfo : error info
|
||
* @param[in] bErrorReset : clear error info
|
||
* @Return:
|
||
* - void
|
||
*
|
||
* @note
|
||
* @see
|
||
*/
|
||
IKAPBOARDDLL void IKAPBOARD_CC IKapGetLastError(PIKAPERRORINFO pIKapErrorInfo, int bErrorReset);
|
||
|
||
/**
|
||
* @brief Get map serial port number
|
||
* @param[in] hDev : device handle
|
||
* @param[in] npPortNumber : port number
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetSerialPort(void *hDev, int *npPortNumber);
|
||
|
||
/**
|
||
* @brief Get current frame rate
|
||
* @param[in] hDev : device handle
|
||
* @param[in] dpFrameRate : frame rate
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapGetFrameRate(void *hDev, double *dpFrameRate);
|
||
/**
|
||
* @brief 读取CXP串口数据
|
||
* @param[in] handle : 调试串口句柄
|
||
* @param[in] buffer : 缓冲区数据
|
||
* @param[in,out] length :
|
||
* 作为输入,指示输入缓冲区的长度;作为输出,指示实际读取缓冲区的长度
|
||
* @Return:
|
||
* - Handle : CXP调试串口设备句柄
|
||
*
|
||
* @note
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapReadCXPUart(void *hDev, char *buffer, unsigned *length);
|
||
|
||
/**
|
||
* @brief 写入CXP串口数据
|
||
* @param[in] handle : 调试串口句柄
|
||
* @param[in] buffer : 缓冲区数据
|
||
* @param[in] length : 作为输入,指示输入缓冲区的长度;
|
||
* @Return:
|
||
* - Handle : CXP调试串口设备句柄
|
||
*
|
||
* @note
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapWriteCXPUart(void *hDev, char *buffer, unsigned length);
|
||
|
||
/**
|
||
* @brief 等待CXP数据有效
|
||
* @param[in] handle : 调试串口句柄
|
||
* @param[in] timeout : 超时时间
|
||
* @Return:
|
||
* - Handle : CXP调试串口设备句柄
|
||
*
|
||
* @note
|
||
* @see IKapClose
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapWaitCXPUart(void *hDev, int timeout);
|
||
|
||
/**
|
||
* @brief 保存缓冲区到指定位置
|
||
* @param[in] Handle : 采集卡句柄
|
||
* @param[in] nFrameNum : frame buffer index
|
||
* @param[in] fileName : frame buffer file name
|
||
* @param[in] nFlag : Image compression flag
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapLoadBuffer
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapSaveBuffer(void *hDev, int nFrameNum, const char *fileName, int nFlag);
|
||
|
||
/**
|
||
* @brief 保存缓冲区到指定位置
|
||
* @param[in] Handle : 采集卡句柄
|
||
* @param[in] nFrameNum : frame buffer index
|
||
* @param[in] fileName : frame buffer file name
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapSaveBuffer
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapLoadBuffer(void *hDev, int nFrameNum, const char *fileName);
|
||
/**
|
||
* @brief Read register
|
||
* @param[in] hDev : board handle
|
||
* @param[in] bar : board handle
|
||
* @param[in] addr :
|
||
* @param[out] npValue : info value
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapReadRegister
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapReadRegister(void *hDev, unsigned int bar, unsigned int addr, unsigned int *val);
|
||
|
||
/**
|
||
* @brief Write register
|
||
* @param[in] hDev : board handle
|
||
* @param[in] bar : board bar
|
||
* @param[in] addr : board address
|
||
* @param[out] val : value
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note
|
||
* @see IKapReadRegister
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapWriteRegister(void *hDev, unsigned int bar, unsigned int addr, unsigned int val);
|
||
|
||
/**
|
||
* @brief 对于某些应用场景, 需要在IKapStartGrab之前使用IKapPrepareGrab
|
||
* @param[in] Handle : 采集卡句柄
|
||
* @Return:
|
||
* - IK_RTN_OK
|
||
* - IK_RTN_ERROR
|
||
*
|
||
* @note 此函数调用可能会触发采集相关回调, 所以最好在还没有注册采集相关回调时使用
|
||
* @see IKapStartGrab
|
||
*/
|
||
IKAPBOARDDLL int IKAPBOARD_CC IKapPrepareGrab(void *hDev);
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif // __cplusplus
|
||
|
||
#endif
|