PreVerify/lib/DVP2/include/DVPCamera.h

6032 lines
181 KiB
C
Raw Normal View History

2024-09-09 19:18:28 +08:00
/** @mainpage 概述
*
*@section
*-#
*-# C/C++
*-# map中
*
*@section
*-# @link #DVP_INFORMATION @endlink的情况下API返回@link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*-# <a href="C:/Program Files (x86)/Do3think/BasedCam2">Basedcam2</a>API接口的功能和应用的理解
*-# API接口都安排在@link #DVP2_API_BASE @endlink分组下
*-# @link #CaptureImage CaptureImage@endlink示例
*-# @link #dvpHandle dvpHandle@endlink
*-# chm文档将获得更加友好的体验
*
*@section
* http://www.do3think.com
*
*@section API
* @version Version 2.25.43.1332(build: Mar 6 2023 16:48:32)
*
*
*@section
*@subsection Ver1 2016-4-1(2.5.12)
*-#
*@subsection Ver2 2016-10-31(2.7.8)
*-# @link #dvpGetCurveLut 线LUT@endlink功能
*-# @link #dvpColorCorrection @endlink的读写功能
*-# @link #dvpCaptureFile ROI下抓图并保存图像@endlink的功能
*-# @link #dvpGetRotateOpposite /90@endlink的功能
*-# @link #dvpFrame @endlink
*@subsection Ver3 2016-11-29(2.8.9)
*-# @link #dvpSetAeConfig @endlink功能
*-# @link #dvpEventCallback @endlink功能
*-# @link #dvpGetFrameBuffer @endlink的功能
*@subsection Ver4 2017-02-08(2.9.13)
*-# @link #dvpResetDevice @endlink的功能
*@subsection Ver5 2017-03-22(2.10.16)
*-# @link #dvpSetAutoDefectFixState 使@endlink的功能
*@subsection Ver6 2017-05-12(2.11.18)
*-# @link #dvpHold @endlink的功能
*-# @link #dvpSetHardwareIspState ISP使能@endlink的功能
*@subsection Ver7 2017-06-16(2.12.19)
*-# @link #dvpGetFunctionInfo @endlink的接口
*-# @link #dvpImageFormat::FORMAT_RGB32 RGB32图像格式@endlink输出的支持
*@subsection Ver8 2017-06-30(2.13.20)
*-# @link #dvpSetConfigString @endlink的接口
*@subsection Ver9 2017-07-17(2.14.21)
*-# @link #dvpStreamFormat @endlink的定义
*@subsection Ver 2017-09-15(2.15.24)
*-# @link #dvpCameraInfo::UserID @endlink来@link #dvpOpenByUserId @endlink的功能
*-# @link #dvpLoadUserSet @endlink的功能
*@subsection Ver10 2018-04-11(2.16.32)
*-# 线@link #dvpProcessImage @endlink的功能
*@subsection Ver11 2018-08-3(2.17.33)
*-# @link #dvpLine @endlink操作相关的接口使dvpInputIo和dvpOutputIo系列的接口
*-# @link #dvpSetTriggerSource @endlink的接口
*@subsection Ver12 2019-03-12(2.18.35)
*-# @link #dvpSetBufferQueueSize @endlink的接口
*@subsection Ver13 2019-08-6(2.19.37)
*-# @link #dvpSetBufferConfig @endlink的接口
*@subsection Ver14 2019-09-3(2.20.38)
*-# @link #dvpDebugReport @endlink的接口
*@subsection Ver15 2021-11-15(2.21.42)
*-# @link #dvpSetLineRate 线@endlink的接口
*-# @link #dvpSetLineTriggerConfig 线@endlink的接口
*@subsection Ver16 2022-2-18(2.22.43)
*-# @link #dvpPrintPictureToBuffer @endlink的接口
*@subsection Ver17 2022-7-20(2.22.44)
*-#
*@subsection Ver18 2022-8-12(2.22.44)
*-# @link #@endlink的接口
*@subsection Ver19 2022-8-24(2.23.45)
*-# @link #dvpGetXml xml文件@endlink的接口
*@subsection Ver20 2022-8-26(2.23.48)
*-# @link @endlink的版本
*@subsection Ver21 2022-9-7(2.23.49)
*-# @link B2上对线扫相机右键@endlink的版本
*@subsection Ver22 2022-9-8(2.24.50)
*-# @link @endlink的版本
*@subsection Ver23 2022-9-14(2.24.51)
*-# @link TriggerModePayloadSize@endlink的版本
*@subsection Ver24 2022-9-15(2.24.52)
*-# @link AcquisitionFrameRateAcquisitionFrameRateEnable@endlink的版本
*@subsection Ver25 2023-3-6(2.25.43)
*-# @link dvpWriteGenICamReg写geni寄存器接口dvpReadGenICamReg读geni寄存器接口
*-# @link dvpGetConfigString读取Config字符串接口
*/
#ifndef __DVPCAMERA_H__
#define __DVPCAMERA_H__
#define dvpPtr(ptr) ptr*
#ifndef __cplusplus
#define bool unsigned char
#define false (0)
#define true (1)
#endif
#ifndef _WIN32
#ifndef __cplusplus
#define dvp2api extern
#else
#define dvp2api extern "C"
#endif
#else
#include <windows.h>
#ifndef __cplusplus
#define dvp2api extern __declspec(dllimport)
#else
#define dvp2api extern "C" __declspec(dllimport)
#endif
#endif
dvp2api const unsigned int dvpVersion[4];
/** @brief 图像格式
*@see dvpGetFrame*/
typedef enum dvpImageFormat
{
/** @brief 黑白图像 */
FORMAT_MONO = 0,
/** @brief BGGR图像 */
FORMAT_BAYER_BG = 1,
/** @brief GBRG图像 */
FORMAT_BAYER_GB = 2,
/** @brief GRBG图像 */
FORMAT_BAYER_GR = 3,
/** @brief RGGB图像 */
FORMAT_BAYER_RG = 4,
/** @brief BGR三通道24比特图像 */
FORMAT_BGR24 = 10,
/** @brief BGRA四通道32比特图像 */
FORMAT_BGR32 = 11,
/** @brief BGR三通道48比特图像 */
FORMAT_BGR48 = 12,
/** @brief BGRA四通道64比特图像 */
FORMAT_BGR64 = 13,
/** @brief RGB三通道24比特图像 */
FORMAT_RGB24 = 14,
/** @brief RGBA四通道32比特图像 */
FORMAT_RGB32 = 15,
/** @brief RGB三通道48比特图像 */
FORMAT_RGB48 = 16,
/** @brief YUV411 */
FORMAT_YUV411 = 20,
/** @brief YUV422 */
FORMAT_YUV422 = 21,
/** @brief YUV444 */
FORMAT_YUV444 = 22,
/** @brief YUV420 */
FORMAT_YUV420 = 23,
/** @brief BGR三通道8比特拆分的图像 */
FORMAT_B8_G8_R8 = 40,
/** @brief BGR三通道16比特拆分的图像 */
FORMAT_B16_G16_R16 = 44,
} dvpImageFormat;
/** @brief 数据流格式
*@see dvpSetSourceFormat
*@see dvpSetTargetFormat
*@warning
*@note特殊情况下推荐使用 #dvpSetSourceFormatSel #dvpSetTargetFormatSel */
typedef enum dvpStreamFormat
{
/** @brief 8位图像 */
S_RAW8 = 0,
/** @brief 10位图像 */
S_RAW10 = 1,
/** @brief 12位图像 */
S_RAW12 = 2,
/** @brief 14位图像 */
S_RAW14 = 3,
/** @brief 16位图像 */
S_RAW16 = 4,
/** @brief BGR三通道24比特图像 */
S_BGR24 = 10,
/** @brief BGRA四通道32比特图像 */
S_BGR32 = 11,
/** @brief BGRA四通道48比特图像 */
S_BGR48 = 12,
/** @brief BGRA四通道64比特图像 */
S_BGR64 = 13,
/** @brief RGB三通道24比特图像 */
S_RGB24 = 14,
/** @brief RGBA四通道32比特图像 */
S_RGB32 = 15,
/** @brief RGBA四通道48比特图像 */
S_RGB48 = 16,
/** @brief RGBA四通道64比特图像 */
S_RGB64 = 17,
/** @brief YUV411 */
S_YUV411 = 20,
/** @brief YUV422 */
S_YUV422 = 21,
/** @brief YUV444 */
S_YUV444 = 22,
/** @brief YUV444 */
S_YUV420 = 23,
/** @brief 8位灰度图像 */
S_MONO8 = 30,
/** @brief 10位灰度图像 */
S_MONO10 = 31,
/** @brief 12位灰度图像 */
S_MONO12 = 32,
/** @brief 14位灰度图像 */
S_MONO14 = 33,
/** @brief 16位灰度图像 */
S_MONO16 = 34,
/** @brief BGR三通道8比特拆分的图像 */
S_B8_G8_R8 = 40,
/** @brief BGR三通道16比特拆分的图像 */
S_B16_G16_R16 = 44,
} dvpStreamFormat;
/** @brief 图像位宽
*@see dvpGetFrame*/
typedef enum dvpBits
{
/** @brief 8比特数据 */
BITS_8 = 0,
/** @brief 10比特数据 */
BITS_10 = 1,
/** @brief 12比特数据 */
BITS_12 = 2,
/** @brief 14比特数据 */
BITS_14 = 3,
/** @brief 16比特数据 */
BITS_16 = 4,
} dvpBits;
/** @brief 自动曝光模式*/
typedef enum dvpAeMode
{
/** @brief 自动曝光,自动增益同时开启,曝光优先 */
AE_MODE_AE_AG = 0,
/** @brief 自动曝光,自动增益同时开启,增益优先 */
AE_MODE_AG_AE = 1,
/** @brief 自动曝光 */
AE_MODE_AE_ONLY = 2,
/** @brief 自动增益 */
AE_MODE_AG_ONLY = 3,
} dvpAeMode;
/** @brief 自动曝光操作*/
typedef enum dvpAeOperation
{
/** @brief 功能关闭 */
AE_OP_OFF = 0,
/** @brief 进行一次 */
AE_OP_ONCE = 1,
/** @brief 连续操作 */
AE_OP_CONTINUOUS = 2,
} dvpAeOperation;
/** @brief 自动白平衡操作*/
typedef enum dvpAwbOperation
{
/** @brief 功能关闭 */
AWB_OP_OFF = 0,
/** @brief 进行一次 */
AWB_OP_ONCE = 1,
/** @brief 连续操作 */
AWB_OP_CONTINUOUS = 2,
} dvpAwbOperation;
/** @brief 灯光频闪*/
typedef enum dvpAntiFlick
{
/** @brief 禁止消除频闪 */
ANTIFLICK_DISABLE = 0,
/** @brief 消除50hz频闪 */
ANTIFLICK_50HZ = 1,
/** @brief 消除60hz频闪 */
ANTIFLICK_60HZ = 2,
} dvpAntiFlick;
/** @brief 传感器类型*/
typedef enum dvpSensorType
{
/** @brief CMOS图像传感器 */
SENSOR_TYPE_CMOS = 0,
/** @brief CCD图像传感器 */
SENSOR_TYPE_CCD = 1,
} dvpSensorType;
/** @brief 传感器像素类型*/
typedef enum dvpSensorPixel
{
/** @brief 黑白像素 */
SENSOR_PIXEL_MONO = 0,
/** @brief RGGB彩色像素 */
SENSOR_PIXEL_BAYER_RG = 1,
/** @brief GBRG彩色像素 */
SENSOR_PIXEL_BAYER_GB = 2,
/** @brief GRBG彩色像素 */
SENSOR_PIXEL_BAYER_GR = 3,
/** @brief BGGR彩色像素 */
SENSOR_PIXEL_BAYER_BG = 4,
} dvpSensorPixel;
/** @brief 视频流回调事件*/
typedef enum dvpStreamEvent
{
/** @brief 图像达到后 */
STREAM_EVENT_ARRIVED = 0,
/** @brief 图像校正后 */
STREAM_EVENT_CORRECTED = 1,
/** @brief 图像处理后 */
STREAM_EVENT_PROCESSED = 2,
/** @brief 启动一个专门的线程以@link #dvpGetFrame dvpGetFrame@endlink 的方式获取图像,并调用其他用户处理过程
*@warning @link #dvpStart @endlink之前设置好
*@see dvpProcessImage */
STREAM_EVENT_FRAME_THREAD = 3,
} dvpStreamEvent;
/** @brief 普通事件*/
typedef enum dvpEvent
{
/** @brief 未知的 */
EVENT_UNKNOW = 0,
/** @brief 连接成功 */
EVENT_CONNECTED = 1,
/** @brief 断开连接 */
EVENT_DISCONNECTED = 2,
/** @brief 数据流已经启动 */
EVENT_STREAM_STARTRD = 3,
/** @brief 数据流已经停止 */
EVENT_STREAM_STOPPED = 4,
/** @brief 丢帧(错误帧) */
EVENT_FRAME_LOST = 5,
/** @brief 等待帧超时 */
EVENT_FRAME_TIMEOUT = 6,
/** @brief 失去连接 */
EVENT_LOST_CONNECTION = 7,
/** @brief 重新连接 */
EVENT_RECONNECTED = 8,
/** @brief 帧开始传输 */
EVENT_FRAME_START = 9,
/** @brief 帧结束传输 */
EVENT_FRAME_END = 10,
} dvpEvent;
/** @brief 触发输入信号类型*/
typedef enum dvpTriggerInputType
{
/** @brief 触发输入关闭 */
TRIGGER_IN_OFF = 0,
/** @brief 下降沿触发 */
TRIGGER_NEG_EDGE = 1,
/** @brief 低电平触发 */
TRIGGER_LOW_LEVEL = 2,
/** @brief 上升沿触发 */
TRIGGER_POS_EDGE = 3,
/** @brief 高电平触发 */
TRIGGER_HIGH_LEVEL = 4,
} dvpTriggerInputType;
/** @brief Strobe输出信号类型*/
typedef enum dvpStrobeOutputType
{
/** @brief Strobe输出关闭 */
STROBE_OUT_OFF = 0,
/** @brief 输出低电平 */
STROBE_OUT_LOW = 1,
/** @brief 输出高电平 */
STROBE_OUT_HIGH = 2,
} dvpStrobeOutputType;
/** @brief Strobe信号驱动方式*/
typedef enum dvpStrobeDriver
{
/** @brief 整个帧周期都有效 */
FRAME_DURATION = 0,
/** @brief 由定时器驱动 */
TIMER_LOGIC = 1,
/** @brief 跟随SENSOR的Strobe信号 */
SENSOR_STROBE = 2,
/** @brief 整个触发过程有效触发过程包括了触发延迟部分和CHECK部分 */
TRIG_DURATION = 4,
/** @brief TriggerStartActive由触发信号边沿激活 */
TRIG_START = 5,
/** @brief TriggerEndActive由触发信号边沿激活 */
TRIG_END = 6,
/** @brief 跟随SENSOR的STROBE信号或者FPGA产生的曝光控制信号exp_ctrl */
EXPOSURE_DURATION = 8,
/** @brief 曝光开始 */
EXPOSURE_START = 9,
/** @brief 曝光结束 */
EXPOSURE_END = 10,
/** @brief 帧开始 */
FRAME_START = 13,
/** @brief 帧结束 */
FRAME_END = 14,
/** @brief 一组帧 触发多帧的过程指示 */
BURST_FRAME_DURATION = 16,
/** @brief 一组帧触发多帧的帧开始 */
BURST_FRAME_START = 17,
/** @brief 一组帧触发多帧的帧结束 */
BURST_FRAME_END = 18,
} dvpStrobeDriver;
/** @brief 输出模式
*@deprecated*/
typedef enum dvpOutputIoFunction
{
/** @brief 普通输出 */
OUTPUT_FUNCTION_NORMAL = 0x0000,
/** @brief 闪光灯输出 */
OUTPUT_FUNCTION_STROBE = 0x0001,
} dvpOutputIoFunction;
/** @brief 输入模式
*@deprecated*/
typedef enum dvpInputIoFunction
{
/** @brief 普通输入 */
INPUT_FUNCTION_NORMAL = 0x8001,
/** @brief 触发输入 */
INPUT_FUNCTION_TRIGGER = 0x8002,
} dvpInputIoFunction;
/** @brief 输出IO
*@deprecated*/
typedef enum dvpOutputIo
{
/** @brief 输出1 */
OUTPUT_IO_1 = 0x0001,
/** @brief 输出2 */
OUTPUT_IO_2 = 0x0002,
/** @brief 输出3 */
OUTPUT_IO_3 = 0x0003,
/** @brief 输出4 */
OUTPUT_IO_4 = 0x0004,
/** @brief 输出5 */
OUTPUT_IO_5 = 0x0005,
/** @brief 输出6 */
OUTPUT_IO_6 = 0x0006,
/** @brief 输出7 */
OUTPUT_IO_7 = 0x0007,
/** @brief 输出8 */
OUTPUT_IO_8 = 0x0008,
/** @brief 输出9 */
OUTPUT_IO_9 = 0x0009,
/** @brief 输出10 */
OUTPUT_IO_10 = 0x000a,
/** @brief 输出11 */
OUTPUT_IO_11 = 0x000b,
/** @brief 输出12 */
OUTPUT_IO_12 = 0x000c,
/** @brief 输出13 */
OUTPUT_IO_13 = 0x000d,
/** @brief 输出14 */
OUTPUT_IO_14 = 0x000e,
/** @brief 输出15 */
OUTPUT_IO_15 = 0x000f,
/** @brief 输出16 */
OUTPUT_IO_16 = 0x0010,
} dvpOutputIo;
/** @brief 输入IO
*@deprecated*/
typedef enum dvpInputIo
{
/** @brief 输入1 */
INPUT_IO_1 = 0x8001,
/** @brief 输入2 */
INPUT_IO_2 = 0x8002,
/** @brief 输入3 */
INPUT_IO_3 = 0x8003,
/** @brief 输入4 */
INPUT_IO_4 = 0x8004,
/** @brief 输入5 */
INPUT_IO_5 = 0x8005,
/** @brief 输入6 */
INPUT_IO_6 = 0x8006,
/** @brief 输入7 */
INPUT_IO_7 = 0x8007,
/** @brief 输入8 */
INPUT_IO_8 = 0x8008,
} dvpInputIo;
/** @brief 设备引脚*/
typedef enum dvpLine
{
/** @brief 引脚1 */
LINE_1 = 0x10001,
/** @brief 引脚2 */
LINE_2 = 0x10002,
/** @brief 引脚3 */
LINE_3 = 0x10003,
/** @brief 引脚4 */
LINE_4 = 0x10004,
/** @brief 引脚5 */
LINE_5 = 0x10005,
/** @brief 引脚6 */
LINE_6 = 0x10006,
/** @brief 引脚7 */
LINE_7 = 0x10007,
/** @brief 引脚8 */
LINE_8 = 0x10008,
/** @brief 引脚9 */
LINE_9 = 0x10009,
/** @brief 引脚10 */
LINE_10 = 0x1000a,
/** @brief 引脚11 */
LINE_11 = 0x1000b,
/** @brief 引脚12 */
LINE_12 = 0x1000c,
/** @brief 引脚13 */
LINE_13 = 0x1000d,
/** @brief 引脚14 */
LINE_14 = 0x1000e,
/** @brief 引脚15 */
LINE_15 = 0x1000f,
/** @brief 引脚16 */
LINE_16 = 0x10010,
} dvpLine;
/** @brief 引脚模式*/
typedef enum dvpLineMode
{
/** @brief 输入信号引脚 */
LINE_MODE_INPUT = 0,
/** @brief 输出信号引脚 */
LINE_MODE_OUTPUT = 1,
} dvpLineMode;
/** @brief 引脚输出信号源*/
typedef enum dvpLineSource
{
/** @brief 用户控制电平 */
OUTPUT_SOURCE_NORMAL = 0,
/** @brief 闪光灯信号 */
OUTPUT_SOURCE_STROBE = 1,
/** @brief PWM信号 */
OUTPUT_SOURCE_PWM = 2,
/** @brief PULSE信号 */
OUTPUT_SOURCE_PULSE = 0x10,
} dvpLineSource;
/** @brief 引脚触发模式*/
typedef enum dvpTriggerLineMode
{
/** @brief 普通 */
TRIGGER_LINE_MODE_NORMAL = 0,
/** @brief 曝光时间由脉冲宽度决定 */
TRIGGER_LINE_MODE_BULB = 1,
} dvpTriggerLineMode;
/** @brief 触发源*/
typedef enum dvpTriggerSource
{
/** @brief @link #dvpTriggerFire 软件@endlink触发 */
TRIGGER_SOURCE_SOFTWARE = 0,
/** @brief @link #dvpLine::LINE_1 引脚1@endlink触发 */
TRIGGER_SOURCE_LINE1 = 1,
/** @brief @link #dvpLine::LINE_2 引脚2@endlink触发 */
TRIGGER_SOURCE_LINE2 = 2,
/** @brief @link #dvpLine::LINE_3 引脚3@endlink触发 */
TRIGGER_SOURCE_LINE3 = 3,
/** @brief @link #dvpLine::LINE_4 引脚4@endlink触发 */
TRIGGER_SOURCE_LINE4 = 4,
/** @brief @link #dvpLine::LINE_5 引脚5@endlink触发 */
TRIGGER_SOURCE_LINE5 = 5,
/** @brief @link #dvpLine::LINE_6 引脚6@endlink触发 */
TRIGGER_SOURCE_LINE6 = 6,
/** @brief @link #dvpLine::LINE_7 引脚7@endlink触发 */
TRIGGER_SOURCE_LINE7 = 7,
/** @brief @link #dvpLine::LINE_8 引脚8@endlink触发 */
TRIGGER_SOURCE_LINE8 = 8,
} dvpTriggerSource;
/** @brief 第一个像素对应的位置*/
typedef enum dvpFirstPosition
{
/** @brief 左上角 */
UP_LEFT = 0,
/** @brief 右上角 */
UP_RIGHT = 1,
/** @brief 左下角 */
BOTTOM_LEFT = 2,
/** @brief 右下角 */
BOTTOM_RIGHT = 3,
} dvpFirstPosition;
/** @brief 设备打开模式
*@note ""@code dvpOpen(0, dvpOpenMode(OPEN_NORMAL | OPEN_DEBUG), &handle) @endcode*/
typedef enum dvpOpenMode
{
/** @brief 离线打开 */
OPEN_OFFLINE = 0,
/** @brief 打开实际设备 */
OPEN_NORMAL = 1 << 0,
/** @brief 以调试方式打开设备;对于千兆网相机,可以避免单步调试或断点引起的心跳包超时 */
OPEN_DEBUG = 1 << 3,
/** @brief 图像采集和处理线程使用较高的优先级 */
HIGH_PRIORITY = 1 << 4,
/** @brief 配置自动IP */
OPEN_AUTOIP = 1 << 5,
} dvpOpenMode;
/** @brief 视频流状态@see dvpGetStreamState*/
typedef enum dvpStreamState
{
/** @brief 已停止@see dvpStop */
STATE_STOPED = 0,
/** @brief 已启动@see dvpStart */
STATE_STARTED = 2,
} dvpStreamState;
/** @brief 曲线拟合风格*/
typedef enum dvpCurveStyle
{
/** @brief 直线拟合 */
CURVE_STYLE_LINE = 0,
/** @brief 平滑拟合 */
CURVE_STYLE_WAVE = 1,
} dvpCurveStyle;
/** @brief 用户设置
*@note */
typedef enum dvpUserSet
{
/** @brief 默认只读设置
*@note */
USER_SET_DEFAULT = 0,
/** @brief 用户设置1 */
USER_SET_1 = 1,
/** @brief 用户设置2 */
USER_SET_2 = 2,
} dvpUserSet;
/** @brief 缓存模式*/
typedef enum dvpBufferMode
{
/** @brief 最新帧输出,旧帧将被覆盖 */
BUFFER_MODE_NEWEST = 0,
/** @brief 先进先出队列 */
BUFFER_MODE_FIFO = 1,
} dvpBufferMode;
/** @brief 设备类型*/
typedef enum dvpDeviceType
{
/** @brief 未知类型 */
DEVICE_TYPE_UNKNOWN = 0,
/** @brief USB2.0接口的相机 */
DEVICE_TYPE_USB2_CAMERA = 10,
/** @brief USB3.0接口的相机 */
DEVICE_TYPE_USB3_CAMERA = 20,
/** @brief 千兆网接口的相机 */
DEVICE_TYPE_GLAN_CAMERA = 30,
/** @brief 万兆网接口的相机 */
DEVICE_TYPE_XGIGE_CAMERA = 40,
/** @brief 万兆网采集卡 */
DEVICE_TYPE_XGIGE_GRABBER = 100,
} dvpDeviceType;
/** @brief 调试信息报告,功能模块分类*/
typedef enum dvpReportPart
{
/** @brief 默认或未做功能分类 */
PART_DEFAULT = 0x00,
/** @brief 通讯相关 */
PART_LINK = 0x10,
/** @brief 控制相关 */
PART_CONTROL = 0x20,
/** @brief 数据流或采集相关 */
PART_STREAM = 0x30,
/** @brief 触发功能相关 */
PART_TRIG = 0x40,
/** @brief GPIO功能相关 */
PART_GPIO = 0x50,
/** @brief 图像效果相关 */
PART_IMAGE = 0x60,
} dvpReportPart;
/** @brief 调试信息报告的级别*/
typedef enum dvpReportLevel
{
/** @brief 信息或提示 */
LEVEL_INFO = 0x10,
/** @brief 问题或故障 */
LEVEL_PROBLEM = 0x40,
} dvpReportLevel;
/** @brief 所有标准接口的状态码
*@note DVP_STATUS_OK表示正常
*@note DVP_STATUS_OK通常表示警告
*@warning DVP_STATUS_OK则表示错误*/
typedef enum dvpStatus
{
/** @brief 操作忽略掉了,不须要任何动作 */
DVP_STATUS_IGNORED = 7,
/** @brief 需要其他数据和操作 */
DVP_STATUS_NEED_OTHER = 6,
/** @brief 还须进行下一阶段,只完成了部分动作 */
DVP_STATUS_NEXT_STAGE = 5,
/** @brief 正忙,此次操作不能进行 */
DVP_STATUS_BUSY = 4,
/** @brief 需要等待,可以再次尝试 */
DVP_STATUS_WAIT = 3,
/** @brief 正在进行,已经被操作过 */
DVP_STATUS_IN_PROCESS = 2,
/** @brief 操作成功 */
DVP_STATUS_OK = 1,
/** @brief 操作失败 */
DVP_STATUS_FAILED = 0,
/** @brief 未知错误 */
DVP_STATUS_UNKNOW = -1,
/** @brief 不支持该功能 */
DVP_STATUS_NOT_SUPPORTED = -2,
/** @brief 初始化未完成 */
DVP_STATUS_NOT_INITIALIZED = -3,
/** @brief 参数无效 */
DVP_STATUS_PARAMETER_INVALID = -4,
/** @brief 参数越界 */
DVP_STATUS_PARAMETER_OUT_OF_BOUND = -5,
/** @brief 特性未打开 */
DVP_STATUS_UNENABLED = -6,
/** @brief 未连接到设备 */
DVP_STATUS_UNCONNECTED = -7,
/** @brief 功能无效 */
DVP_STATUS_NOT_VALID = -8,
/** @brief 设备没打开 */
DVP_STATUS_UNPLAY = -9,
/** @brief 未启动 */
DVP_STATUS_NOT_STARTED = -10,
/** @brief 未停止 */
DVP_STATUS_NOT_STOPPED = -11,
/** @brief 未准备好 */
DVP_STATUS_NOT_READY = -12,
/** @brief 无效句柄(空句柄或野句柄),通常是相机未打开所致 */
DVP_STATUS_INVALID_HANDLE = -13,
/** @brief 错误的描述 */
DVP_STATUS_DESCR_FAULT = -20,
/** @brief 错误的名称 */
DVP_STATUS_NAME_FAULT = -21,
/** @brief 错误的赋值 */
DVP_STATUS_VALUE_FAULT = -22,
/** @brief 被限制 */
DVP_STATUS_LIMITED = -28,
/** @brief 功能无效 */
DVP_STATUS_FUNCTION_INVALID = -29,
/** @brief 在自动进行中,手动方式无效 */
DVP_STATUS_IN_AUTO = -30,
/** @brief 操作被拒绝 */
DVP_STATUS_DENIED = -31,
/** @brief 偏移或地址未对齐 */
DVP_STATUS_BAD_ALIGNMENT = -40,
/** @brief 地址无效 */
DVP_STATUS_ADDRESS_INVALID = -41,
/** @brief 数据块大小无效 */
DVP_STATUS_SIZE_INVALID = -42,
/** @brief 数据量过载 */
DVP_STATUS_OVER_LOAD = -43,
/** @brief 数据量不够 */
DVP_STATUS_UNDER_LOAD = -44,
/** @brief 检查,校验失败 */
DVP_STATUS_CHECKED_FAILED = -50,
/** @brief 不可用 */
DVP_STATUS_UNUSABLE = -51,
/** @brief 业务ID无效或不匹配 */
DVP_STATUS_BID_INVALID = -52,
/** @brief 使用不当 */
DVP_STATUS_IMPROPER = -53,
/** @brief 只读,不可写 */
DVP_STATUS_READ_ONLY = -54,
/** @brief 不能识别的数据 */
DVP_STATUS_UNRECOGNIZED_DATA = -55,
/** @brief 超时错误 */
DVP_STATUS_TIME_OUT = -1000,
/** @brief 硬件IO错误 */
DVP_STATUS_IO_ERROR = -1001,
/** @brief 通讯错误 */
DVP_STATUS_COMM_ERROR = -1002,
/** @brief 总线错误 */
DVP_STATUS_BUS_ERROR = -1003,
/** @brief 格式错误 */
DVP_STATUS_FORMAT_INVALID = -1004,
/** @brief 内容无效 */
DVP_STATUS_CONTENT_INVALID = -1005,
/** @brief I2C总线错误 */
DVP_STATUS_I2C_FAULT = -1010,
/** @brief I2C等待应答超时 */
DVP_STATUS_I2C_ACK_TIMEOUT = -1011,
/** @brief I2C等待总线动作超时例如SCL被外部器件拉为低电平 */
DVP_STATUS_I2C_BUS_TIMEOUT = -1012,
/** @brief SPI总线错误 */
DVP_STATUS_SPI_FAULT = -1020,
/** @brief UART总线错误 */
DVP_STATUS_UART_FAULT = -1030,
/** @brief GPIO总线错误 */
DVP_STATUS_GPIO_FAULT = -1040,
/** @brief USB总线错误 */
DVP_STATUS_USB_FAULT = -1050,
/** @brief PCI总线错误 */
DVP_STATUS_PCI_FAULT = -1060,
/** @brief 物理层错误 */
DVP_STATUS_PHY_FAULT = -1070,
/** @brief 链路层错误 */
DVP_STATUS_LINK_FAULT = -1080,
/** @brief 传输层错误 */
DVP_STATUS_TRANS_FAULT = -1090,
/** @brief 没有发现设备 */
DVP_STATUS_NO_DEVICE_FOUND = -1100,
/** @brief 未找到逻辑设备 */
DVP_STATUS_NO_LOGIC_DEVICE_FOUND = -1101,
/** @brief 设备已经打开 */
DVP_STATUS_DEVICE_IS_OPENED = -1102,
/** @brief 设备已经关闭 */
DVP_STATUS_DEVICE_IS_CLOSED = -1103,
/** @brief 设备已经断开连接 */
DVP_STATUS_DEVICE_IS_DISCONNECTED = -1104,
/** @brief 设备已经被其他主机打开 */
DVP_STATUS_DEVICE_IS_OPENED_BY_ANOTHER = -1105,
/** @brief 设备已经被启动 */
DVP_STATUS_DEVICE_IS_STARTED = -1106,
/** @brief 设备已经被停止设备已经被其他主机打开 */
DVP_STATUS_DEVICE_IS_STOPPED = -1107,
/** @brief 没有足够系统内存 */
DVP_STATUS_INSUFFICIENT_MEMORY = -1200,
/** @brief 存储器读写出现误码或无法正常读写 */
DVP_STATUS_MEMORY_FAULT = -1201,
/** @brief 写保护,不可写 */
DVP_STATUS_WRITE_PROTECTED = -1202,
/** @brief 创建文件失败 */
DVP_STATUS_FILE_CREATE_FAILED = -1300,
/** @brief 文件格式无效 */
DVP_STATUS_FILE_INVALID = -1301,
/** @brief 读取文件失败 */
DVP_STATUS_FILE_READ_FAILED = -1302,
/** @brief 写入文件失败 */
DVP_STATUS_FILE_WRITE_FAILED = -1303,
/** @brief 打开文件失败 */
DVP_STATUS_FILE_OPEN_FAILED = -1304,
/** @brief 读取数据较检失败 */
DVP_STATUS_FILE_CHECKSUM_FAILED = -1305,
/** @brief 数据采集失败,指定的时间内未获得数据 */
DVP_STATUS_GRAB_FAILED = -1600,
/** @brief 数据丢失,不完整 */
DVP_STATUS_LOST_DATA = -1601,
/** @brief 未接收到帧结束符 */
DVP_STATUS_EOF_ERROR = -1602,
/** @brief 数据采集功能已经打开 */
DVP_STATUS_GRAB_IS_OPENED = -1603,
/** @brief 数据采集功能已经关闭 */
DVP_STATUS_GRAB_IS_CLOSED = -1604,
/** @brief 数据采集已经启动 */
DVP_STATUS_GRAB_IS_STARTED = -1605,
/** @brief 数据采集已经停止 */
DVP_STATUS_GRAB_IS_STOPPED = -1606,
/** @brief 数据采集正在重启 */
DVP_STATUS_GRAB_IS_RESTARTING = -1607,
/** @brief 设置的ROI参数无效 */
DVP_STATUS_ROI_PARAM_INVALID = -1610,
/** @brief ROI功能不支持 */
DVP_STATUS_ROI_NOT_SUPPORTED = -1611,
} dvpStatus;
#ifndef _WIN32
#include <stdint.h>
/** @brief 8位无符号整数 */
typedef uint8_t dvpByte;
/** @brief 32位有符号整数 */
typedef int32_t dvpInt32;
/** @brief 32位无符号整数 */
typedef uint32_t dvpUint32;
/** @brief 64位有符号整数 */
typedef int64_t dvpInt64;
/** @brief 64位无符号整数 */
typedef uint64_t dvpUint64;
#else
/** @brief 8位无符号整数 */
typedef BYTE dvpByte;
/** @brief 32位有符号整数 */
typedef INT32 dvpInt32;
/** @brief 32位无符号整数 */
typedef UINT32 dvpUint32;
/** @brief 64位有符号整数 */
typedef INT64 dvpInt64;
/** @brief 64位无符号整数 */
typedef UINT64 dvpUint64;
#endif // _WIN32
/** @brief 128字节保留空间 */
typedef dvpUint32 dvpReserved[32];
/** @brief 64字节长的字符串 */
typedef char dvpString64[64];
/** @brief 128字节长的字符串 */
typedef char dvpString128[128];
/** @brief 32字节长的布尔数组 */
typedef bool dvpBool32[32];
/** @brief 4行3列简单矩阵 */
typedef float dvpMatrix[4][3];
/** @brief 3元简单浮点数组 */
typedef float dvpFloat3c[3];
/** @brief 3元简单整型数组 */
typedef dvpUint32 dvpSize3c[3];
/** @brief 相机句柄
*@see dvpOpen
*@see dvpOpenByName */
typedef dvpUint32 dvpHandle;
/** @brief 视频编码器句柄
*@see dvpStartVideoRecord */
typedef dvpUint32 dvpRecordHandle;
/** @brief 字符串指针 */
typedef const char* dvpStr;
/** @brief 颜色矩阵 */
typedef struct dvpColorMatrix
{
/** @brief 矩阵 */
dvpMatrix matrix;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpColorMatrix;
/** @brief 颜色校正信息 */
typedef struct dvpColorCorrection
{
/** @brief BGR三色校正系数 */
dvpFloat3c bgr;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpColorCorrection;
/** @brief 二维浮点数坐标 */
typedef struct dvpPoint2f
{
/** @brief 横坐标 */
float X;
/** @brief 纵坐标 */
float Y;
} dvpPoint2f;
/** @brief BGR三色256个锚点 */
typedef struct dvpPoint2f dvpPoint3c[3][256];
/** @brief BGR曲线数组 */
typedef struct dvpCurveArray
{
/** @brief BGR曲线数组空间 */
dvpPoint3c point;
/** @brief BGR有效通道数最多3个 */
dvpUint32 rows;
/** @brief BGR三通道的有效点数每通道最多256个 */
dvpSize3c cols;
} dvpCurveArray;
/** @brief 由曲线定义的LUT
*@warning new dvpCurveLut() */
typedef struct dvpCurveLut
{
/** @brief 使能状态 */
bool enable;
/** @brief 曲线风格 */
dvpCurveStyle style;
/** @brief 锚点数组由少数几个锚点可以确定一个完整的LUT */
dvpCurveArray array;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpCurveLut;
/** @brief 相机信息
*@see dvpGetCameraInfo
*@see dvpEnum */
typedef struct dvpCameraInfo
{
/** @brief 设计厂商 */
dvpString64 Vendor;
/** @brief 生产厂商 */
dvpString64 Manufacturer;
/** @brief 型号 */
dvpString64 Model;
/** @brief 系列 */
dvpString64 Family;
/** @brief 连接名 */
dvpString64 LinkName;
/** @brief 传感器描述 */
dvpString64 SensorInfo;
/** @brief 硬件版本 */
dvpString64 HardwareVersion;
/** @brief 固件版本 */
dvpString64 FirmwareVersion;
/** @brief 内核驱动版本 */
dvpString64 KernelVersion;
/** @brief 设备驱动版本 */
dvpString64 DscamVersion;
/** @brief 友好设备名称 */
dvpString64 FriendlyName;
/** @brief 接口描述 */
dvpString64 PortInfo;
/** @brief 序列号
*@note */
dvpString64 SerialNumber;
/** @brief 相机描述 */
dvpString128 CameraInfo;
/** @brief 用户命名 */
dvpString128 UserID;
/** @brief 原始序列号 */
dvpString64 OriginalSerialNumber;
/** @brief 保留字节 */
dvpString64 reserved;
} dvpCameraInfo;
/** @brief 区域描述 */
typedef struct dvpRegionDescr
{
/** @brief 最小宽度 */
dvpInt32 iMinW;
/** @brief 最小高度 */
dvpInt32 iMinH;
/** @brief 最大宽度 */
dvpInt32 iMaxW;
/** @brief 最大高度 */
dvpInt32 iMaxH;
/** @brief 宽度步长 */
dvpInt32 iStepW;
/** @brief 高度步长 */
dvpInt32 iStepH;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpRegionDescr;
/** @brief 起始于左上角的感兴趣的区域
*@see dvpGetRoi
*@see dvpGetAwbRoi
*@see dvpGetAeRoi
*@warning */
typedef struct dvpRegion
{
/** @brief 横向起始位置 */
dvpInt32 X;
/** @brief 纵向起始位置 */
dvpInt32 Y;
/** @brief 宽度大于0 */
dvpInt32 W;
/** @brief 高度大于0 */
dvpInt32 H;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpRegion;
/** @brief 帧信息
*@see dvpGetFrame */
typedef struct dvpFrame
{
/** @brief 格式 */
enum dvpImageFormat format;
/** @brief 位宽 */
enum dvpBits bits;
/** @brief 字节数 */
dvpUint32 uBytes;
/** @brief 宽度 */
dvpInt32 iWidth;
/** @brief 高度 */
dvpInt32 iHeight;
/** @brief 帧编号 */
dvpUint64 uFrameID;
/** @brief 时间戳 */
dvpUint64 uTimestamp;
/** @brief 曝光时间(单位为微秒)
*@see dvpGetExposure */
double fExposure;
/** @brief 模拟增益
*@see dvpGetAnalogGain */
float fAGain;
/** @brief 第一个像素点的位置
*@see dvpGetFirstPosition */
enum dvpFirstPosition position;
/** @brief 是否水平翻转
*@see dvpGetFlipHorizontalState */
bool bFlipHorizontalState;
/** @brief 是否垂直翻转
*@see dvpGetFlipVerticalState */
bool bFlipVerticalState;
/** @brief 是否旋转90度
*@see dvpGetRotateState */
bool bRotateState;
/** @brief 是否逆时针旋转
*@see dvpGetRotateOpposite */
bool bRotateOpposite;
/** @brief 内部标志位 */
dvpUint32 internalFlags;
/** @brief 内部信息 */
dvpUint32 internalValue;
/** @brief 每次触发所对应的一帧或多帧的触发ID
*@see dvpGetFramesPerTrigger */
dvpUint64 uTriggerId;
/** @brief 用户定制的数据,为数值或指针 */
dvpUint64 userValue;
/** @brief 保留字节 */
dvpUint32 reserved[24];
} dvpFrame;
/** @brief 帧信息与图像数据
*@see dvpGetFrameBuffer */
typedef struct dvpFrameBuffer
{
/** @brief 帧信息 */
struct dvpFrame frame;
/** @brief 图像数据首地址
*@warning */
dvpPtr(dvpByte) pBuffer;
} dvpFrameBuffer;
/** @brief 通用数据
*@see dvpEventCallback */
typedef struct dvpVariant
{
/** @brief 数据首地址 */
dvpPtr(dvpByte) pData;
/** @brief 数据字节数 */
dvpUint32 uSize;
/** @brief 数据类型名称 */
dvpString64 name;
} dvpVariant;
/** @brief 64位整型数据描述 */
typedef struct dvpInt64Descr
{
/** @brief 步长 */
dvpUint64 iStep;
/** @brief 最小值 */
dvpUint64 iMin;
/** @brief 最大值 */
dvpUint64 iMax;
/** @brief 默认值 */
dvpUint64 iDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpInt64Descr;
/** @brief 整型数据描述 */
typedef struct dvpIntDescr
{
/** @brief 步长 */
dvpInt32 iStep;
/** @brief 最小值 */
dvpInt32 iMin;
/** @brief 最大值 */
dvpInt32 iMax;
/** @brief 默认值 */
dvpInt32 iDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpIntDescr;
/** @brief 无符号整型数据描述 */
typedef struct dvpUintDescr
{
/** @brief 步长 */
dvpUint32 uStep;
/** @brief 最小值 */
dvpUint32 uMin;
/** @brief 最大值 */
dvpUint32 uMax;
/** @brief 默认值 */
dvpUint32 uDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpUintDescr;
/** @brief 浮点型数据描述 */
typedef struct dvpFloatDescr
{
/** @brief 步长 */
float fStep;
/** @brief 最小值 */
float fMin;
/** @brief 最大值 */
float fMax;
/** @brief 默认值 */
float fDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpFloatDescr;
/** @brief 双精度型数据描述 */
typedef struct dvpDoubleDescr
{
/** @brief 步长 */
double fStep;
/** @brief 最小值 */
double fMin;
/** @brief 最大值 */
double fMax;
/** @brief 默认值 */
double fDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpDoubleDescr;
/** @brief 64位无符号整型数据描述 */
typedef struct dvpUint64Descr
{
/** @brief 步长 */
dvpUint64 uStep;
/** @brief 最小值 */
dvpUint64 uMin;
/** @brief 最大值 */
dvpUint64 uMax;
/** @brief 默认值 */
dvpUint64 uDefault;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpUint64Descr;
/** @brief 选择项描述 */
typedef struct dvpSelectionDescr
{
/** @brief 默认索引 */
dvpUint32 uDefault;
/** @brief 索引个数 */
dvpUint32 uCount;
/** @brief 是否应停止视频流 */
bool bNeedStop;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpSelectionDescr;
/** @brief 选择项 */
typedef struct dvpSelection
{
/** @brief 字符串描述 */
dvpString64 string;
/** @brief 索引 */
dvpInt32 iIndex;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpSelection;
/** @brief 分辨率模式
*@see dvpGetTriggerModeSelDetail */
typedef struct dvpResolutionMode
{
/** @brief 分辨率模式选择项 */
struct dvpSelection selection;
/** @brief 区域 */
struct dvpRegionDescr region;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpResolutionMode;
/** @brief 快速Roi
*@see dvpGetQuickRoiSelDetail */
typedef struct dvpQuickRoi
{
/** @brief 选择项 */
struct dvpSelection selection;
/** @brief 感兴趣的区域 */
struct dvpRegion roi;
/** @brief 分辨率模式 */
struct dvpResolutionMode mode;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpQuickRoi;
/** @brief 图像格式 */
typedef struct dvpFormatSelection
{
/** @brief 分辨率模式选择项 */
struct dvpSelection selection;
/** @brief 对应的枚举类型 */
enum dvpStreamFormat format;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpFormatSelection;
/** @brief 帧计数
*@see dvpGetFrameCount */
typedef struct dvpFrameCount
{
/** @brief 接收帧数,一般为传输到电脑的帧 */
dvpUint32 uFrameCount;
/** @brief 丢失帧数,来不及读取的 */
dvpUint32 uFrameDrop;
/** @brief 放弃的,采集后被丢掉的 */
dvpUint32 uFrameIgnore;
/** @brief 错误帧计数 */
dvpUint32 uFrameError;
/** @brief 被采集到的正确帧 */
dvpUint32 uFrameOK;
/** @brief 被提交 / 输出的有效帧 */
dvpUint32 uFrameOut;
/** @brief 重传帧 */
dvpUint32 uFrameResend;
/** @brief 图像处理帧总数 */
dvpUint32 uFrameProc;
/** @brief 采集帧率 */
float fFrameRate;
/** @brief 图像处理帧率 */
float fProcRate;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpFrameCount;
/** @brief 用户IO信息
*@see dvpGetUserIoInfo */
typedef struct dvpUserIoInfo
{
/** @brief 可用的输入IO */
dvpBool32 inputValid;
/** @brief 可用的输出IO */
dvpBool32 outputValid;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpUserIoInfo;
/** @brief 用户IO信息
*@see dvpGetLineInfo */
typedef struct dvpLineInfo
{
/** @brief 可用的IO */
dvpBool32 valid;
/** @brief 双向的IO */
dvpBool32 bidir;
/** @brief 是否支持反向器 */
dvpBool32 inverter;
/** @brief 是否支持软件设置输出电平 */
dvpBool32 user;
/** @brief 是否支持strobe信号 */
dvpBool32 strobe;
/** @brief 是否支持pwm信号 */
dvpBool32 pwm;
/** @brief 是否支持timer信号 */
dvpBool32 timer;
/** @brief 是否支持uart信号 */
dvpBool32 uart;
/** @brief 是否支持pulse信号 */
dvpBool32 pulse;
/** @brief 是否支持触发输入 */
dvpBool32 trigger;
/** @brief 保留字节 */
dvpUint32 reserved[16];
} dvpLineInfo;
/** @brief 自动曝光配置
*@see dvpGetAeConfig */
typedef struct dvpAeConfig
{
/** @brief 最小自动曝光时间(单位为微秒) */
double fExposureMin;
/** @brief 最大自动曝光时间(单位为微秒) */
double fExposureMax;
/** @brief 保留值1 */
double reserved1;
/** @brief 最小自动增益值 */
float fGainMin;
/** @brief 最大自动增益值 */
float fGainMax;
/** @brief 保留值2 */
float reserved2;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpAeConfig;
/** @brief Sensor(图像传感器)信息
*@see dvpGetSensorInfo */
typedef struct dvpSensorInfo
{
/** @brief 字符串描述 */
dvpString64 descr;
/** @brief 传感器类型 */
enum dvpSensorType sensor;
/** @brief 原始像素类型 */
enum dvpSensorPixel pixel;
/** @brief 区域 */
struct dvpRegionDescr region;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpSensorInfo;
/** @brief 相机功能描述信息
*@see dvpGetFunctionInfo */
typedef struct dvpFunctionInfo
{
/** @brief 是否支持触发功能 */
bool bTrigger;
/** @brief 是否支持硬件ISP功能 */
bool bHardwareIsp;
/** @brief 是否支持UserSet功能 */
bool bUserSet;
/** @brief 是否支持水平翻转功能 */
bool bHflip;
/** @brief 是否支持垂直翻转功能 */
bool bVflip;
/** @brief 是否支持负片功能 */
bool bInverse;
/** @brief 是否支持符合gige标准的@link #dvpLine 相机引脚@endlink功能 */
bool bLine;
/** @brief 是否支持制冷器
*@see dvpGetCoolerState */
bool bCooler;
/** @brief 是否支持温度计功能 */
bool bTemperature;
/** @brief 保留 */
bool bReserved3;
/** @brief 保留字节 */
dvpUint32 reserved[30];
} dvpFunctionInfo;
/** @brief 设备温度
*@see dvpGetTemperatureInfo */
typedef struct dvpTemperatureInfo
{
/** @brief 设备的温度 */
float fDevice;
/** @brief 传感器的温度 */
float fSensor;
/** @brief 芯片1的温度 */
float fChip1;
/** @brief 芯片2的温度 */
float fChip2;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpTemperatureInfo;
/** @brief 帧缓存配置
*@see dvpGetBufferConfig */
typedef struct dvpBufferConfig
{
/** @brief 缓存工作模式 */
enum dvpBufferMode mode;
/** @brief 缓存队列大小
*@see dvpGetBufferQueueSizeDescr
*@warning */
dvpUint32 uQueueSize;
/** @brief 缓存队列满时,是否丢弃新产生的帧
* @note true false */
bool bDropNew;
/** @brief 紧凑缓存的内存申请
*@note是否根据当前分辨率大小sensor最大分辨率 */
bool bLite;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpBufferConfig;
/** @brief 行触发配置
*@see dvpGetLineTriggerConfig
* @note一般只对线扫相机有效 */
typedef struct dvpLineTriggerConfig
{
/** @brief 预分频 */
dvpUint32 uPreDiv;
/** @brief 倍频 */
dvpUint32 uMult;
/** @brief 分频 */
dvpUint32 uDiv;
/** @brief 保留字节 */
dvpReserved reserved;
} dvpLineTriggerConfig;
/**
*@brief
*@param[in] handle
*@param[out] pCameraInfo
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*@see dvpGetDeviceType
*/
dvp2api dvpStatus dvpGetCameraInfo(dvpHandle handle, dvpCameraInfo* pCameraInfo);
/**
*@brief
*@param[in] handle
*@param[out] pSensorInfo
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*/
dvp2api dvpStatus dvpGetSensorInfo(dvpHandle handle, dvpSensorInfo* pSensorInfo);
/**
*@brief
*@param[in] handle
*@param[out] pFrameCount
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*/
dvp2api dvpStatus dvpGetFrameCount(dvpHandle handle, dvpFrameCount* pFrameCount);
/**
*@brief IO有效标志
*@param[in] handle
*@param[out] pUserIoInfo IO有效标志
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*@deprecated
*/
dvp2api dvpStatus dvpGetUserIoInfo(dvpHandle handle, dvpUserIoInfo* pUserIoInfo);
/**
*@brief
*@param[in] handle
*@param[out] pLineInfo
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*/
dvp2api dvpStatus dvpGetLineInfo(dvpHandle handle, dvpLineInfo* pLineInfo);
/**
*@brief
*@param[in] handle
*@param[out] pFirstPosition
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*/
dvp2api dvpStatus dvpGetFirstPosition(dvpHandle handle, dvpFirstPosition* pFirstPosition);
/**
*@brief
*@param[in] handle
*@param[out] pFunctionInfo
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*@note API使
*/
dvp2api dvpStatus dvpGetFunctionInfo(dvpHandle handle, dvpFunctionInfo* pFunctionInfo);
/**
*@brief
*@param[in] handle
*@param[out] pDeviceType
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*@see dvpGetCameraInfo
*/
dvp2api dvpStatus dvpGetDeviceType(dvpHandle handle, dvpDeviceType* pDeviceType);
/**
*@brief
*@param[in] handle
*@param[out] pTemperatureInfo
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_INFORMATION
*@see dvpGetCoolerState
*/
dvp2api dvpStatus dvpGetTemperatureInfo(dvpHandle handle, dvpTemperatureInfo* pTemperatureInfo);
/**
*@brief
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@note @link #dvpSetTriggerSource @endlink好@link #dvpTriggerSource::TRIGGER_SOURCE_SOFTWARE @endlink
*/
dvp2api dvpStatus dvpTriggerFire(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpSetDefectFixState
*@see dvpSetAutoDefectFixState
*@note Sensor都一定程度存在着亮度固定的死点或彩点
*@note
*/
dvp2api dvpStatus dvpCreateDefectFixInfo(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@note
*@note
*/
dvp2api dvpStatus dvpCreateFlatFieldInfo(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP2_API_BASE
*@note
*/
dvp2api dvpStatus dvpResetDevice(dvpHandle handle);
/**
*@brief /
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP2_API_BASE
*@see dvpHold
*@link #dvpHold @endlink视频流
*/
dvp2api dvpStatus dvpRestart(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP2_API_BASE
*@see dvpRestart
*@see dvpIsHold
*@note @link #dvpStart @endlink后@link #dvpRestart @endlink视频流
*/
dvp2api dvpStatus dvpHold(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@param[out] pGamma
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetColorSolutionSel
*@see dvpSetGammaState
*@see dvpGetGammaState
*@see dvpGetGammaDescr
*@see dvpSetGamma
*@note 使
*/
dvp2api dvpStatus dvpGetGamma(dvpHandle handle, dvpInt32* pGamma);
/**
*@brief
*@param[in] handle
*@param[in] Gamma
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetColorSolutionSel
*@see dvpSetGammaState
*@see dvpGetGammaState
*@see dvpGetGammaDescr
*@see dvpGetGamma
*@note 使
*/
dvp2api dvpStatus dvpSetGamma(dvpHandle handle, dvpInt32 Gamma);
/**
*@brief
*@param[in] handle
*@param[out] pGammaDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetColorSolutionSel
*@see dvpSetGammaState
*@see dvpGetGammaState
*@see dvpSetGamma
*@see dvpGetGamma
*/
dvp2api dvpStatus dvpGetGammaDescr(dvpHandle handle, dvpIntDescr* pGammaDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pGammaState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetColorSolutionSel
*@see dvpSetGamma
*@see dvpGetGamma
*@see dvpGetGammaDescr
*@see dvpSetGammaState
*/
dvp2api dvpStatus dvpGetGammaState(dvpHandle handle, bool* pGammaState);
/**
*@brief 使
*@param[in] handle
*@param[in] GammaState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetColorSolutionSel
*@see dvpSetGamma
*@see dvpGetGamma
*@see dvpGetGammaDescr
*@see dvpGetGammaState
*/
dvp2api dvpStatus dvpSetGammaState(dvpHandle handle, bool GammaState);
/**
*@brief
*@param[in] handle
*@param[out] pContrast
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetBlackLevel
*@see dvpSetContrastState
*@see dvpGetContrastState
*@see dvpGetContrastDescr
*@see dvpSetContrast
*@note
*/
dvp2api dvpStatus dvpGetContrast(dvpHandle handle, dvpInt32* pContrast);
/**
*@brief
*@param[in] handle
*@param[in] Contrast
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetBlackLevel
*@see dvpSetContrastState
*@see dvpGetContrastState
*@see dvpGetContrastDescr
*@see dvpGetContrast
*@note
*/
dvp2api dvpStatus dvpSetContrast(dvpHandle handle, dvpInt32 Contrast);
/**
*@brief
*@param[in] handle
*@param[out] pContrastDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetBlackLevel
*@see dvpSetContrastState
*@see dvpGetContrastState
*@see dvpSetContrast
*@see dvpGetContrast
*/
dvp2api dvpStatus dvpGetContrastDescr(dvpHandle handle, dvpIntDescr* pContrastDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pContrastState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetBlackLevel
*@see dvpSetContrast
*@see dvpGetContrast
*@see dvpGetContrastDescr
*@see dvpSetContrastState
*/
dvp2api dvpStatus dvpGetContrastState(dvpHandle handle, bool* pContrastState);
/**
*@brief 使
*@param[in] handle
*@param[in] ContrastState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetBlackLevel
*@see dvpSetContrast
*@see dvpGetContrast
*@see dvpGetContrastDescr
*@see dvpGetContrastState
*/
dvp2api dvpStatus dvpSetContrastState(dvpHandle handle, bool ContrastState);
/**
*@brief Roi()
*@param[in] handle
*@param[out] pRoi Roi()
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetQuickRoiSel
*@see dvpSetRoiState
*@see dvpGetRoiState
*@see dvpGetRoiDescr
*@see dvpSetRoi
*/
dvp2api dvpStatus dvpGetRoi(dvpHandle handle, dvpRegion* pRoi);
/**
*@brief Roi()
*@param[in] handle
*@param[in] Roi Roi()
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetQuickRoiSel
*@see dvpSetRoiState
*@see dvpGetRoiState
*@see dvpGetRoiDescr
*@see dvpGetRoi
*/
dvp2api dvpStatus dvpSetRoi(dvpHandle handle, dvpRegion Roi);
/**
*@brief Roi()
*@param[in] handle
*@param[out] pRoiDescr Roi()
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetQuickRoiSel
*@see dvpSetRoiState
*@see dvpGetRoiState
*@see dvpSetRoi
*@see dvpGetRoi
*/
dvp2api dvpStatus dvpGetRoiDescr(dvpHandle handle, dvpRegionDescr* pRoiDescr);
/**
*@brief Roi()使
*@param[in] handle
*@param[out] pRoiState Roi()使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetQuickRoiSel
*@see dvpSetRoi
*@see dvpGetRoi
*@see dvpGetRoiDescr
*@see dvpSetRoiState
*/
dvp2api dvpStatus dvpGetRoiState(dvpHandle handle, bool* pRoiState);
/**
*@brief Roi()使
*@param[in] handle
*@param[in] RoiState Roi()使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetQuickRoiSel
*@see dvpSetRoi
*@see dvpGetRoi
*@see dvpGetRoiDescr
*@see dvpGetRoiState
*/
dvp2api dvpStatus dvpSetRoiState(dvpHandle handle, bool RoiState);
/**
*@brief K
*@param[in] handle
*@param[out] pColorTemperature K
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetColorTemperatureState
*@see dvpGetColorTemperatureState
*@see dvpGetColorTemperatureDescr
*@see dvpSetColorTemperature
*@note
*/
dvp2api dvpStatus dvpGetColorTemperature(dvpHandle handle, dvpInt32* pColorTemperature);
/**
*@brief K
*@param[in] handle
*@param[in] ColorTemperature K
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetColorTemperatureState
*@see dvpGetColorTemperatureState
*@see dvpGetColorTemperatureDescr
*@see dvpGetColorTemperature
*@note
*/
dvp2api dvpStatus dvpSetColorTemperature(dvpHandle handle, dvpInt32 ColorTemperature);
/**
*@brief
*@param[in] handle
*@param[out] pColorTemperatureDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetColorTemperatureState
*@see dvpGetColorTemperatureState
*@see dvpSetColorTemperature
*@see dvpGetColorTemperature
*/
dvp2api dvpStatus dvpGetColorTemperatureDescr(dvpHandle handle, dvpIntDescr* pColorTemperatureDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pColorTemperatureState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetColorTemperature
*@see dvpGetColorTemperature
*@see dvpGetColorTemperatureDescr
*@see dvpSetColorTemperatureState
*/
dvp2api dvpStatus dvpGetColorTemperatureState(dvpHandle handle, bool* pColorTemperatureState);
/**
*@brief 使
*@param[in] handle
*@param[in] ColorTemperatureState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetColorTemperature
*@see dvpGetColorTemperature
*@see dvpGetColorTemperatureDescr
*@see dvpGetColorTemperatureState
*/
dvp2api dvpStatus dvpSetColorTemperatureState(dvpHandle handle, bool ColorTemperatureState);
/**
*@brief
*@param[in] handle
*@param[out] pSharpness
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetSharpnessState
*@see dvpGetSharpnessState
*@see dvpGetSharpnessDescr
*@see dvpSetSharpness
*@note
*/
dvp2api dvpStatus dvpGetSharpness(dvpHandle handle, dvpInt32* pSharpness);
/**
*@brief
*@param[in] handle
*@param[in] Sharpness
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetSharpnessState
*@see dvpGetSharpnessState
*@see dvpGetSharpnessDescr
*@see dvpGetSharpness
*@note
*/
dvp2api dvpStatus dvpSetSharpness(dvpHandle handle, dvpInt32 Sharpness);
/**
*@brief
*@param[in] handle
*@param[out] pSharpnessDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetSharpnessState
*@see dvpGetSharpnessState
*@see dvpSetSharpness
*@see dvpGetSharpness
*/
dvp2api dvpStatus dvpGetSharpnessDescr(dvpHandle handle, dvpIntDescr* pSharpnessDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pSharpnessState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetSharpness
*@see dvpGetSharpness
*@see dvpGetSharpnessDescr
*@see dvpSetSharpnessState
*/
dvp2api dvpStatus dvpGetSharpnessState(dvpHandle handle, bool* pSharpnessState);
/**
*@brief 使
*@param[in] handle
*@param[in] SharpnessState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetSharpness
*@see dvpGetSharpness
*@see dvpGetSharpnessDescr
*@see dvpGetSharpnessState
*/
dvp2api dvpStatus dvpSetSharpnessState(dvpHandle handle, bool SharpnessState);
/**
*@brief
*@param[in] handle
*@param[out] pSaturation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetSaturationState
*@see dvpGetSaturationState
*@see dvpGetSaturationDescr
*@see dvpSetSaturation
*@note
*/
dvp2api dvpStatus dvpGetSaturation(dvpHandle handle, dvpInt32* pSaturation);
/**
*@brief
*@param[in] handle
*@param[in] Saturation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetSaturationState
*@see dvpGetSaturationState
*@see dvpGetSaturationDescr
*@see dvpGetSaturation
*@note
*/
dvp2api dvpStatus dvpSetSaturation(dvpHandle handle, dvpInt32 Saturation);
/**
*@brief
*@param[in] handle
*@param[out] pSaturationDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetSaturationState
*@see dvpGetSaturationState
*@see dvpSetSaturation
*@see dvpGetSaturation
*/
dvp2api dvpStatus dvpGetSaturationDescr(dvpHandle handle, dvpIntDescr* pSaturationDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pSaturationState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetSaturation
*@see dvpGetSaturation
*@see dvpGetSaturationDescr
*@see dvpSetSaturationState
*/
dvp2api dvpStatus dvpGetSaturationState(dvpHandle handle, bool* pSaturationState);
/**
*@brief 使
*@param[in] handle
*@param[in] SaturationState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetSaturation
*@see dvpGetSaturation
*@see dvpGetSaturationDescr
*@see dvpGetSaturationState
*/
dvp2api dvpStatus dvpSetSaturationState(dvpHandle handle, bool SaturationState);
/**
*@brief 2D降噪的值
*@param[in] handle
*@param[out] pNoiseReduct2d 2D降噪的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetSharpness
*@see dvpGetNoiseReduct3d
*@see dvpSetNoiseReduct2dState
*@see dvpGetNoiseReduct2dState
*@see dvpGetNoiseReduct2dDescr
*@see dvpSetNoiseReduct2d
*@note
*/
dvp2api dvpStatus dvpGetNoiseReduct2d(dvpHandle handle, dvpInt32* pNoiseReduct2d);
/**
*@brief 2D降噪的值
*@param[in] handle
*@param[in] NoiseReduct2d 2D降噪的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetSharpness
*@see dvpGetNoiseReduct3d
*@see dvpSetNoiseReduct2dState
*@see dvpGetNoiseReduct2dState
*@see dvpGetNoiseReduct2dDescr
*@see dvpGetNoiseReduct2d
*@note
*/
dvp2api dvpStatus dvpSetNoiseReduct2d(dvpHandle handle, dvpInt32 NoiseReduct2d);
/**
*@brief 2D降噪的描述信息
*@param[in] handle
*@param[out] pNoiseReduct2dDescr 2D降噪的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetSharpness
*@see dvpGetNoiseReduct3d
*@see dvpSetNoiseReduct2dState
*@see dvpGetNoiseReduct2dState
*@see dvpSetNoiseReduct2d
*@see dvpGetNoiseReduct2d
*/
dvp2api dvpStatus dvpGetNoiseReduct2dDescr(dvpHandle handle, dvpIntDescr* pNoiseReduct2dDescr);
/**
*@brief 2D降噪功能的使能状态
*@param[in] handle
*@param[out] pNoiseReduct2dState 2D降噪功能的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetSharpness
*@see dvpGetNoiseReduct3d
*@see dvpSetNoiseReduct2d
*@see dvpGetNoiseReduct2d
*@see dvpGetNoiseReduct2dDescr
*@see dvpSetNoiseReduct2dState
*/
dvp2api dvpStatus dvpGetNoiseReduct2dState(dvpHandle handle, bool* pNoiseReduct2dState);
/**
*@brief 2D降噪功能的使能状态
*@param[in] handle
*@param[in] NoiseReduct2dState 2D降噪功能的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetSharpness
*@see dvpGetNoiseReduct3d
*@see dvpSetNoiseReduct2d
*@see dvpGetNoiseReduct2d
*@see dvpGetNoiseReduct2dDescr
*@see dvpGetNoiseReduct2dState
*/
dvp2api dvpStatus dvpSetNoiseReduct2dState(dvpHandle handle, bool NoiseReduct2dState);
/**
*@brief 3D降噪的值
*@param[in] handle
*@param[out] pNoiseReduct3d 3D降噪的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetNoiseReduct3dState
*@see dvpGetNoiseReduct3dState
*@see dvpGetNoiseReduct3dDescr
*@see dvpSetNoiseReduct3d
*@note
*/
dvp2api dvpStatus dvpGetNoiseReduct3d(dvpHandle handle, dvpInt32* pNoiseReduct3d);
/**
*@brief 3D降噪的值
*@param[in] handle
*@param[in] NoiseReduct3d 3D降噪的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetNoiseReduct3dState
*@see dvpGetNoiseReduct3dState
*@see dvpGetNoiseReduct3dDescr
*@see dvpGetNoiseReduct3d
*@note
*/
dvp2api dvpStatus dvpSetNoiseReduct3d(dvpHandle handle, dvpInt32 NoiseReduct3d);
/**
*@brief 3D降噪的描述信息
*@param[in] handle
*@param[out] pNoiseReduct3dDescr 3D降噪的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetNoiseReduct3dState
*@see dvpGetNoiseReduct3dState
*@see dvpSetNoiseReduct3d
*@see dvpGetNoiseReduct3d
*/
dvp2api dvpStatus dvpGetNoiseReduct3dDescr(dvpHandle handle, dvpIntDescr* pNoiseReduct3dDescr);
/**
*@brief 3D降噪功能的使能状态
*@param[in] handle
*@param[out] pNoiseReduct3dState 3D降噪功能的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetNoiseReduct3d
*@see dvpGetNoiseReduct3d
*@see dvpGetNoiseReduct3dDescr
*@see dvpSetNoiseReduct3dState
*/
dvp2api dvpStatus dvpGetNoiseReduct3dState(dvpHandle handle, bool* pNoiseReduct3dState);
/**
*@brief 3D降噪功能的使能状态
*@param[in] handle
*@param[in] NoiseReduct3dState 3D降噪功能的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetNoiseReduct2d
*@see dvpSetNoiseReduct3d
*@see dvpGetNoiseReduct3d
*@see dvpGetNoiseReduct3dDescr
*@see dvpGetNoiseReduct3dState
*/
dvp2api dvpStatus dvpSetNoiseReduct3dState(dvpHandle handle, bool NoiseReduct3dState);
/**
*@brief
*@param[in] handle
*@param[out] pBlackLevel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetContrast
*@see dvpSetBlackLevelState
*@see dvpGetBlackLevelState
*@see dvpGetBlackLevelDescr
*@see dvpSetBlackLevel
*@note
*/
dvp2api dvpStatus dvpGetBlackLevel(dvpHandle handle, float* pBlackLevel);
/**
*@brief
*@param[in] handle
*@param[in] BlackLevel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetContrast
*@see dvpSetBlackLevelState
*@see dvpGetBlackLevelState
*@see dvpGetBlackLevelDescr
*@see dvpGetBlackLevel
*@note
*/
dvp2api dvpStatus dvpSetBlackLevel(dvpHandle handle, float BlackLevel);
/**
*@brief
*@param[in] handle
*@param[out] pBlackLevelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetContrast
*@see dvpSetBlackLevelState
*@see dvpGetBlackLevelState
*@see dvpSetBlackLevel
*@see dvpGetBlackLevel
*/
dvp2api dvpStatus dvpGetBlackLevelDescr(dvpHandle handle, dvpFloatDescr* pBlackLevelDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pBlackLevelState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetContrast
*@see dvpSetBlackLevel
*@see dvpGetBlackLevel
*@see dvpGetBlackLevelDescr
*@see dvpSetBlackLevelState
*/
dvp2api dvpStatus dvpGetBlackLevelState(dvpHandle handle, bool* pBlackLevelState);
/**
*@brief 使
*@param[in] handle
*@param[in] BlackLevelState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetContrast
*@see dvpSetBlackLevel
*@see dvpGetBlackLevel
*@see dvpGetBlackLevelDescr
*@see dvpGetBlackLevelState
*/
dvp2api dvpStatus dvpSetBlackLevelState(dvpHandle handle, bool BlackLevelState);
/**
*@brief
*@param[in] handle
*@param[out] pSoftTriggerLoop
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetSoftTriggerLoopState
*@see dvpGetSoftTriggerLoopState
*@see dvpGetSoftTriggerLoopDescr
*@see dvpSetSoftTriggerLoop
*/
dvp2api dvpStatus dvpGetSoftTriggerLoop(dvpHandle handle, double* pSoftTriggerLoop);
/**
*@brief
*@param[in] handle
*@param[in] SoftTriggerLoop
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetSoftTriggerLoopState
*@see dvpGetSoftTriggerLoopState
*@see dvpGetSoftTriggerLoopDescr
*@see dvpGetSoftTriggerLoop
*/
dvp2api dvpStatus dvpSetSoftTriggerLoop(dvpHandle handle, double SoftTriggerLoop);
/**
*@brief
*@param[in] handle
*@param[out] pSoftTriggerLoopDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetSoftTriggerLoopState
*@see dvpGetSoftTriggerLoopState
*@see dvpSetSoftTriggerLoop
*@see dvpGetSoftTriggerLoop
*/
dvp2api dvpStatus dvpGetSoftTriggerLoopDescr(dvpHandle handle, dvpDoubleDescr* pSoftTriggerLoopDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pSoftTriggerLoopState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetSoftTriggerLoop
*@see dvpGetSoftTriggerLoop
*@see dvpGetSoftTriggerLoopDescr
*@see dvpSetSoftTriggerLoopState
*/
dvp2api dvpStatus dvpGetSoftTriggerLoopState(dvpHandle handle, bool* pSoftTriggerLoopState);
/**
*@brief 使
*@param[in] handle
*@param[in] SoftTriggerLoopState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetSoftTriggerLoop
*@see dvpGetSoftTriggerLoop
*@see dvpGetSoftTriggerLoopDescr
*@see dvpGetSoftTriggerLoopState
*/
dvp2api dvpStatus dvpSetSoftTriggerLoopState(dvpHandle handle, bool SoftTriggerLoopState);
/**
*@brief
*@param[in] handle
*@param[out] pMultiFrames
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetMultiFramesState
*@see dvpGetMultiFramesState
*@see dvpGetMultiFramesDescr
*@see dvpSetMultiFrames
*@note 1
*/
dvp2api dvpStatus dvpGetMultiFrames(dvpHandle handle, dvpUint64* pMultiFrames);
/**
*@brief
*@param[in] handle
*@param[in] MultiFrames
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetMultiFramesState
*@see dvpGetMultiFramesState
*@see dvpGetMultiFramesDescr
*@see dvpGetMultiFrames
*@note 1
*/
dvp2api dvpStatus dvpSetMultiFrames(dvpHandle handle, dvpUint64 MultiFrames);
/**
*@brief
*@param[in] handle
*@param[out] pMultiFramesDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetMultiFramesState
*@see dvpGetMultiFramesState
*@see dvpSetMultiFrames
*@see dvpGetMultiFrames
*/
dvp2api dvpStatus dvpGetMultiFramesDescr(dvpHandle handle, dvpUint64Descr* pMultiFramesDescr);
/**
*@brief 使
*@param[in] handle
*@param[out] pMultiFramesState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetMultiFrames
*@see dvpGetMultiFrames
*@see dvpGetMultiFramesDescr
*@see dvpSetMultiFramesState
*/
dvp2api dvpStatus dvpGetMultiFramesState(dvpHandle handle, bool* pMultiFramesState);
/**
*@brief 使
*@param[in] handle
*@param[in] MultiFramesState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetMultiFrames
*@see dvpGetMultiFrames
*@see dvpGetMultiFramesDescr
*@see dvpGetMultiFramesState
*/
dvp2api dvpStatus dvpSetMultiFramesState(dvpHandle handle, bool MultiFramesState);
/**
*@brief
*@param[in] handle
*@param[out] pStreamPackInterval
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetStreamPackIntervalDescr
*@see dvpSetStreamPackInterval
*@note
*/
dvp2api dvpStatus dvpGetStreamPackInterval(dvpHandle handle, dvpInt32* pStreamPackInterval);
/**
*@brief
*@param[in] handle
*@param[in] StreamPackInterval
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetStreamPackIntervalDescr
*@see dvpGetStreamPackInterval
*@note
*/
dvp2api dvpStatus dvpSetStreamPackInterval(dvpHandle handle, dvpInt32 StreamPackInterval);
/**
*@brief
*@param[in] handle
*@param[out] pStreamPackIntervalDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpSetStreamPackInterval
*@see dvpGetStreamPackInterval
*/
dvp2api dvpStatus dvpGetStreamPackIntervalDescr(dvpHandle handle, dvpIntDescr* pStreamPackIntervalDescr);
/**
*@brief
*@param[in] handle
*@param[out] pStreamPackSize
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetStreamPackSizeDescr
*@see dvpSetStreamPackSize
*@note
*@note 使@link #dvpGetPixelRateSel @endlink
*/
dvp2api dvpStatus dvpGetStreamPackSize(dvpHandle handle, dvpInt32* pStreamPackSize);
/**
*@brief
*@param[in] handle
*@param[in] StreamPackSize
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetStreamPackSizeDescr
*@see dvpGetStreamPackSize
*@note
*@note 使@link #dvpGetPixelRateSel @endlink
*/
dvp2api dvpStatus dvpSetStreamPackSize(dvpHandle handle, dvpInt32 StreamPackSize);
/**
*@brief
*@param[in] handle
*@param[out] pStreamPackSizeDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpSetStreamPackSize
*@see dvpGetStreamPackSize
*/
dvp2api dvpStatus dvpGetStreamPackSizeDescr(dvpHandle handle, dvpIntDescr* pStreamPackSizeDescr);
/**
*@brief
*@param[in] handle
*@param[out] pAeTarget
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeOperation
*@see dvpGetAeTargetDescr
*@see dvpSetAeTarget
*@note @link #dvpGetExposure @endlink和@link #dvpGetAnalogGain @endlink所要达到的最终亮度
*/
dvp2api dvpStatus dvpGetAeTarget(dvpHandle handle, dvpInt32* pAeTarget);
/**
*@brief
*@param[in] handle
*@param[in] AeTarget
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeOperation
*@see dvpGetAeTargetDescr
*@see dvpGetAeTarget
*@note @link #dvpGetExposure @endlink和@link #dvpGetAnalogGain @endlink所要达到的最终亮度
*/
dvp2api dvpStatus dvpSetAeTarget(dvpHandle handle, dvpInt32 AeTarget);
/**
*@brief
*@param[in] handle
*@param[out] pAeTargetDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeOperation
*@see dvpSetAeTarget
*@see dvpGetAeTarget
*/
dvp2api dvpStatus dvpGetAeTargetDescr(dvpHandle handle, dvpIntDescr* pAeTargetDescr);
/**
*@brief
*@param[in] handle
*@param[out] pAnalogGain
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetExposure
*@see dvpGetAnalogGainDescr
*@see dvpSetAnalogGain
*@note
*/
dvp2api dvpStatus dvpGetAnalogGain(dvpHandle handle, float* pAnalogGain);
/**
*@brief
*@param[in] handle
*@param[in] AnalogGain
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetExposure
*@see dvpGetAnalogGainDescr
*@see dvpGetAnalogGain
*@note
*/
dvp2api dvpStatus dvpSetAnalogGain(dvpHandle handle, float AnalogGain);
/**
*@brief
*@param[in] handle
*@param[out] pAnalogGainDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetExposure
*@see dvpSetAnalogGain
*@see dvpGetAnalogGain
*/
dvp2api dvpStatus dvpGetAnalogGainDescr(dvpHandle handle, dvpFloatDescr* pAnalogGainDescr);
/**
*@brief
*@param[in] handle
*@param[out] pExposure
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAnalogGain
*@see dvpGetExposureDescr
*@see dvpSetExposure
*@note
*/
dvp2api dvpStatus dvpGetExposure(dvpHandle handle, double* pExposure);
/**
*@brief
*@param[in] handle
*@param[in] Exposure
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAnalogGain
*@see dvpGetExposureDescr
*@see dvpGetExposure
*@note
*/
dvp2api dvpStatus dvpSetExposure(dvpHandle handle, double Exposure);
/**
*@brief
*@param[in] handle
*@param[out] pExposureDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAnalogGain
*@see dvpSetExposure
*@see dvpGetExposure
*/
dvp2api dvpStatus dvpGetExposureDescr(dvpHandle handle, dvpDoubleDescr* pExposureDescr);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerJitterFilter
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerJitterFilterDescr
*@see dvpSetTriggerJitterFilter
*@note
*/
dvp2api dvpStatus dvpGetTriggerJitterFilter(dvpHandle handle, double* pTriggerJitterFilter);
/**
*@brief
*@param[in] handle
*@param[in] TriggerJitterFilter
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerJitterFilterDescr
*@see dvpGetTriggerJitterFilter
*@note
*/
dvp2api dvpStatus dvpSetTriggerJitterFilter(dvpHandle handle, double TriggerJitterFilter);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerJitterFilterDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetTriggerJitterFilter
*@see dvpGetTriggerJitterFilter
*/
dvp2api dvpStatus dvpGetTriggerJitterFilterDescr(dvpHandle handle, dvpDoubleDescr* pTriggerJitterFilterDescr);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerDelay
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerDelayDescr
*@see dvpSetTriggerDelay
*@note
*/
dvp2api dvpStatus dvpGetTriggerDelay(dvpHandle handle, double* pTriggerDelay);
/**
*@brief
*@param[in] handle
*@param[in] TriggerDelay
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerDelayDescr
*@see dvpGetTriggerDelay
*@note
*/
dvp2api dvpStatus dvpSetTriggerDelay(dvpHandle handle, double TriggerDelay);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerDelayDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetTriggerDelay
*@see dvpGetTriggerDelay
*/
dvp2api dvpStatus dvpGetTriggerDelayDescr(dvpHandle handle, dvpDoubleDescr* pTriggerDelayDescr);
/**
*@brief Strobe信号的延时的值
*@param[in] handle
*@param[out] pStrobeDelay Strobe信号的延时的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDelayDescr
*@see dvpSetStrobeDelay
*@note
*/
dvp2api dvpStatus dvpGetStrobeDelay(dvpHandle handle, double* pStrobeDelay);
/**
*@brief Strobe信号的延时的值
*@param[in] handle
*@param[in] StrobeDelay Strobe信号的延时的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDelayDescr
*@see dvpGetStrobeDelay
*@note
*/
dvp2api dvpStatus dvpSetStrobeDelay(dvpHandle handle, double StrobeDelay);
/**
*@brief Strobe信号的延时的描述信息
*@param[in] handle
*@param[out] pStrobeDelayDescr Strobe信号的延时的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetStrobeDelay
*@see dvpGetStrobeDelay
*/
dvp2api dvpStatus dvpGetStrobeDelayDescr(dvpHandle handle, dvpDoubleDescr* pStrobeDelayDescr);
/**
*@brief Strobe信号的持续时间的值
*@param[in] handle
*@param[out] pStrobeDuration Strobe信号的持续时间的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDurationDescr
*@see dvpSetStrobeDuration
*@note
*/
dvp2api dvpStatus dvpGetStrobeDuration(dvpHandle handle, double* pStrobeDuration);
/**
*@brief Strobe信号的持续时间的值
*@param[in] handle
*@param[in] StrobeDuration Strobe信号的持续时间的值
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDurationDescr
*@see dvpGetStrobeDuration
*@note
*/
dvp2api dvpStatus dvpSetStrobeDuration(dvpHandle handle, double StrobeDuration);
/**
*@brief Strobe信号的持续时间的描述信息
*@param[in] handle
*@param[out] pStrobeDurationDescr Strobe信号的持续时间的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetStrobeDuration
*@see dvpGetStrobeDuration
*/
dvp2api dvpStatus dvpGetStrobeDurationDescr(dvpHandle handle, dvpDoubleDescr* pStrobeDurationDescr);
/**
*@brief
*@param[in] handle
*@param[out] pFramesPerTrigger
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetFramesPerTriggerDescr
*@see dvpSetFramesPerTrigger
*@note
*/
dvp2api dvpStatus dvpGetFramesPerTrigger(dvpHandle handle, dvpInt32* pFramesPerTrigger);
/**
*@brief
*@param[in] handle
*@param[in] FramesPerTrigger
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetFramesPerTriggerDescr
*@see dvpGetFramesPerTrigger
*@note
*/
dvp2api dvpStatus dvpSetFramesPerTrigger(dvpHandle handle, dvpInt32 FramesPerTrigger);
/**
*@brief
*@param[in] handle
*@param[out] pFramesPerTriggerDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetFramesPerTrigger
*@see dvpGetFramesPerTrigger
*/
dvp2api dvpStatus dvpGetFramesPerTriggerDescr(dvpHandle handle, dvpIntDescr* pFramesPerTriggerDescr);
/**
*@brief
*@param[in] handle
*@param[out] pTimerValue
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetTimerValueDescr
*@see dvpSetTimerValue
*/
dvp2api dvpStatus dvpGetTimerValue(dvpHandle handle, double* pTimerValue);
/**
*@brief
*@param[in] handle
*@param[in] TimerValue
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetTimerValueDescr
*@see dvpGetTimerValue
*/
dvp2api dvpStatus dvpSetTimerValue(dvpHandle handle, double TimerValue);
/**
*@brief
*@param[in] handle
*@param[out] pTimerValueDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetTimerValue
*@see dvpGetTimerValue
*/
dvp2api dvpStatus dvpGetTimerValueDescr(dvpHandle handle, dvpDoubleDescr* pTimerValueDescr);
/**
*@brief
*@param[in] handle
*@param[out] pBufferQueueSize
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetBufferQueueSizeDescr
*@see dvpSetBufferQueueSize
*@see dvpGetBufferConfig
*@warning
*@warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpGetBufferQueueSize(dvpHandle handle, dvpInt32* pBufferQueueSize);
/**
*@brief
*@param[in] handle
*@param[in] BufferQueueSize
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetBufferQueueSizeDescr
*@see dvpGetBufferQueueSize
*@see dvpGetBufferConfig
*@warning
*@warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpSetBufferQueueSize(dvpHandle handle, dvpInt32 BufferQueueSize);
/**
*@brief
*@param[in] handle
*@param[out] pBufferQueueSizeDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetBufferQueueSize
*@see dvpGetBufferQueueSize
*/
dvp2api dvpStatus dvpGetBufferQueueSizeDescr(dvpHandle handle, dvpIntDescr* pBufferQueueSizeDescr);
/**
*@brief 线
*@param[in] handle
*@param[out] pLineRate 线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
* @ingroup DVP_LINESCAN
*@see dvpGetLineRateDescr
*@see dvpSetLineRate
*/
dvp2api dvpStatus dvpGetLineRate(dvpHandle handle, double* pLineRate);
/**
*@brief 线
*@param[in] handle
*@param[in] LineRate 线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
* @ingroup DVP_LINESCAN
*@see dvpGetLineRateDescr
*@see dvpGetLineRate
*/
dvp2api dvpStatus dvpSetLineRate(dvpHandle handle, double LineRate);
/**
*@brief 线
*@param[in] handle
*@param[out] pLineRateDescr 线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
* @ingroup DVP_LINESCAN
*@see dvpSetLineRate
*@see dvpGetLineRate
*/
dvp2api dvpStatus dvpGetLineRateDescr(dvpHandle handle, dvpDoubleDescr* pLineRateDescr);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerSource
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpSetTriggerSource
*/
dvp2api dvpStatus dvpGetTriggerSource(dvpHandle handle, dvpTriggerSource* pTriggerSource);
/**
*@brief
*@param[in] handle
*@param[in] TriggerSource
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerSource
*/
dvp2api dvpStatus dvpSetTriggerSource(dvpHandle handle, dvpTriggerSource TriggerSource);
/**
*@brief LUT曲线
*@param[in] handle
*@param[out] pCurveLut LUT曲线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpSetCurveLut
*@note 线
*/
dvp2api dvpStatus dvpGetCurveLut(dvpHandle handle, dvpCurveLut* pCurveLut);
/**
*@brief LUT曲线
*@param[in] handle
*@param[in] CurveLut LUT曲线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetCurveLut
*@note 线
*/
dvp2api dvpStatus dvpSetCurveLut(dvpHandle handle, dvpCurveLut CurveLut);
/**
*@brief
*@param[in] handle
*@param[out] pColorCorrection
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpSetColorCorrection
*@note
*/
dvp2api dvpStatus dvpGetColorCorrection(dvpHandle handle, dvpColorCorrection* pColorCorrection);
/**
*@brief
*@param[in] handle
*@param[in] ColorCorrection
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpGetColorCorrection
*@note
*/
dvp2api dvpStatus dvpSetColorCorrection(dvpHandle handle, dvpColorCorrection ColorCorrection);
/**
*@brief
*@param[in] handle
*@param[out] pStreamState
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpStart
*@see dvpStop
*@see dvpSetStreamState
*/
dvp2api dvpStatus dvpGetStreamState(dvpHandle handle, dvpStreamState* pStreamState);
/**
*@brief
*@param[in] handle
*@param[in] StreamState
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpStart
*@see dvpStop
*@see dvpGetStreamState
*/
dvp2api dvpStatus dvpSetStreamState(dvpHandle handle, dvpStreamState StreamState);
/**
*@brief ISP的使能状态
*@param[in] handle
*@param[out] pHardwareIspState ISP的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetFunctionInfo
*@see dvpSetHardwareIspState
*@note ISP能够节省电脑的性能开销
*/
dvp2api dvpStatus dvpGetHardwareIspState(dvpHandle handle, bool* pHardwareIspState);
/**
*@brief ISP的使能状态
*@param[in] handle
*@param[in] HardwareIspState ISP的使能状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@see dvpGetFunctionInfo
*@see dvpGetHardwareIspState
*@note ISP能够节省电脑的性能开销
*/
dvp2api dvpStatus dvpSetHardwareIspState(dvpHandle handle, bool HardwareIspState);
/**
*@brief 使
*@param[in] handle
*@param[out] pTriggerState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetFunctionInfo
*@see dvpSetTriggerState
*@note
*/
dvp2api dvpStatus dvpGetTriggerState(dvpHandle handle, bool* pTriggerState);
/**
*@brief 使
*@param[in] handle
*@param[in] TriggerState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetFunctionInfo
*@see dvpGetTriggerState
*@note
*/
dvp2api dvpStatus dvpSetTriggerState(dvpHandle handle, bool TriggerState);
/**
*@brief 使
*@param[in] handle
*@param[out] pMonoState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpSetMonoState
*@note YUV变换并提取亮度Y
*/
dvp2api dvpStatus dvpGetMonoState(dvpHandle handle, bool* pMonoState);
/**
*@brief 使
*@param[in] handle
*@param[in] MonoState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetMonoState
*@note YUV变换并提取亮度Y
*/
dvp2api dvpStatus dvpSetMonoState(dvpHandle handle, bool MonoState);
/**
*@brief 使
*@param[in] handle
*@param[out] pInverseState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpSetInverseState
*@note
*/
dvp2api dvpStatus dvpGetInverseState(dvpHandle handle, bool* pInverseState);
/**
*@brief 使
*@param[in] handle
*@param[in] InverseState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetInverseState
*@note
*/
dvp2api dvpStatus dvpSetInverseState(dvpHandle handle, bool InverseState);
/**
*@brief 使
*@param[in] handle
*@param[out] pFlipHorizontalState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetFlipVerticalState
*@see dvpGetRotateOpposite
*@see dvpSetFlipHorizontalState
*/
dvp2api dvpStatus dvpGetFlipHorizontalState(dvpHandle handle, bool* pFlipHorizontalState);
/**
*@brief 使
*@param[in] handle
*@param[in] FlipHorizontalState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetFlipVerticalState
*@see dvpGetRotateOpposite
*@see dvpGetFlipHorizontalState
*/
dvp2api dvpStatus dvpSetFlipHorizontalState(dvpHandle handle, bool FlipHorizontalState);
/**
*@brief 使
*@param[in] handle
*@param[out] pFlipVerticalState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetFlipHorizontalState
*@see dvpGetRotateOpposite
*@see dvpSetFlipVerticalState
*/
dvp2api dvpStatus dvpGetFlipVerticalState(dvpHandle handle, bool* pFlipVerticalState);
/**
*@brief 使
*@param[in] handle
*@param[in] FlipVerticalState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetFlipHorizontalState
*@see dvpGetRotateOpposite
*@see dvpGetFlipVerticalState
*/
dvp2api dvpStatus dvpSetFlipVerticalState(dvpHandle handle, bool FlipVerticalState);
/**
*@brief 使
*@param[in] handle
*@param[out] pFlatFieldState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateFlatFieldInfo
*@see dvpSetFlatFieldState
*@note
*/
dvp2api dvpStatus dvpGetFlatFieldState(dvpHandle handle, bool* pFlatFieldState);
/**
*@brief 使
*@param[in] handle
*@param[in] FlatFieldState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateFlatFieldInfo
*@see dvpGetFlatFieldState
*@note
*/
dvp2api dvpStatus dvpSetFlatFieldState(dvpHandle handle, bool FlatFieldState);
/**
*@brief 使
*@param[in] handle
*@param[out] pDefectFixState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateDefectFixInfo
*@see dvpSetAutoDefectFixState
*@see dvpSetDefectFixState
*/
dvp2api dvpStatus dvpGetDefectFixState(dvpHandle handle, bool* pDefectFixState);
/**
*@brief 使
*@param[in] handle
*@param[in] DefectFixState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateDefectFixInfo
*@see dvpSetAutoDefectFixState
*@see dvpGetDefectFixState
*/
dvp2api dvpStatus dvpSetDefectFixState(dvpHandle handle, bool DefectFixState);
/**
*@brief 使
*@param[in] handle
*@param[out] pAutoDefectFixState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateDefectFixInfo
*@see dvpSetDefectFixState
*@see dvpSetAutoDefectFixState
*@note true false
*/
dvp2api dvpStatus dvpGetAutoDefectFixState(dvpHandle handle, bool* pAutoDefectFixState);
/**
*@brief 使
*@param[in] handle
*@param[in] AutoDefectFixState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_CORRECTION
*@see dvpCreateDefectFixInfo
*@see dvpSetDefectFixState
*@see dvpGetAutoDefectFixState
*@note true false
*/
dvp2api dvpStatus dvpSetAutoDefectFixState(dvpHandle handle, bool AutoDefectFixState);
/**
*@brief 使
*@param[in] handle
*@param[out] pRotateState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetRotateOpposite
*@see dvpSetRotateState
*/
dvp2api dvpStatus dvpGetRotateState(dvpHandle handle, bool* pRotateState);
/**
*@brief 使
*@param[in] handle
*@param[in] RotateState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetRotateOpposite
*@see dvpGetRotateState
*/
dvp2api dvpStatus dvpSetRotateState(dvpHandle handle, bool RotateState);
/**
*@brief
*@see dvpGetRotateState
*@param[in] handle
*@param[out] pRotateOpposite
*@see dvpGetRotateState
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpSetRotateOpposite
*@note truefalse90
*/
dvp2api dvpStatus dvpGetRotateOpposite(dvpHandle handle, bool* pRotateOpposite);
/**
*@brief
*@see dvpGetRotateState
*@param[in] handle
*@param[in] RotateOpposite
*@see dvpGetRotateState
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ENHANCE
*@see dvpGetRotateOpposite
*@note truefalse90
*/
dvp2api dvpStatus dvpSetRotateOpposite(dvpHandle handle, bool RotateOpposite);
/**
*@brief 使
*@param[in] handle
*@param[out] pCoolerState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetTemperatureInfo
*@see dvpSetCoolerState
*@note
*/
dvp2api dvpStatus dvpGetCoolerState(dvpHandle handle, bool* pCoolerState);
/**
*@brief 使
*@param[in] handle
*@param[in] CoolerState 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetTemperatureInfo
*@see dvpGetCoolerState
*@note
*/
dvp2api dvpStatus dvpSetCoolerState(dvpHandle handle, bool CoolerState);
/**
*@brief
*@param[in] handle
*@param[out] pAeRoi
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpSetAeOperation
*@see dvpSetAeRoi
*@note
*/
dvp2api dvpStatus dvpGetAeRoi(dvpHandle handle, dvpRegion* pAeRoi);
/**
*@brief
*@param[in] handle
*@param[in] AeRoi
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpSetAeOperation
*@see dvpGetAeRoi
*@note
*/
dvp2api dvpStatus dvpSetAeRoi(dvpHandle handle, dvpRegion AeRoi);
/**
*@brief
*@param[in] handle
*@param[out] pAwbRoi
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetAwbOperation
*@see dvpSetAwbRoi
*@note
*/
dvp2api dvpStatus dvpGetAwbRoi(dvpHandle handle, dvpRegion* pAwbRoi);
/**
*@brief
*@param[in] handle
*@param[in] AwbRoi
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetAwbOperation
*@see dvpGetAwbRoi
*@note
*/
dvp2api dvpStatus dvpSetAwbRoi(dvpHandle handle, dvpRegion AwbRoi);
/**
*@brief
*@param[in] handle
*@param[out] pAeMode
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAwbRoi
*@see dvpGetAwbOperation
*@see dvpSetAeMode
*@note
*/
dvp2api dvpStatus dvpGetAeMode(dvpHandle handle, dvpAeMode* pAeMode);
/**
*@brief
*@param[in] handle
*@param[in] AeMode
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAwbRoi
*@see dvpGetAwbOperation
*@see dvpGetAeMode
*@note
*/
dvp2api dvpStatus dvpSetAeMode(dvpHandle handle, dvpAeMode AeMode);
/**
*@brief
*@param[in] handle
*@param[out] pAntiFlick
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeRoi
*@see dvpGetAeOperation
*@see dvpSetAntiFlick
*@note
*/
dvp2api dvpStatus dvpGetAntiFlick(dvpHandle handle, dvpAntiFlick* pAntiFlick);
/**
*@brief
*@param[in] handle
*@param[in] AntiFlick
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeRoi
*@see dvpGetAeOperation
*@see dvpGetAntiFlick
*@note
*/
dvp2api dvpStatus dvpSetAntiFlick(dvpHandle handle, dvpAntiFlick AntiFlick);
/**
*@brief
*@param[in] handle
*@param[out] pAeOperation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeConfig
*@see dvpGetAeTarget
*@see dvpGetAeMode
*@see dvpSetAeOperation
*@note
*/
dvp2api dvpStatus dvpGetAeOperation(dvpHandle handle, dvpAeOperation* pAeOperation);
/**
*@brief
*@param[in] handle
*@param[in] AeOperation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeConfig
*@see dvpGetAeTarget
*@see dvpGetAeMode
*@see dvpGetAeOperation
*@note
*/
dvp2api dvpStatus dvpSetAeOperation(dvpHandle handle, dvpAeOperation AeOperation);
/**
*@brief
*@param[in] handle
*@param[out] pAwbOperation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetAwbOperation
*@note @link #dvpSetRgbGain RGB增益@endlink为1.0@link dvpSetColorTemperatureState @endlink才能得到纯正的白平衡
*/
dvp2api dvpStatus dvpGetAwbOperation(dvpHandle handle, dvpAwbOperation* pAwbOperation);
/**
*@brief
*@param[in] handle
*@param[in] AwbOperation
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetAwbOperation
*@note @link #dvpSetRgbGain RGB增益@endlink为1.0@link dvpSetColorTemperatureState @endlink才能得到纯正的白平衡
*/
dvp2api dvpStatus dvpSetAwbOperation(dvpHandle handle, dvpAwbOperation AwbOperation);
/**
*@brief Strobe
*@param[in] handle
*@param[out] pStrobeDriver Strobe
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeOutputType
*@see dvpSetStrobeDriver
*/
dvp2api dvpStatus dvpGetStrobeDriver(dvpHandle handle, dvpStrobeDriver* pStrobeDriver);
/**
*@brief Strobe
*@param[in] handle
*@param[in] StrobeDriver Strobe
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeOutputType
*@see dvpGetStrobeDriver
*/
dvp2api dvpStatus dvpSetStrobeDriver(dvpHandle handle, dvpStrobeDriver StrobeDriver);
/**
*@brief Strobe
*@param[in] handle
*@param[out] pStrobeOutputType Strobe
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDriver
*@see dvpSetStrobeOutputType
*/
dvp2api dvpStatus dvpGetStrobeOutputType(dvpHandle handle, dvpStrobeOutputType* pStrobeOutputType);
/**
*@brief Strobe
*@param[in] handle
*@param[in] StrobeOutputType Strobe
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetStrobeDriver
*@see dvpGetStrobeOutputType
*/
dvp2api dvpStatus dvpSetStrobeOutputType(dvpHandle handle, dvpStrobeOutputType StrobeOutputType);
/**
*@brief
*@param[in] handle
*@param[out] pTriggerInputType
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerLineMode
*@see dvpSetTriggerInputType
*/
dvp2api dvpStatus dvpGetTriggerInputType(dvpHandle handle, dvpTriggerInputType* pTriggerInputType);
/**
*@brief
*@param[in] handle
*@param[in] TriggerInputType
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_TRIGGER
*@see dvpGetTriggerLineMode
*@see dvpGetTriggerInputType
*/
dvp2api dvpStatus dvpSetTriggerInputType(dvpHandle handle, dvpTriggerInputType TriggerInputType);
/**
*@brief
*@param[in] handle
*@param[out] pSourceFormat
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@see dvpSetSourceFormatSel
*@see dvpSetSourceFormat
*@note
*/
dvp2api dvpStatus dvpGetSourceFormat(dvpHandle handle, dvpStreamFormat* pSourceFormat);
/**
*@brief
*@param[in] handle
*@param[in] SourceFormat
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@see dvpSetSourceFormatSel
*@see dvpGetSourceFormat
*@note
*/
dvp2api dvpStatus dvpSetSourceFormat(dvpHandle handle, dvpStreamFormat SourceFormat);
/**
*@brief
*@param[in] handle
*@param[out] pTargetFormat
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@see dvpSetTargetFormatSel
*@see dvpSetTargetFormat
*@note
*/
dvp2api dvpStatus dvpGetTargetFormat(dvpHandle handle, dvpStreamFormat* pTargetFormat);
/**
*@brief
*@param[in] handle
*@param[in] TargetFormat
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@see dvpSetTargetFormatSel
*@see dvpGetTargetFormat
*@note
*/
dvp2api dvpStatus dvpSetTargetFormat(dvpHandle handle, dvpStreamFormat TargetFormat);
/**
*@brief
*@param[in] handle
*@param[out] pUserColorMatrix
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpSetUserColorMatrix
*@note MAT[0][0] + MAT[1][0] + MAT[2][0] 1.0
*@note MAT[0][1] + MAT[1][1] + MAT[2][1] 1.0
*@note MAT[0][2] + MAT[1][2] + MAT[2][2] 1.0
*@note [B0.G0.R0]
*@note [B1.G1.R1]
*@note B1 = B0*MAT[0][0] + G0*MAT[1][0] + R0*MAT[2][0] + MAT[3][0]
*@note G1 = B0*MAT[0][1] + G0*MAT[1][1] + R0*MAT[2][1] + MAT[3][1]
*@note R1 = B0*MAT[0][2] + G0*MAT[1][2] + R0*MAT[2][2] + MAT[3][2]
*/
dvp2api dvpStatus dvpGetUserColorMatrix(dvpHandle handle, dvpColorMatrix* pUserColorMatrix);
/**
*@brief
*@param[in] handle
*@param[in] UserColorMatrix
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetUserColorMatrix
*@note MAT[0][0] + MAT[1][0] + MAT[2][0] 1.0
*@note MAT[0][1] + MAT[1][1] + MAT[2][1] 1.0
*@note MAT[0][2] + MAT[1][2] + MAT[2][2] 1.0
*@note [B0.G0.R0]
*@note [B1.G1.R1]
*@note B1 = B0*MAT[0][0] + G0*MAT[1][0] + R0*MAT[2][0] + MAT[3][0]
*@note G1 = B0*MAT[0][1] + G0*MAT[1][1] + R0*MAT[2][1] + MAT[3][1]
*@note R1 = B0*MAT[0][2] + G0*MAT[1][2] + R0*MAT[2][2] + MAT[3][2]
*/
dvp2api dvpStatus dvpSetUserColorMatrix(dvpHandle handle, dvpColorMatrix UserColorMatrix);
/**
*@brief
*@param[in] handle
*@param[out] pLinkTimeout
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetLinkTimeout
*@note
*/
dvp2api dvpStatus dvpGetLinkTimeout(dvpHandle handle, dvpUint32* pLinkTimeout);
/**
*@brief
*@param[in] handle
*@param[in] LinkTimeout
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetLinkTimeout
*@note
*/
dvp2api dvpStatus dvpSetLinkTimeout(dvpHandle handle, dvpUint32 LinkTimeout);
/**
*@brief
*@param[in] handle
*@param[out] pAeConfig
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeOperation
*@see dvpGetAeTarget
*@see dvpSetAeConfig
*@note
*/
dvp2api dvpStatus dvpGetAeConfig(dvpHandle handle, dvpAeConfig* pAeConfig);
/**
*@brief
*@param[in] handle
*@param[in] AeConfig
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@see dvpGetAeOperation
*@see dvpGetAeTarget
*@see dvpGetAeConfig
*@note
*/
dvp2api dvpStatus dvpSetAeConfig(dvpHandle handle, dvpAeConfig AeConfig);
/**
*@brief
*@param[in] handle
*@param[out] pBufferConfig
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpSetBufferConfig
*@note
*@warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpGetBufferConfig(dvpHandle handle, dvpBufferConfig* pBufferConfig);
/**
*@brief
*@param[in] handle
*@param[in] BufferConfig
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@see dvpGetBufferConfig
*@note
*@warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpSetBufferConfig(dvpHandle handle, dvpBufferConfig BufferConfig);
/**
*@brief 线
*@param[in] handle
*@param[out] pLineTriggerConfig 线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
* @ingroup DVP_LINESCAN
*@see dvpSetLineTriggerConfig
* @note 线
* @warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpGetLineTriggerConfig(dvpHandle handle, dvpLineTriggerConfig* pLineTriggerConfig);
/**
*@brief 线
*@param[in] handle
*@param[in] LineTriggerConfig 线
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
* @ingroup DVP_LINESCAN
*@see dvpGetLineTriggerConfig
* @note 线
* @warning @link #dvpStart @endlink前设置好
*/
dvp2api dvpStatus dvpSetLineTriggerConfig(dvpHandle handle, dvpLineTriggerConfig LineTriggerConfig);
/**
*@brief
*@param[in] handle
*@param[out] pUserSet
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP2_API_CONFIG
*@see dvpGetFunctionInfo
*@see dvpSetUserSet
*@note
*/
dvp2api dvpStatus dvpGetUserSet(dvpHandle handle, dvpUserSet* pUserSet);
/**
*@brief
*@param[in] handle
*@param[in] UserSet
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP2_API_CONFIG
*@see dvpGetFunctionInfo
*@see dvpGetUserSet
*@note
*/
dvp2api dvpStatus dvpSetUserSet(dvpHandle handle, dvpUserSet UserSet);
/**
*@brief IO的电平状态
*@param[in] handle
*@param[in] inputIo IO
*@param[out] pInputIoLevel IO的电平状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*/
dvp2api dvpStatus dvpGetInputIoLevel(dvpHandle handle, dvpInputIo inputIo, bool* pInputIoLevel);
/**
*@brief @link dvpLineMode::LINE_MODE_OUTPUT @endlink
*@param[in] handle
*@param[in] line
*@param[out] pLineLevel @link dvpLineMode::LINE_MODE_OUTPUT @endlink
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpSetLineLevel
*/
dvp2api dvpStatus dvpGetLineLevel(dvpHandle handle, dvpLine line, bool* pLineLevel);
/**
*@brief @link dvpLineMode::LINE_MODE_OUTPUT @endlink
*@param[in] handle
*@param[in] line
*@param[in] LineLevel @link dvpLineMode::LINE_MODE_OUTPUT @endlink
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpGetLineLevel
*/
dvp2api dvpStatus dvpSetLineLevel(dvpHandle handle, dvpLine line, bool LineLevel);
/**
*@brief 使
*@param[in] handle
*@param[in] line
*@param[out] pLineInverter 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpSetLineInverter
*/
dvp2api dvpStatus dvpGetLineInverter(dvpHandle handle, dvpLine line, bool* pLineInverter);
/**
*@brief 使
*@param[in] handle
*@param[in] line
*@param[in] LineInverter 使
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpGetLineInverter
*/
dvp2api dvpStatus dvpSetLineInverter(dvpHandle handle, dvpLine line, bool LineInverter);
/**
*@brief I/O模式
*@param[in] handle
*@param[in] line
*@param[out] pLineMode I/O模式
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpSetLineMode
*/
dvp2api dvpStatus dvpGetLineMode(dvpHandle handle, dvpLine line, dvpLineMode* pLineMode);
/**
*@brief I/O模式
*@param[in] handle
*@param[in] line
*@param[in] LineMode I/O模式
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpGetLineMode
*/
dvp2api dvpStatus dvpSetLineMode(dvpHandle handle, dvpLine line, dvpLineMode LineMode);
/**
*@brief
*@param[in] handle
*@param[in] line
*@param[out] pLineSource
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpSetLineSource
*/
dvp2api dvpStatus dvpGetLineSource(dvpHandle handle, dvpLine line, dvpLineSource* pLineSource);
/**
*@brief
*@param[in] handle
*@param[in] line
*@param[in] LineSource
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*@see dvpGetLineSource
*/
dvp2api dvpStatus dvpSetLineSource(dvpHandle handle, dvpLine line, dvpLineSource LineSource);
/**
*@brief
*@param[in] handle
*@param[in] line
*@param[out] pLineStatus
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_LINE
*/
dvp2api dvpStatus dvpGetLineStatus(dvpHandle handle, dvpLine line, bool* pLineStatus);
/**
*@brief IO的电平状态
*@param[in] handle
*@param[in] outputIo IO
*@param[out] pOutputIoLevel IO的电平状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpSetOutputIoLevel
*/
dvp2api dvpStatus dvpGetOutputIoLevel(dvpHandle handle, dvpOutputIo outputIo, bool* pOutputIoLevel);
/**
*@brief IO的电平状态
*@param[in] handle
*@param[in] outputIo IO
*@param[in] OutputIoLevel IO的电平状态
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpGetOutputIoLevel
*/
dvp2api dvpStatus dvpSetOutputIoLevel(dvpHandle handle, dvpOutputIo outputIo, bool OutputIoLevel);
/**
*@brief IO的功能配置
*@param[in] handle
*@param[in] outputIo IO
*@param[out] pOutputIoFunction IO的功能配置
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpSetOutputIoFunction
*/
dvp2api dvpStatus dvpGetOutputIoFunction(dvpHandle handle, dvpOutputIo outputIo, dvpOutputIoFunction* pOutputIoFunction);
/**
*@brief IO的功能配置
*@param[in] handle
*@param[in] outputIo IO
*@param[in] OutputIoFunction IO的功能配置
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpGetOutputIoFunction
*/
dvp2api dvpStatus dvpSetOutputIoFunction(dvpHandle handle, dvpOutputIo outputIo, dvpOutputIoFunction OutputIoFunction);
/**
*@brief IO的功能配置
*@param[in] handle
*@param[in] inputIo IO
*@param[out] pInputIoFunction IO的功能配置
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpSetInputIoFunction
*/
dvp2api dvpStatus dvpGetInputIoFunction(dvpHandle handle, dvpInputIo inputIo, dvpInputIoFunction* pInputIoFunction);
/**
*@brief IO的功能配置
*@param[in] handle
*@param[in] inputIo IO
*@param[in] InputIoFunction IO的功能配置
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@deprecated
*@ingroup DVP_LINE
*@see dvpGetInputIoFunction
*/
dvp2api dvpStatus dvpSetInputIoFunction(dvpHandle handle, dvpInputIo inputIo, dvpInputIoFunction InputIoFunction);
/**
*@brief
*@param[in] handle
*@param[out] pStreamFlowCtrlSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@note
*@see dvpGetStreamFlowCtrlSelDescr
*@see dvpGetStreamFlowCtrlSelDetail
*@see dvpSetStreamFlowCtrlSel
*/
dvp2api dvpStatus dvpGetStreamFlowCtrlSel(dvpHandle handle, dvpUint32* pStreamFlowCtrlSel);
/**
*@brief
*@param[in] handle
*@param[in] StreamFlowCtrlSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@note
*@see dvpGetStreamFlowCtrlSelDescr
*@see dvpGetStreamFlowCtrlSelDetail
*@see dvpGetStreamFlowCtrlSel
*/
dvp2api dvpStatus dvpSetStreamFlowCtrlSel(dvpHandle handle, dvpUint32 StreamFlowCtrlSel);
/**
*@brief
*@param[in] handle
*@param[out] pStreamFlowCtrlSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@note
*@see dvpGetStreamFlowCtrlSel
*@see dvpGetStreamFlowCtrlSelDetail
*/
dvp2api dvpStatus dvpGetStreamFlowCtrlSelDescr(dvpHandle handle, dvpSelectionDescr* pStreamFlowCtrlSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] StreamFlowCtrlSel
*@param[out] pStreamFlowCtrlSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_ADVANCED
*@note
*@see dvpGetStreamFlowCtrlSel
*@see dvpGetStreamFlowCtrlSelDescr
*/
dvp2api dvpStatus dvpGetStreamFlowCtrlSelDetail(dvpHandle handle, dvpUint32 StreamFlowCtrlSel, dvpSelection* pStreamFlowCtrlSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pColorSolutionSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetGamma
*@note 使
*@see dvpGetColorSolutionSelDescr
*@see dvpGetColorSolutionSelDetail
*@see dvpSetColorSolutionSel
*/
dvp2api dvpStatus dvpGetColorSolutionSel(dvpHandle handle, dvpUint32* pColorSolutionSel);
/**
*@brief
*@param[in] handle
*@param[in] ColorSolutionSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetGamma
*@note 使
*@see dvpGetColorSolutionSelDescr
*@see dvpGetColorSolutionSelDetail
*@see dvpGetColorSolutionSel
*/
dvp2api dvpStatus dvpSetColorSolutionSel(dvpHandle handle, dvpUint32 ColorSolutionSel);
/**
*@brief
*@param[in] handle
*@param[out] pColorSolutionSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetGamma
*@note 使
*@see dvpGetColorSolutionSel
*@see dvpGetColorSolutionSelDetail
*/
dvp2api dvpStatus dvpGetColorSolutionSelDescr(dvpHandle handle, dvpSelectionDescr* pColorSolutionSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] ColorSolutionSel
*@param[out] pColorSolutionSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@see dvpGetGamma
*@note 使
*@see dvpGetColorSolutionSel
*@see dvpGetColorSolutionSelDescr
*/
dvp2api dvpStatus dvpGetColorSolutionSelDetail(dvpHandle handle, dvpUint32 ColorSolutionSel, dvpSelection* pColorSolutionSelDetail);
/**
*@brief Bayer转RGB解码算法选项的索引
*@param[in] handle
*@param[out] pBayerDecodeSel Bayer转RGB解码算法选项的索引
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@note
*@see dvpGetBayerDecodeSelDescr
*@see dvpGetBayerDecodeSelDetail
*@see dvpSetBayerDecodeSel
*/
dvp2api dvpStatus dvpGetBayerDecodeSel(dvpHandle handle, dvpUint32* pBayerDecodeSel);
/**
*@brief Bayer转RGB解码算法选项的索引
*@param[in] handle
*@param[in] BayerDecodeSel Bayer转RGB解码算法选项的索引
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@note
*@see dvpGetBayerDecodeSelDescr
*@see dvpGetBayerDecodeSelDetail
*@see dvpGetBayerDecodeSel
*/
dvp2api dvpStatus dvpSetBayerDecodeSel(dvpHandle handle, dvpUint32 BayerDecodeSel);
/**
*@brief Bayer转RGB解码算法选项索引的描述信息
*@param[in] handle
*@param[out] pBayerDecodeSelDescr Bayer转RGB解码算法选项索引的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@note
*@see dvpGetBayerDecodeSel
*@see dvpGetBayerDecodeSelDetail
*/
dvp2api dvpStatus dvpGetBayerDecodeSelDescr(dvpHandle handle, dvpSelectionDescr* pBayerDecodeSelDescr);
/**
*@brief Bayer转RGB解码算法选项索引对应的具体信息
*@param[in] handle
*@param[in] BayerDecodeSel Bayer转RGB解码算法的索引
*@param[out] pBayerDecodeSelDetail Bayer转RGB解码算法选项索引对应的具体信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_COLOR
*@note
*@see dvpGetBayerDecodeSel
*@see dvpGetBayerDecodeSelDescr
*/
dvp2api dvpStatus dvpGetBayerDecodeSelDetail(dvpHandle handle, dvpUint32 BayerDecodeSel, dvpSelection* pBayerDecodeSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pSourceFormatSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetSourceFormatSelDescr
*@see dvpGetSourceFormatSelDetail
*@see dvpSetSourceFormatSel
*/
dvp2api dvpStatus dvpGetSourceFormatSel(dvpHandle handle, dvpUint32* pSourceFormatSel);
/**
*@brief
*@param[in] handle
*@param[in] SourceFormatSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetSourceFormatSelDescr
*@see dvpGetSourceFormatSelDetail
*@see dvpGetSourceFormatSel
*/
dvp2api dvpStatus dvpSetSourceFormatSel(dvpHandle handle, dvpUint32 SourceFormatSel);
/**
*@brief
*@param[in] handle
*@param[out] pSourceFormatSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetSourceFormatSel
*@see dvpGetSourceFormatSelDetail
*/
dvp2api dvpStatus dvpGetSourceFormatSelDescr(dvpHandle handle, dvpSelectionDescr* pSourceFormatSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] SourceFormatSel
*@param[out] pSourceFormatSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetSourceFormatSel
*@see dvpGetSourceFormatSelDescr
*/
dvp2api dvpStatus dvpGetSourceFormatSelDetail(dvpHandle handle, dvpUint32 SourceFormatSel, dvpFormatSelection* pSourceFormatSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pTargetFormatSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetTargetFormatSelDescr
*@see dvpGetTargetFormatSelDetail
*@see dvpSetTargetFormatSel
*/
dvp2api dvpStatus dvpGetTargetFormatSel(dvpHandle handle, dvpUint32* pTargetFormatSel);
/**
*@brief
*@param[in] handle
*@param[in] TargetFormatSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetTargetFormatSelDescr
*@see dvpGetTargetFormatSelDetail
*@see dvpGetTargetFormatSel
*/
dvp2api dvpStatus dvpSetTargetFormatSel(dvpHandle handle, dvpUint32 TargetFormatSel);
/**
*@brief
*@param[in] handle
*@param[out] pTargetFormatSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetTargetFormatSel
*@see dvpGetTargetFormatSelDetail
*/
dvp2api dvpStatus dvpGetTargetFormatSelDescr(dvpHandle handle, dvpSelectionDescr* pTargetFormatSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] TargetFormatSel
*@param[out] pTargetFormatSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_FORMAT
*@note 使@link dvpStreamFormat @endlink等价
*@see dvpGetTargetFormatSel
*@see dvpGetTargetFormatSelDescr
*/
dvp2api dvpStatus dvpGetTargetFormatSelDetail(dvpHandle handle, dvpUint32 TargetFormatSel, dvpFormatSelection* pTargetFormatSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pResolutionModeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@note sumbin
*@see dvpGetQuickRoiSel
*@see dvpGetRoi
*@see dvpGetResolutionModeSelDescr
*@see dvpGetResolutionModeSelDetail
*@see dvpSetResolutionModeSel
*/
dvp2api dvpStatus dvpGetResolutionModeSel(dvpHandle handle, dvpUint32* pResolutionModeSel);
/**
*@brief
*@param[in] handle
*@param[in] ResolutionModeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@note sumbin
*@see dvpGetQuickRoiSel
*@see dvpGetRoi
*@see dvpGetResolutionModeSelDescr
*@see dvpGetResolutionModeSelDetail
*@see dvpGetResolutionModeSel
*/
dvp2api dvpStatus dvpSetResolutionModeSel(dvpHandle handle, dvpUint32 ResolutionModeSel);
/**
*@brief
*@param[in] handle
*@param[out] pResolutionModeSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@note sumbin
*@see dvpGetQuickRoiSel
*@see dvpGetRoi
*@see dvpGetResolutionModeSel
*@see dvpGetResolutionModeSelDetail
*/
dvp2api dvpStatus dvpGetResolutionModeSelDescr(dvpHandle handle, dvpSelectionDescr* pResolutionModeSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] ResolutionModeSel
*@param[out] pResolutionModeSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@note sumbin
*@see dvpGetQuickRoiSel
*@see dvpGetRoi
*@see dvpGetResolutionModeSel
*@see dvpGetResolutionModeSelDescr
*/
dvp2api dvpStatus dvpGetResolutionModeSelDetail(dvpHandle handle, dvpUint32 ResolutionModeSel, dvpResolutionMode* pResolutionModeSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pAeSchemeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@note
*@see dvpGetAeSchemeSelDescr
*@see dvpGetAeSchemeSelDetail
*@see dvpSetAeSchemeSel
*/
dvp2api dvpStatus dvpGetAeSchemeSel(dvpHandle handle, dvpUint32* pAeSchemeSel);
/**
*@brief
*@param[in] handle
*@param[in] AeSchemeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@note
*@see dvpGetAeSchemeSelDescr
*@see dvpGetAeSchemeSelDetail
*@see dvpGetAeSchemeSel
*/
dvp2api dvpStatus dvpSetAeSchemeSel(dvpHandle handle, dvpUint32 AeSchemeSel);
/**
*@brief
*@param[in] handle
*@param[out] pAeSchemeSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@note
*@see dvpGetAeSchemeSel
*@see dvpGetAeSchemeSelDetail
*/
dvp2api dvpStatus dvpGetAeSchemeSelDescr(dvpHandle handle, dvpSelectionDescr* pAeSchemeSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] AeSchemeSel
*@param[out] pAeSchemeSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_EXPOSURE
*@note
*@see dvpGetAeSchemeSel
*@see dvpGetAeSchemeSelDescr
*/
dvp2api dvpStatus dvpGetAeSchemeSelDetail(dvpHandle handle, dvpUint32 AeSchemeSel, dvpSelection* pAeSchemeSelDetail);
/**
*@brief Roi选项的索引
*@param[in] handle
*@param[out] pQuickRoiSel Roi选项的索引
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetRoi
*@note ROI
*@see dvpGetQuickRoiSelDescr
*@see dvpGetQuickRoiSelDetail
*@see dvpSetQuickRoiSel
*/
dvp2api dvpStatus dvpGetQuickRoiSel(dvpHandle handle, dvpUint32* pQuickRoiSel);
/**
*@brief Roi选项的索引
*@param[in] handle
*@param[in] QuickRoiSel Roi选项的索引
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetRoi
*@note ROI
*@see dvpGetQuickRoiSelDescr
*@see dvpGetQuickRoiSelDetail
*@see dvpGetQuickRoiSel
*/
dvp2api dvpStatus dvpSetQuickRoiSel(dvpHandle handle, dvpUint32 QuickRoiSel);
/**
*@brief Roi选项索引的描述信息
*@param[in] handle
*@param[out] pQuickRoiSelDescr Roi选项索引的描述信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetRoi
*@note ROI
*@see dvpGetQuickRoiSel
*@see dvpGetQuickRoiSelDetail
*/
dvp2api dvpStatus dvpGetQuickRoiSelDescr(dvpHandle handle, dvpSelectionDescr* pQuickRoiSelDescr);
/**
*@brief Roi选项索引对应的具体信息
*@param[in] handle
*@param[in] QuickRoiSel Roi的索引
*@param[out] pQuickRoiSelDetail Roi选项索引对应的具体信息
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_SIZE
*@see dvpGetResolutionModeSel
*@see dvpGetRoi
*@note ROI
*@see dvpGetQuickRoiSel
*@see dvpGetQuickRoiSelDescr
*/
dvp2api dvpStatus dvpGetQuickRoiSelDetail(dvpHandle handle, dvpUint32 QuickRoiSel, dvpQuickRoi* pQuickRoiSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pPixelRateSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note USB2的接口只能匹配低速的像素采集
*@see dvpGetPixelRateSelDescr
*@see dvpGetPixelRateSelDetail
*@see dvpSetPixelRateSel
*/
dvp2api dvpStatus dvpGetPixelRateSel(dvpHandle handle, dvpUint32* pPixelRateSel);
/**
*@brief
*@param[in] handle
*@param[in] PixelRateSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note USB2的接口只能匹配低速的像素采集
*@see dvpGetPixelRateSelDescr
*@see dvpGetPixelRateSelDetail
*@see dvpGetPixelRateSel
*/
dvp2api dvpStatus dvpSetPixelRateSel(dvpHandle handle, dvpUint32 PixelRateSel);
/**
*@brief
*@param[in] handle
*@param[out] pPixelRateSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note USB2的接口只能匹配低速的像素采集
*@see dvpGetPixelRateSel
*@see dvpGetPixelRateSelDetail
*/
dvp2api dvpStatus dvpGetPixelRateSelDescr(dvpHandle handle, dvpSelectionDescr* pPixelRateSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] PixelRateSel
*@param[out] pPixelRateSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note USB2的接口只能匹配低速的像素采集
*@see dvpGetPixelRateSel
*@see dvpGetPixelRateSelDescr
*/
dvp2api dvpStatus dvpGetPixelRateSelDetail(dvpHandle handle, dvpUint32 PixelRateSel, dvpSelection* pPixelRateSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pPacketSizeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note 使@link #dvpGetStreamPackSize @endlink
*@see dvpGetPacketSizeSelDescr
*@see dvpGetPacketSizeSelDetail
*@see dvpSetPacketSizeSel
*/
dvp2api dvpStatus dvpGetPacketSizeSel(dvpHandle handle, dvpUint32* pPacketSizeSel);
/**
*@brief
*@param[in] handle
*@param[in] PacketSizeSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note 使@link #dvpGetStreamPackSize @endlink
*@see dvpGetPacketSizeSelDescr
*@see dvpGetPacketSizeSelDetail
*@see dvpGetPacketSizeSel
*/
dvp2api dvpStatus dvpSetPacketSizeSel(dvpHandle handle, dvpUint32 PacketSizeSel);
/**
*@brief
*@param[in] handle
*@param[out] pPacketSizeSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note 使@link #dvpGetStreamPackSize @endlink
*@see dvpGetPacketSizeSel
*@see dvpGetPacketSizeSelDetail
*/
dvp2api dvpStatus dvpGetPacketSizeSelDescr(dvpHandle handle, dvpSelectionDescr* pPacketSizeSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] PacketSizeSel
*@param[out] pPacketSizeSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note 使@link #dvpGetStreamPackSize @endlink
*@see dvpGetPacketSizeSel
*@see dvpGetPacketSizeSelDescr
*/
dvp2api dvpStatus dvpGetPacketSizeSelDetail(dvpHandle handle, dvpUint32 PacketSizeSel, dvpSelection* pPacketSizeSelDetail);
/**
*@brief
*@param[in] handle
*@param[out] pAccelerateSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note GPU的图像处理能力
*@see dvpGetAccelerateSelDescr
*@see dvpGetAccelerateSelDetail
*@see dvpSetAccelerateSel
*/
dvp2api dvpStatus dvpGetAccelerateSel(dvpHandle handle, dvpUint32* pAccelerateSel);
/**
*@brief
*@param[in] handle
*@param[in] AccelerateSel
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note GPU的图像处理能力
*@see dvpGetAccelerateSelDescr
*@see dvpGetAccelerateSelDetail
*@see dvpGetAccelerateSel
*/
dvp2api dvpStatus dvpSetAccelerateSel(dvpHandle handle, dvpUint32 AccelerateSel);
/**
*@brief
*@param[in] handle
*@param[out] pAccelerateSelDescr
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note GPU的图像处理能力
*@see dvpGetAccelerateSel
*@see dvpGetAccelerateSelDetail
*/
dvp2api dvpStatus dvpGetAccelerateSelDescr(dvpHandle handle, dvpSelectionDescr* pAccelerateSelDescr);
/**
*@brief
*@param[in] handle
*@param[in] AccelerateSel
*@param[out] pAccelerateSelDetail
*@return @link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink
*@ingroup DVP_PERFORMANCE
*@note GPU的图像处理能力
*@see dvpGetAccelerateSel
*@see dvpGetAccelerateSelDescr
*/
dvp2api dvpStatus dvpGetAccelerateSelDetail(dvpHandle handle, dvpUint32 AccelerateSel, dvpSelection* pAccelerateSelDetail);
/**
*@brief ,绿,
*@param[in] handle
*@param[in] rGain
*@param[in] gGain 绿
*@param[in] bGain
*@ingroup DVP_COLOR
*@see dvpGetRgbGain
*@see dvpSetRgbGainState
*@see dvpGetRgbGainState
*@note @link #dvpSetAwbOperation @endlink的效果之上
*/
dvp2api dvpStatus dvpSetRgbGain(dvpHandle handle, float rGain, float gGain, float bGain);
/**
*@brief ,绿,
*@param[in] handle
*@param[out] prGain
*@param[out] pgGain 绿
*@param[out] pbGain
*@ingroup DVP_COLOR
*@see dvpSetRgbGain
*@see dvpSetRgbGainState
*@see dvpGetRgbGainState
*/
dvp2api dvpStatus dvpGetRgbGain(dvpHandle handle, float* prGain, float* pgGain, float* pbGain);
/**
*@brief ,绿,使
*@param[in] handle
*@param[in] state ,绿,使
*@ingroup DVP_COLOR
*@see dvpSetRgbGain
*@see dvpGetRgbGain
*@see dvpGetRgbGainState
*/
dvp2api dvpStatus dvpSetRgbGainState(dvpHandle handle, bool state);
/**
*@brief ,绿,使
*@param[in] handle
*@param[out] pState ,绿,使
*@ingroup DVP_COLOR
*@see dvpSetRgbGain
*@see dvpGetRgbGain
*@see dvpSetRgbGainState
*/
dvp2api dvpStatus dvpGetRgbGainState(dvpHandle handle, bool* pState);
/** @defgroup DVP2_API_BASE 基本功能
*@{
*/
/**
*@brief
*@param[out] pCount
*@see dvpEnum
*@see dvpOpen
*@see dvpOpenByName
*@note @link #dvpEnum @endlink或@link #dvpOpen @endlink相机前执行线
*/
dvp2api dvpStatus dvpRefresh(dvpUint32* pCount);
/**
*@brief
*@param[in] index
*@param[out] pCameraInfo
*@see dvpGetCameraInfo
*@code
dvpUint32 count = 0;
dvpRefresh(&count);
for (dvpUint32 i = 0; i < count; i++)
{
dvpCameraInfo info;
if(dvpEnum(i, &info) == DVP_STATUS_OK)
{
printf("Camera %d FriendlyName : %s\n", i, info.FriendlyName);
}
}
*@endcode
*@note @link #dvpRefresh @endlink相机后执行线
*@warning @link #dvpHandle @endlink是截然不同的两个概念
*/
dvp2api dvpStatus dvpEnum(dvpUint32 index, dvpCameraInfo* pCameraInfo);
/**
*@brief @link #dvpCameraInfo::FriendlyName @endlink来打开相机
*@param[in] friendlyName
*@note
*@param[in] mode
*@param[out] pHandle
*@see dvpEnum
*@see dvpOpen
*@see dvpOpenByUserId
*@see dvpGetCameraInfo
*@note @link #dvpRefresh @endlink相机总数
*@warning @link #dvpStreamCallback @endlink中使用此功能
*/
dvp2api dvpStatus dvpOpenByName(dvpStr friendlyName, dvpOpenMode mode, dvpHandle* pHandle);
/**
*@brief @link #dvpCameraInfo::UserID (User Defined Name) @endlink来打开相机
*@param[in] UserId
*@note
*@param[in] mode
*@param[out] pHandle
*@see dvpSetUserId
*@see dvpEnum
*@see dvpOpen
*@see dvpOpenByName
*@see dvpGetCameraInfo
*@note @link #dvpRefresh @endlink相机总数
*@warning @link #dvpStreamCallback @endlink中使用此功能
*/
dvp2api dvpStatus dvpOpenByUserId(dvpStr UserId, dvpOpenMode mode, dvpHandle* pHandle);
/**
*@brief
*@param[in] index
*@param[in] mode
*@param[out] pHandle
*@see dvpRefresh
*@see dvpEnum
*@see dvpOpenByName
*@see dvpGetCameraInfo
*@note @link #dvpRefresh @endlink相机后执行线
*@warning @link #dvpStreamCallback @endlink中使用此功能
*/
dvp2api dvpStatus dvpOpen(dvpUint32 index, dvpOpenMode mode, dvpHandle* pHandle);
/**
*@brief
*@param[in] handle
*@param[out] pIsValid
*@note @link #dvpOpen @endlink成功则句柄有效@link #dvpClose @endlink成功则句柄失效
*/
dvp2api dvpStatus dvpIsValid(dvpHandle handle, bool* pIsValid);
/**
*@brief
*@param[in] handle
*@param[out] pIsOnline
*@note 使@link #dvpRegisterEventCallback @endlink的方式来监听这一状况
*/
dvp2api dvpStatus dvpIsOnline(dvpHandle handle, bool* pIsOnline);
/**
*@brief USB类型
*@param[in] handle
*@param[out] pLinkSpeed USB类型
*@note 使@link 0 usb2.01.0 1 usb3.0
*/
dvp2api dvpStatus dvpGetLinkSpeed(dvpHandle handle, dvpUint32* pLinkSpeed);
/**
*@brief
*@param[in] handle
*@see dvpOpen
*@see dvpHold
*@see dvpStop
*@note @link #dvpRestart dvpRestart@endlink@link #dvpHold dvpHold@endlink
*/
dvp2api dvpStatus dvpStart(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@see dvpStart
*@see dvpClose
*@see dvpHold
*@note @link #dvpHold dvpHold@endlink
*@warning 线
*/
dvp2api dvpStatus dvpStop(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@param[out] pIsHold
*@see dvpHold
*@see dvpRestart
*/
dvp2api dvpStatus dvpIsHold(dvpHandle handle, bool* pIsHold);
/**
*@brief
*@param[in] handle
*@param[out] pFrame
*@param[out] pBuffer @warning
*@param[in] timeout
*@see dvpGetFrameBuffer
*@see dvpStreamCallback
*@note @link #dvpStart @endlink视频流使
*@warning 线线
*/
dvp2api dvpStatus dvpGetFrame(dvpHandle handle, dvpFrame* pFrame, void** pBuffer, dvpUint32 timeout);
/**
*@brief ID相同的原始采集帧和目标输出帧
*@param[in] handle
*@param[out] pRaw
*@param[out] pOut
*@param[in] timeout
*@see dvpGetFrame
*@note @link #dvpStart @endlink视频流使
*@warning 线线
*/
dvp2api dvpStatus dvpGetFrameBuffer(dvpHandle handle, dvpFrameBuffer* pRaw, dvpFrameBuffer* pOut, dvpUint32 timeout);
/**
*@brief 线ISP
*@param[in] handle
*@param[in] pSourceFrame
*@note @link #dvpGetFrame dvpGetFrame@endlink
*@param[in] pSourceBuffer
*@note @link #dvpGetFrame dvpGetFrame@endlink
*@param[out] pTargetFrame
*@param[out] pTargetBuffer
*@note
*@param[in] targetBufferSize
*@note
*@param[in] targetFormat
*@see dvpGetFrame
*@note @link #dvpStart @endlink视频流使
*@warning @link #dvpStreamCallback @endlink中使用此功能@link #dvpStreamEvent::STREAM_EVENT_FRAME_THREAD STREAM_EVENT_FRAME_THREAD@endlink事件类型
*/
dvp2api dvpStatus dvpProcessImage(dvpHandle handle, const dvpFrame* pSourceFrame, const void* pSourceBuffer, dvpFrame* pTargetFrame, void* pTargetBuffer, dvpUint32 targetBufferSize, dvpStreamFormat targetFormat);
/**
*@brief
*@param[in] handle
*@param[in] part
*@param[in] level
*@param[in] bForce
*@param[in] text
*@param[in] param 0
*@warning
*@note
*/
dvp2api dvpStatus dvpDebugReport(dvpHandle handle, dvpReportPart part, dvpReportLevel level, bool bForce, dvpStr text, dvpUint32 param);
/**
*@brief
*@param[in] handle
*@see dvpStop
*@see dvpIsValid
*@warning @link #dvpStreamCallback @endlink中使用此功能
*@warning
*/
dvp2api dvpStatus dvpClose(dvpHandle handle);
/** @defgroup DVP2_API_CALLBACK 回调函数
*@warning @link #dvpStop @endlink的函数
*@{
*/
/** @brief 视频流回调函数
*@param[in] handle
*@param[in] event
*@param[in] pContext
*@param[in] pFrame
*@param[in] pBuffer
*@see dvpRegisterStreamCallback
*@see dvpUnregisterStreamCallback
*@note @link #dvpProcessImage @endlink@link #dvpDrawPicture @endlink与@link #dvpSavePicture @endlink图像
*@warning @link #dvpOpen @endlink@link #dvpClose @endlink@link #dvpStart @endlink@link #dvpStop @endlink相机@link #dvpGetFrame @endlink */
typedef dvpInt32(*dvpStreamCallback)(dvpHandle handle, dvpStreamEvent event, void* pContext, dvpFrame* pFrame, void* pBuffer);
/**
*@brief
*@param[in] handle
*@param[in] proc
*@param[in] event
*@param[in] pContext
*@see dvpUnregisterStreamCallback
*/
dvp2api dvpStatus dvpRegisterStreamCallback(dvpHandle handle, dvpStreamCallback proc, dvpStreamEvent event, void* pContext);
/**
*@brief
*@param[in] handle
*@param[in] proc
*@param[in] event
*@param[in] pContext
*@note @link #dvpRegisterStreamCallback @endlink所使用的参数一致才能注销对应的回调函数
*/
dvp2api dvpStatus dvpUnregisterStreamCallback(dvpHandle handle, dvpStreamCallback proc, dvpStreamEvent event, void* pContext);
/** @brief 事件通知回调函数
*@param[in] handle
*@param[in] event
*@param[in] pContext
*@param[in] param
*@param[in] pVariant
*@see dvpRegisterEventCallback */
typedef dvpInt32(*dvpEventCallback)(dvpHandle handle, dvpEvent event, void* pContext, dvpInt32 param, struct dvpVariant* pVariant);
/**
*@brief
*@param[in] handle
*@param[in] proc
*@param[in] event
*@param[in] pContext
*@see dvpUnregisterEventCallback
*/
dvp2api dvpStatus dvpRegisterEventCallback(dvpHandle handle, dvpEventCallback proc, dvpEvent event, void* pContext);
/**
*@brief
*@param[in] handle
*@param[in] proc
*@param[in] event
*@param[in] pContext
*@note @link #dvpRegisterEventCallback @endlink所使用的参数一致才能注销对应的回调函数
*/
dvp2api dvpStatus dvpUnregisterEventCallback(dvpHandle handle, dvpEventCallback proc, dvpEvent event, void* pContext);
/** @} end of DVP2_API_CALLBACK */
/** @defgroup DVP2_API_CONFIG 存档读档
*@{
*/
/**
*@brief
*@param[in] handle
*@see dvpLoadConfig
*@see dvpSaveConfig
*@warning @link #dvpSaveConfig @endlink到配置文件
*/
dvp2api dvpStatus dvpLoadDefault(dvpHandle handle);
/**
*@brief
*@param[in] handle
*@param[in] path
*@see dvpLoadDefault
*@see dvpSaveConfig
*@note <a href="C:/ProgramData/DO3THINK/DVP2">C:/ProgramData/DO3THINK/DVP2</a>
*@warning @link #dvpSaveConfig @endlink到配置文件
*/
dvp2api dvpStatus dvpLoadConfig(dvpHandle handle, dvpStr path);
/**
*@brief
*@param[in] handle
*@param[in] path
*@see dvpLoadDefault
*@see dvpLoadConfig
*@note <a href="C:/ProgramData/DO3THINK/DVP2">C:/ProgramData/DO3THINK/DVP2</a>
*@warning
*/
dvp2api dvpStatus dvpSaveConfig(dvpHandle handle, dvpStr path);
/**
*@brief
*@param[in] handle
*@param[in] UserSet
*@see dvpLoadUserSet
*@see dvpGetUserSet
*@warning @link #dvpUserSet::USER_SET_DEFAULT @endlink
*/
dvp2api dvpStatus dvpSaveUserSet(dvpHandle handle, dvpUserSet UserSet);
/**
*@brief
*@param[in] handle
*@param[in] UserSet
*@see dvpSaveUserSet
*@see dvpGetUserSet
*@note @link #dvpUserSet::USER_SET_DEFAULT @endlink加载
*/
dvp2api dvpStatus dvpLoadUserSet(dvpHandle handle, dvpUserSet UserSet);
/** @} end of DVP2_API_CONFIG */
/** @} end of DVP2_API_BASE */
/** @defgroup DVP2_API_EXTEND 实用功能
*@{
*/
/**
*@brief
*@param[in] pFrame
*@param[in] pBuffer RAW, RGB24
*@param[in] file bmp, jpeg, jpg, png, tiff, tif, gif, dat()
*@param[in] quality jpeg格式有效[1,100]
*@see dvpGetFrame
*@see dvpStreamCallback
*/
dvp2api dvpStatus dvpSavePicture(const dvpFrame* pFrame, const void* pBuffer, dvpStr file, dvpInt32 quality);
/**
*@brief
*@param[in] handle
*@param[in] ResoulutionModeSel @link #dvpGetResolutionModeSel @endlink
*@param[in] roi @link #dvpGetRoi ROI@endlink指针NULL指针
*@param[in] timeout @link #dvpGetFrame @endlink超时时间
*@param[in] filePath bmp, jpeg, jpg, png, tiff, tif, gif, dat()
*@param[in] quality jpeg格式有效[1,100]
*@see dvpSavePicture
*/
dvp2api dvpStatus dvpCaptureFile(dvpHandle handle, dvpUint32 ResoulutionModeSel, dvpRegion* roi, dvpUint32 timeout, dvpStr filePath, dvpInt32 quality);
/**
*@brief
*@param[in] pFrame
*@param[in] pSrcBuffer RAW, RGB24
*@param[in] format jpg png*.jpg*.pngbmp, jpeg, jpg, png, tiff, tif, gif, dat()
*@param[in] quality jpeg格式有效[1,100]
*@param[out] pDstBuffer
*@param[in] uByteSize
*@param[out] pValidByteSize
*@see dvpSavePicture
*@see dvpPrintPictureToBuffer
*/
dvp2api dvpStatus dvpPrintPictureToBuffer(const dvpFrame* pFrame, const void* pSrcBuffer, dvpStr format, dvpInt32 quality, void* pDstBuffer, dvpUint32 uByteSize, dvpUint32* pValidByteSize);
#ifdef _WIN32
/**
*@brief
*@param[in] pFrame
*@param[in] pBuffer @link #dvpImageFormat::FORMAT_MONO MONO@endlink@link #dvpImageFormat::FORMAT_BAYER_BG BAYER@endlink @link #dvpImageFormat::FORMAT_BGR24 BGR24@endlink
*@param[in] hWnd
*@param[in] sRect
*@param[in] dRect
*@note @link #dvpStreamCallback @endlink中使用此功能
*/
dvp2api dvpStatus dvpDrawPicture(const dvpFrame* pFrame, const void* pBuffer, HWND hWnd, LPRECT sRect, LPRECT dRect);
/**
*@brief
*@param[in] filePath wmv, avi
*@param[in] width
*@param[in] height
*@param[in] quality avi格式有效[1,100]
*@param[out] pHandle
*@see dvpSetTargetFormat
*@see dvpVideoRecordWrite
*@see dvpStopVideoRecord
*@warning WINDOWS操作系统没有内置WMV格式支持 <a href="https://www.codecguide.com/windows_media_codecs.htm"></a>
*/
dvp2api dvpStatus dvpStartVideoRecord(dvpStr filePath, dvpUint32 width, dvpUint32 height, dvpInt32 quality, dvpRecordHandle* pHandle);
/**
*@brief
*@param[in] handle
*@param[out] pValid
*@note @link #dvpStartVideoRecord @endlink成功则句柄有效@link #dvpStopVideoRecord @endlink成功则句柄失效
*/
dvp2api dvpStatus dvpIsVideoRecorderValid(dvpRecordHandle handle, bool* pValid);
/**
*@brief
*@param[in] handle
*@param[in] pFrame
*@param[in] pBuffer @link #dvpImageFormat::FORMAT_BGR24 BGR24@endlink
*@see dvpGetFrame
*@see dvpStartVideoRecord
*@see dvpStopVideoRecord
*@note @link #dvpStartVideoRecord @endlink之前@link #dvpSetTargetFormat @endlink
*/
dvp2api dvpStatus dvpVideoRecordWrite(dvpRecordHandle handle, const dvpFrame* pFrame, const void* pBuffer);
/**
*@brief
*@param[in] handle
*@see dvpVideoRecordWrite
*@see dvpStartVideoRecord
*/
dvp2api dvpStatus dvpStopVideoRecord(dvpRecordHandle handle);
/**
*@brief
*@param[in] handle
*@param[in] hParent
*/
dvp2api dvpStatus dvpShowPropertyModalDialog(dvpHandle handle, HWND hParent);
#endif
/**
*@brief
*@param[in] handle
*@param[in] addr
*@param[in, out] pBuffer
*@param[in] size
*@see dvpWriteUserData
*@note 4k字节
*@note @link #dvpOpen @endlink相机使
*@warning
*/
dvp2api dvpStatus dvpReadUserData(dvpHandle handle, dvpUint32 addr, void* pBuffer, dvpUint32 size);
/**
*@brief
*@param[in] handle
*@param[in] addr
*@param[in] pBuffer
*@param[in] size
*@see dvpReadUserData
*@note 4k字节
*@note @link #dvpOpen @endlink相机使
*@warning
*/
dvp2api dvpStatus dvpWriteUserData(dvpHandle handle, dvpUint32 addr, const void* pBuffer, dvpUint32 size);
/**
*@brief @link #dvpCameraInfo::UserID (User Defined Name) @endlink
*@param[in] handle
*@param[in] UserId
*@param[in, out] pLength 使
*@see dvpGetCameraInfo
*/
dvp2api dvpStatus dvpSetUserId(dvpHandle handle, dvpStr UserId, dvpUint32* pLength);
/** @} end of DVP2_API_EXTEND */
/** @defgroup DVP2_API_INTERNAL 内部功能
*@{
*/
/**
*@brief
*@param[in] handle
*@param[in] command
*@param[in, out] pParam
*@param[in, out] pSize
*@warning 使使
*/
dvp2api dvpStatus dvpGet(dvpHandle handle, dvpUint32 command, void* pParam, dvpUint32* pSize);
/**
*@brief
*@param[in] handle
*@param[in] command
*@param[in, out] pParam
*@param[in, out] pSize
*@warning 使使
*/
dvp2api dvpStatus dvpSet(dvpHandle handle, dvpUint32 command, const void* pParam, dvpUint32* pSize);
/**
*@brief dvp
*@param[in] command
*@param[in] param
*@param[in] pData
*@warning 使使
*/
dvp2api dvpStatus dvpConfig(dvpUint32 command, dvpUint32 param, const void* pData);
/**
*@brief
*@param[in] index
*@param[in] command
*@param[in] param
*@param[in] pData
*@see dvpEnum
*@warning 使使
*/
dvp2api dvpStatus dvpConfigEx(dvpUint32 index, dvpUint32 command, dvpUint32 param, const void* pData);
/** @} end of DVP2_API_INTERNAL */
/** @defgroup DVP2_API_BRIDGE 万能接口
*@{
*/
/**
*@brief Integer属性值
*@param[in] handle
*@param[in] strKey Width
*@param[out] pCurIntValue
*@param[out] pstIntDescr int属性相关数据结构体
*/
dvp2api dvpStatus dvpGetIntValue(IN dvpHandle handle, IN const char* strKey, OUT int64_t* pCurIntValue, OUT dvpIntDescr* pstIntDescr);
/**
*@brief Integer型属性值
*@param[in] handle
*@param[in] strKey Width
*@param[in] nValue
*/
dvp2api dvpStatus dvpSetIntValue(IN dvpHandle handle, IN const char* strKey, IN int64_t nValue);
/**
*@brief uInteger64属性值
*@param[in] handle
*@param[in] strKey Width
*@param[out] pCurUint64Value
*@param[out] pstUint64Descr uint64_t属性相关数据结构体
*/
dvp2api dvpStatus dvpGetUint64Value(IN dvpHandle handle, IN const char* strKey, OUT uint64_t* pCurUint64Value, OUT dvpUint64Descr* pstUint64Descr);
/**
*@brief uInteger64型属性值
*@param[in] handle
*@param[in] strKey Width
*@param[in] nValue
*/
dvp2api dvpStatus dvpSetUint64Value(IN dvpHandle handle, IN const char* strKey, IN uint64_t nValue);
/**
*@brief Enum属性值
*@param[in] handle
*@param[in] strKey PixelFormat
*@param[out] nszSupportValue
*@param[out] pnSupportNum
*/
dvp2api dvpStatus dvpGetEnumValue(IN dvpHandle handle, IN const char* strKey, OUT unsigned int* pCurEnumValue, OUT unsigned int nszSupportValue[64], OUT unsigned int* pnSupportNum);
/**
*@brief Enum型属性值
*@param[in] handle
*@param[in] strKey PixelFormat
*@param[in] nValue
*/
dvp2api dvpStatus dvpSetEnumValue(IN dvpHandle handle, IN const char* strKey, IN unsigned int nValue);
/**
*@brief Enum型属性值
*@param[in] handle
*@param[in] strKey PixelFormat
*@param[in] strValue
*/
dvp2api dvpStatus dvpSetEnumValueByString(IN dvpHandle handle, IN const char* strKey, IN const char* strValue);
/**
*@brief Float属性值
*@param[in] handle
*@param[in] strKey
*@param[out] pCurFloatValue
*@param[out] pstFloatDescr float属性相关数据结构体
*/
dvp2api dvpStatus dvpGetFloatValue(IN dvpHandle handle, IN const char* strKey, OUT float* pCurFloatValue, OUT dvpFloatDescr* pstFloatDescr);
/**
*@brief float型属性值
*@param[in] handle
*@param[in] strKey
*@param[in] fValue
*/
dvp2api dvpStatus dvpSetFloatValue(IN dvpHandle handle, IN const char* strKey, IN float fValue);
/**
*@brief double属性值
*@param[in] handle
*@param[in] strKey
*@param[out] pCurDoubleValue
*@param[out] pstDoubleDescr double属性相关数据结构体
*/
dvp2api dvpStatus dvpGetDoubleValue(IN dvpHandle handle, IN const char* strKey, OUT double* pCurDoubleValue, OUT dvpDoubleDescr* pstDoubleDescr);
/**
*@brief double型属性值
*@param[in] handle
*@param[in] strKey
*@param[in] dValue
*/
dvp2api dvpStatus dvpSetDoubleValue(IN dvpHandle handle, IN const char* strKey, IN double dValue);
/**
*@brief Boolean属性值
*@param[in] handle
*@param[in] strKey
*@param[out] pbValue
*/
dvp2api dvpStatus dvpGetBoolValue(IN dvpHandle handle, IN const char* strKey, OUT bool* pbValue);
/**
*@brief Boolean型属性值
*@param[in] handle
*@param[in] strKey
*@param[in] bValue
*/
dvp2api dvpStatus dvpSetBoolValue(IN dvpHandle handle, IN const char* strKey, IN bool bValue);
/**
*@brief String属性值
*@param[in] handle
*@param[in] strKey
*@param[out] pstStringValue
*/
dvp2api dvpStatus dvpGetStringValue(IN dvpHandle handle, IN const char* strKey, OUT char* pstStringValue, IN const int i32StrValueSize);
/**
*@brief String型属性值
*@param[in] handle
*@param[in] strKey
*@param[in] strValue
*/
dvp2api dvpStatus dvpSetStringValue(IN dvpHandle handle, IN const char* strKey, IN const char* strValue);
/**
*@brief Command型属性值
*@param[in] handle
*@param[in] strKey
*/
dvp2api dvpStatus dvpSetCommandValue(IN dvpHandle handle, IN const char* strKey);
/**
*@brief
*@param[in] handle
*@param[in] RotateAngle 1:90 2:180 3: 270
*/
dvp2api dvpStatus dvpRotateImage(IN dvpHandle handle, IN int RotateAngle);
/**
*@brief GenICam节点缓存
*@param[in] handle
*/
dvp2api dvpStatus dvpInvalidateNodes(IN dvpHandle handle);
/**
*@brief XML文件内容
*@param[in] handle
*@param[out] pXmlBuf xml内容buf
*@param[in] nXmlSize buf大小
*/
dvp2api dvpStatus dvpGetXml(IN dvpHandle handle, OUT void* pXmlBuf, IN unsigned int nXmlSize);
/**
*@brief
*@param[in] handle
*@param[in] name
*@param[in, out] pSelectionDescr
*@warning 使使
*/
dvp2api dvpStatus dvpGetSelectionDescr(dvpHandle handle, dvpStr name, dvpSelectionDescr* pSelectionDescr);
/**
*@brief
*@param[in] handle
*@param[in] name
*@param[in] index
*@param[in, out] pSelection
*@warning 使使
*/
dvp2api dvpStatus dvpGetSelectionDetail(dvpHandle handle, dvpStr name, dvpUint32 index, dvpSelection* pSelection);
dvp2api dvpStatus dvpWriteGenICamReg(dvpHandle handle, dvpUint32 addr, dvpUint32 data);
dvp2api dvpStatus dvpReadGenICamReg(dvpHandle handle, dvpUint32 addr, dvpUint32* pData);
dvp2api dvpStatus dvpWriteGenICamRegFloat(dvpHandle handle, dvpUint32 addr, float data);
dvp2api dvpStatus dvpReadGenICamRegFloat(dvpHandle handle, dvpUint32 addr, float* data);
dvp2api dvpStatus dvpWriteGenICamMem(dvpHandle handle, dvpUint32 addr, const void* pData, dvpUint32 uSize);
dvp2api dvpStatus dvpReadGenICamMem(dvpHandle handle, dvpUint32 addr, void* pData, dvpUint32 uSize);
dvp2api dvpStatus dvpGetConfigString(dvpHandle handle, dvpStr key, dvpStr* value);
dvp2api dvpStatus dvpSetConfigString(dvpHandle handle, dvpStr key, dvpStr value);
/** @} end of DVP2_API_BRIDGE */
/** @defgroup DVP_EXPOSURE 曝光功能
*@{
*/
/** @} end of DVP_EXPOSURE */
/** @defgroup DVP_COLOR 色彩调节
*@{
*/
/** @} end of DVP_COLOR */
/** @defgroup DVP_ENHANCE 增强效果
*@{
*/
/** @} end of DVP_ENHANCE */
/** @defgroup DVP_SIZE 图像尺寸
*@{
*/
/** @} end of DVP_SIZE */
/** @defgroup DVP_FORMAT 图像格式
*@{
*/
/** @} end of DVP_FORMAT */
/** @defgroup DVP_TRIGGER 触发功能
*@{
*/
/** @} end of DVP_TRIGGER */
/** @defgroup DVP_LINE 引脚功能
*@{
*/
/** @} end of DVP_LINE */
/** @defgroup DVP_CORRECTION 图像校正
*@{
*/
/** @} end of DVP_CORRECTION */
/** @defgroup DVP_PERFORMANCE 性能调节
*@{
*/
/** @} end of DVP_PERFORMANCE */
/** @defgroup DVP_INFORMATION 基本信息
*@{
*/
/** @} end of DVP_INFORMATION */
/** @defgroup DVP_ADVANCED 高级设置
*@{
*/
/** @} end of DVP_ADVANCED */
/** @defgroup DVP_LINESCAN 线扫相机
*@{
*/
/** @} end of DVP_LINESCAN */
#endif /* __DVPCAMERA_H__ */