/** @mainpage 概述
*
*@section 设计哲学
*-# 简单易用,稳定可靠
*-# 接口细化,竭力避免一个函数多个用途的做法,充分发挥C/C++作为静态语言,在编译期强力纠错的特性
*-# 虽然函数接口众多,但高度有序。如有必要,可将所有声明相近的函数,放置到一个名称和函数指针对应的map中,以实现更加灵活的动态调用
*
*@section 开发建议
*-# 在@link #DVP_INFORMATION 可预料@endlink的情况下,请确保所有标准API返回@link #dvpStatus::DVP_STATUS_OK DVP_STATUS_OK@endlink(譬如,避免对黑白相机调用彩色相机才有的特性)。这有助于提高程序的健壮度
*-# 善用Basedcam2官方演示程序的“开发者模式”。这有助于加深对每个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 通过属性名操作TriggerMode、PayloadSize@endlink的版本
*@subsection Ver24 2022-9-15(2.24.52)
*-# 添加@link 通过属性名操作AcquisitionFrameRate、AcquisitionFrameRateEnable@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
#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
/** @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 顺时针(true)或逆时针(false)90度
*/
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 顺时针(true)或逆时针(false)90度
*/
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 包括sum(相邻求和),bin(相邻抽样)等模式,决定了相机的最大分辨率
*@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 包括sum(相邻求和),bin(相邻抽样)等模式,决定了相机的最大分辨率
*@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 包括sum(相邻求和),bin(相邻抽样)等模式,决定了相机的最大分辨率
*@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 包括sum(相邻求和),bin(相邻抽样)等模式,决定了相机的最大分辨率
*@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.0或1.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 存档路径通常位于C:/ProgramData/DO3THINK/DVP2
*@warning 会覆盖当前设置,如有必要,请事先@link #dvpSaveConfig 备份当前设置@endlink到配置文件
*/
dvp2api dvpStatus dvpLoadConfig(dvpHandle handle, dvpStr path);
/**
*@brief 当前设置保存到配置文件
*@param[in] handle 相机句柄
*@param[in] path 配置文件的路径/文件名(自动选择路径)/空指针(自动选择路径和文件名)
*@see dvpLoadDefault
*@see dvpLoadConfig
*@note 存档路径通常位于C:/ProgramData/DO3THINK/DVP2
*@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”、“*.png”,目前支持的图像格式包括:bmp, 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格式支持,可能需要自行到 微软公司网站下载并安装相应版本的更新
*/
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__ */