/** @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__ */