fast/3rdparty/hikvision/code_reader/inc/MvCodeReaderCtrl.h
2025-01-20 10:30:01 +08:00

1005 lines
66 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _MV_CODEREADER_CTRL_H_
#define _MV_CODEREADER_CTRL_H_
#include "MvCodeReaderErrorDefine.h"
#include "MvCodeReaderParams.h"
/**
* @brief 动态库导入导出定义
* @brief Import and export definition of the dynamic library
*/
#ifndef MV_CODEREADERCTRL_API
#if (defined (_WIN32) || defined(WIN64))
#if defined(MV_CODEREADERCTRL_EXPORTS)
#define MV_CODEREADERCTRL_API __declspec(dllexport)
#else
#define MV_CODEREADERCTRL_API __declspec(dllimport)
#endif
#else
#ifndef __stdcall
#define __stdcall
#endif
#ifndef MV_CODEREADERCTRL_API
#define MV_CODEREADERCTRL_API
#endif
#endif
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
/* 相机的基本指令和操作 */
/* Camera basic instructions and operations */
/************************************************************************/
/************************************************************************
* @fn MV_CODEREADER_GetSDKVersion()
* @brief 获取SDK版本号
* @param
* @return 始终返回4字节版本号 |主 |次 |修正 | 测试|
8bits 8bits 8bits 8bits
* @fn MV_CODEREADER_GetSDKVersion()
* @brief Get SDK Version
* @param
* @return Always return 4 Bytes of version number |Main |Sub |Rev | Test|
8bits 8bits 8bits 8bits
************************************************************************/
MV_CODEREADERCTRL_API unsigned int __stdcall MV_CODEREADER_GetSDKVersion();
/************************************************************************
* @fn MV_CODEREADER_EnumDevices()
* @brief 枚举设备 (支持虚拟相机)
* @param nTLayerType [IN] 枚举传输层
* @param pstDevList [IN][OUT] 设备列表
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_EnumDevices()
* @brief Enumerate Device(support virtual camera)
* @param nTLayerType [IN] Enumerate TLs
* @param pstDevList [IN][OUT] Device List
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
#ifndef __cplusplus
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_EnumDevices(IN OUT MV_CODEREADER_DEVICE_INFO_LIST* pstDevList, IN unsigned int nTLayerType);
#else
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_EnumDevices(IN OUT MV_CODEREADER_DEVICE_INFO_LIST* pstDevList, IN unsigned int nTLayerType = MV_CODEREADER_GIGE_DEVICE);
#endif
/************************************************************************
* @fn MV_CODEREADER_EnumCodeReader()
* @brief 私有协议枚举设备 (虚拟相机不支持)
* @param pstDevList [IN][OUT] 设备列表
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_EnumIDDevices()
* @brief Enumerate devices by private protocol (virtual camera does not support)
* @param pstDevList [IN][OUT] Device List
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_EnumIDDevices(IN OUT MV_CODEREADER_DEVICE_INFO_LIST* pstDevList);
/************************************************************************
* @fn MV_CODEREADER_EnumCodeReader()
* @brief 枚举指定系列设备 虚拟相机可枚举但bSelectDevice不生效不可指定系列设备
* @param pstDevList [IN][OUT] 设备列表
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_EnumCodeReader()
* @brief Enumerate Specified Series Device (virtual camera can be enumerated, but bSelectDevice is not effective, not specified series equipment)
* @param pstDevList [IN][OUT] Device List
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_EnumCodeReader(IN OUT MV_CODEREADER_DEVICE_INFO_LIST* pstDevList);
/************************************************************************
* @fn MV_CODEREADER_IsDeviceAccessible()
* @brief 设备是否可达(虚拟相机可调用,若参数正确,默认都是可达)
* @param pstDevInfo [IN] 设备信息结构体
* @param nAccessMode [IN] 访问权限
* @return 可达返回true不可达返回false
* @fn MV_CODEREADER_IsDeviceAccessible()
* @brief Is the device accessible(virtual camera can call, not support test equipment whether can reach)
* @param pstDevInfo [IN] Device Information Structure
* @param nAccessMode [IN] Access Right
* @return Access, return true. Not access, return false
************************************************************************/
MV_CODEREADERCTRL_API bool __stdcall MV_CODEREADER_IsDeviceAccessible(IN MV_CODEREADER_DEVICE_INFO* pstDevInfo, IN unsigned int nAccessMode);
/************************************************************************
* @fn MV_CODEREADER_CreateHandle()
* @brief 创建设备句柄(支持虚拟相机)
* @param handle [IN][OUT] 句柄地址
* @param pstDevInfo [IN] 设备信息结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_CreateHandle()
* @brief Create Device Handle(support virtual camera)
* @param handle [IN][OUT] Handle Address
* @param pstDevInfo [IN] Device Information Structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_CreateHandle(IN OUT void ** handle, IN const MV_CODEREADER_DEVICE_INFO* pstDevInfo);
/************************************************************************
* @fn MV_CODEREADER_CreateHandleBySerialNumber()
* @brief 创建设备句柄(支持虚拟相机)
* @param handle [IN][OUT] 句柄地址
* @param chSerialNumber [IN] 设备序列号
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_CreateHandleBySerialNumber()
* @brief Create Device Handle(support virtual camera)
* @param handle [IN][OUT] Handle Address
* @param chSerialNumber [IN] Device SerialNumber
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_CreateHandleBySerialNumber(IN OUT void ** handle, IN const char* chSerialNumber);
/************************************************************************
* @fn MV_CODEREADER_DestroyHandle()
* @brief 销毁设备句柄(支持虚拟相机)
* @param handle [IN] 句柄
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_DestroyHandle()
* @brief Destroy Device Handle(support virtual camera)
* @param handle [IN] Handle
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_DestroyHandle(IN void * handle);
/************************************************************************
* @fn MV_CODEREADER_OpenDevice()
* @brief 打开设备 (支持虚拟相机)
* @param handle [IN] 句柄
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_OpenDevice()
* @brief Open Device(support virtual camera)
* @param handle [IN] Handle
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_OpenDevice(IN void* handle);
/***********************************************************************
* @fn MV_CODEREADER_CloseDevice()
* @brief 关闭相机 (支持虚拟相机)
* @param handle [IN] 句柄
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_CloseDevice()
* @brief Close Device(support virtual camera)
* @param handle [IN] Handle
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_CloseDevice(IN void* handle);
/************************************************************************/
/* 针对注册图像回调和获取帧图像相关接口 */
/* General interface for register image data callback get image data */
/* 注意说明:
若固件支持识别条码长度超256针对MV_CODEREADER_RESULT_BCR、
MV_CODEREADER_RESULT_BCR_EX结构体中的条码字符chCode字符会截断适配至256 */
/* tips:
If the camera supports the bar code length greater than 256, the code characters (chCode) in the MV_CODEREADER_RESULT_BCR
and MV_CODEREADER_RESULT_BCR_EX structures are truncated to 256 */
/************************************************************************/
/***********************************************************************
* @fn MV_CODEREADER_RegisterImageCallBack()
* @brief 注册图像数据回调,开始取流之前调用 (支持虚拟相机)
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param cbOutput [IN][OUT] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterImageCallBack()
* @brief register image data callback, before Start Grabbing (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param cbOutput [IN][OUT] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterImageCallBack(IN void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_CODEREADER_IMAGE_OUT_INFO* pstFrameInfo, void* pUser),
void* pUser);
/***********************************************************************
* @fn MV_CODEREADER_RegisterImageCallBackEx()
* @brief 注册图像数据回调,开始取流之前调用(支持虚拟相机)
* @remark 针对条码字符chCode 若字符长度大于256
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param cbOutput [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterImageCallBackEx()
* @brief register image data callback, before Start Grabbing (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterImageCallBackEx(IN void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_CODEREADER_IMAGE_OUT_INFO_EX* pstFrameInfo, void* pUser),
void* pUser);
/***********************************************************************
* @fn MV_CODEREADER_RegisterImageCallBackEx2()
* @brief 注册图像数据(数据包含二维码质量评级)回调, 开始取流之前调用 (支持虚拟相机)
* @remark 该接口支持ID5000系列读码器获取二维码质量信息兼容无二维码评级功能的其余读码器即二维码质量信息为0
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param cbOutput [IN][OUT] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterImageCallBackEx2()
* @brief register image data(Include QR quality info) callback, before Start Grabbing (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param cbOutput [IN][OUT] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterImageCallBackEx2(IN void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_CODEREADER_IMAGE_OUT_INFO_EX2* pstFrameInfo, void* pUser),
void* pUser);
/***********************************************************************
* @fn MV_CODEREADER_MSC_RegisterImageCallBack()
* @brief 注册指定一路流通道图像数据(数据包含二维码质量评级)回调,开始取流之前调用 (支持虚拟相机)
* @remark 该接口与其他注册图像回调接口存在互斥关系,与获取图像相关接口存在互斥关系
* @remark 该接口支持IDX系列智能读码器多路通道同时轮询指定不同流通道号0/1输出指定通道图像信息原单通道固件流通道号参数默认为0
* @remark 该接口支持ID5000系列智能读码器获取二维码质量信息兼容无二维码评级功能的其余读码器即二维码质量信息为0
* @remark 该接口需停止/取消注册指定路流通道回调时将cbOutput参数置为NULL即可。
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param nChannelID [IN] 流通道号单通道固件通道号为0, 多通道固件通道号为0/1(根据多通道sensor个数)
* @param cbOutput [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_MSC_RegisterImageCallBack()
* @brief register image data(Include QR quality info) callback, before Start Grabbing (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param nChannelID [IN] Stream Channel ID(one sensor is 0, Multichannel is 0/1(follow sensor num))
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_MSC_RegisterImageCallBack(IN void* handle, unsigned int nChannelID,
void(__stdcall* cbOutput)(unsigned char * pData, MV_CODEREADER_IMAGE_OUT_INFO_EX2* pstFrameInfo, void* pUser),
void* pUser);
/***********************************************************************
* @fn MV_CODEREADER_StartGrabbing()
* @brief 开始取流 (支持虚拟相机)
* @param handle [IN] 句柄
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_StartGrabbing()
* @brief Start Grabbing (support virtual camera)
* @param handle [IN] Handle
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_StartGrabbing(IN void* handle);
/***********************************************************************
* @fn MV_CODEREADER_StopGrabbing()
* @brief 停止取流 (支持虚拟相机)
* @param handle [IN] 句柄
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_StopGrabbing()
* @brief Stop Grabbing (support virtual camera)
* @param handle [IN] Handle
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_StopGrabbing(IN void* handle);
/***********************************************************************
* @fn MV_CODEREADER_GetOneFrameTimeout()
* @brief 采用超时机制获取一帧图片SDK内部等待直到有数据时返回 (支持虚拟相机)
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param pstFrameInfo [OUT] 图像信息结构体
* @param nMsec [IN] 等待超时时间, 以毫秒为单位
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GetOneFrameTimeout()
* @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data pointer
* @param pstFrameInfo [OUT] Image information structure
* @param nMsec [IN] Waiting timeout, speed in milliseconds
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetOneFrameTimeout(IN void* handle, IN OUT unsigned char ** pData, IN OUT MV_CODEREADER_IMAGE_OUT_INFO* pstFrameInfo, IN unsigned int nMsec);
/***********************************************************************
* @fn MV_CODEREADER_GetOneFrameTimeoutEx()
* @brief 采用超时机制获取一帧图片SDK内部等待直到有数据时返回支持虚拟相机
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param pstFrameInfo [OUT] 图像信息结构体
* @param nMsec [IN] 等待超时时间, 以毫秒为单位
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GetOneFrameTimeoutEx()
* @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data pointer
* @param pstFrameInfo [OUT] Image information structure
* @param nMsec [IN] Waiting timeout, speed in milliseconds
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetOneFrameTimeoutEx(IN void* handle, IN OUT unsigned char ** pData, IN OUT MV_CODEREADER_IMAGE_OUT_INFO_EX* pstFrameInfo, IN unsigned int nMsec);
/***********************************************************************
* @fn MV_CODEREADER_GetOneFrameTimeoutEx2()
* @brief 采用超时机制获取一帧图片SDK内部等待直到有数据时返回支持虚拟相机
* @remark 该接口支持ID5000系列读码器获取二维码质量信息兼容无二维码评级功能的其余读码器即二维码质量信息为0
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param pstFrameInfoEx [OUT] 图像信息结构体(包含二维码质量信息)
* @param nMsec [IN] 等待超时时间, 以毫秒为单位
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GetOneFrameTimeoutEx2()
* @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data(Include QR quality info) pointer
* @param pstFrameInfoEx [OUT] Image information structure
* @param nMsec [IN] Waiting timeout, speed in milliseconds
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetOneFrameTimeoutEx2(IN void* handle, IN OUT unsigned char ** pData, IN OUT MV_CODEREADER_IMAGE_OUT_INFO_EX2* pstFrameInfo, IN unsigned int nMsec);
/***********************************************************************
* @fn MV_CODEREADER_MSC_GetOneFrameTimeout()
* @brief 采用超时机制获取一路流通道一帧图片SDK内部等待直到有数据时返回支持虚拟相机
* @remark 该接口支持IDX系列智能读码器多路通道同时轮询指定不同流通道号0/1输出指定通道图像信息原单通道固件流通道号参数默认为0
* @remark 该接口支持ID5000系列智能读码器获取二维码质量信息兼容无二维码评级功能的其余读码器即二维码质量信息为0
* @remark 虚拟相机的图像结构体支持的字段宽、高、像素格式、触发序号始终为1、帧号循环采集图像数、帧数据大小、
是否读到条码、条码结构体中的条码数量、条码信息结构体中的字符、字符长度、条码类型和条码位置;其余字段不支持;
虚拟相机RAW模式不支持
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param pstFrameInfo [OUT] 图像信息结构体(包含二维码质量信息)
* @param nChannelID [IN] 流通道ID(单通道固件通道号为0, 多通道固件通道号为0/1(根据多通道sensor个数))
* @param nMsec [IN] 等待超时时间, 以毫秒为单位
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_MSC_GetOneFrameTimeout()
* @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned (support virtual camera)
* @remark The field of virtual camera image structure support: nWidth, nHeight, enPixelType, nTriggerIndex(always 1), nFrameNum,
nFrameLen, bIsGetCode, nCodeNum, nID, chCode, nLen, nBarType, pt[4](point location);
The virtual camera RAW mode does not support.
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data pointer
* @param pstFrameInfo [OUT] Image information structure(Include QR code quality Info)
* @param nChannelID [IN] Stream Channel ID(one sensor is 0, Multichannel is 0/1(follow sensor num))
* @param nMsec [IN] Waiting timeout, speed in milliseconds
* @return Success, return MV_CODEREADER_OK. Failure, return error code
***********************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_MSC_GetOneFrameTimeout(IN void* handle, IN OUT unsigned char **pData,
IN OUT MV_CODEREADER_IMAGE_OUT_INFO_EX2* pstFrameInfo,
IN unsigned int nChannelID, unsigned int nMsec);
/************************************************************************
* @fn MV_CODEREADER_GetDeviceInfo()
* @brief 获取设备信息(支持虚拟相机)
* @param void* handle [IN] 相机句柄
* @param pstDevInfo [IN][OUT] 返回给调用者有关相机设备信息结构体指针
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetDeviceInfo()
* @brief Get device information (virtual camera can call, not support returning equipment information, interface returns success)
* @param void* handle [IN] Handle
* @param pstDevInfo [IN][OUT] Structure pointer of device information
* @return Success, return MV_CODEREADER_OK. Failure, return error code
*
* Refer to the definition of MV_CC_DEVICE_INFO in CameraParam.h
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetDeviceInfo(IN void * handle, IN OUT MV_CODEREADER_DEVICE_INFO* pstDevInfo);
/************************************************************************/
/* 设置和获取相机参数的万能接口 */
/* General interface for getting and setting camera parameters */
/* 虚拟相机支持万能接口:
虚拟相机对支持的节点,配置节点返回成功,并有实际功能效果;
虚拟相机对不支持的节点,配置时返回成功,但无实际功能效果*/
/* virtual camera support universal interface:
To support node, the node is configured to return success, and has the actual effect;
Does not support node, configuration returns success, but no actual effect */
/************************************************************************/
/************************************************************************
* @fn MV_CODEREADER_GetIntValue()
* @brief 获取Integer属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取宽度信息则为"Width"
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetIntValue()
* @brief Get Integer value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value, for example, using "Width" to get width
* @param MVCC_INTVALUE* pstValue [IN][OUT] Structure pointer of camera features
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetIntValue(IN void* handle,IN const char* strKey,IN OUT MV_CODEREADER_INTVALUE_EX *pIntValue);
/************************************************************************
* @fn MV_CODEREADER_SetIntValue()
* @brief 设置Integer型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如宽度信息则为"Width"
* const unsigned int nValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetIntValue()
* @brief Set Integer value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value, for example, using "Width" to set width
* const unsigned int nValue [IN] Feature value to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetIntValue(IN void* handle,IN const char* strKey,IN int64_t nValue);
/************************************************************************
* @fn MV_CODEREADER_GetEnumValue()
* @brief 获取Enum属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取像素格式信息则为"PixelFormat"
* @param MVCC_ENUMVALUE* pEnumValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetEnumValue()
* @brief Get Enum value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value, for example, using "PixelFormat" to get pixel format
* @param MVCC_ENUMVALUE* pEnumValue [IN][OUT] Structure pointer of camera features
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetEnumValue(IN void* handle,IN const char* strKey, IN OUT MV_CODEREADER_ENUMVALUE *pEnumValue);
/************************************************************************
* @fn MV_CODEREADER_SetEnumValue()
* @brief 设置Enum型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取像素格式信息则为"PixelFormat"
* const unsigned int nValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetEnumValue()
* @brief Set Enum value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
* const unsigned int nValue [IN] Feature value to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetEnumValue(IN void* handle,IN const char* strKey,IN unsigned int nValue);
/************************************************************************
* @fn MV_CODEREADER_SetEnumValueByString()
* @brief 设置Enum型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取像素格式信息则为"PixelFormat"
* char* sValue [IN] 想要设置的相机的属性字符串
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetEnumValueByString()
* @brief Set Enum value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
* char* sValue [IN] Feature String to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetEnumValueByString(IN void* handle,IN const char* strKey,IN const char* sValue);
/************************************************************************
* @fn MV_CODEREADER_GetFloatValue()
* @brief 获取Float属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param MVCC_FLOATVALUE *pFloatValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetFloatValue()
* @brief Get Float value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* @param MVCC_FLOATVALUE *pFloatValue [IN][OUT] Structure pointer of camera features
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetFloatValue(IN void* handle,IN const char* strKey, IN OUT MV_CODEREADER_FLOATVALUE *pFloatValue);
/************************************************************************
* @fn MV_CODEREADER_SetFloatValue()
* @brief 设置Float型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* float fValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetFloatValue()
* @brief Set Enum value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* float fValue [IN] Feature value to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetFloatValue(IN void* handle,IN const char* strKey,IN float fValue);
/************************************************************************
* @fn MV_CODEREADER_GetBoolValue()
* @brief 获取Boolean属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param bool *pBoolValue [IN][OUT] 返回给调用者有关相机属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetBoolValue()
* @brief Get Boolean value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* @param bool *pBoolValue [IN][OUT] Structure pointer of camera features
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetBoolValue(IN void* handle,IN const char* strKey,IN OUT bool *pBoolValue);
/************************************************************************
* @fn MV_CODEREADER_SetBoolValue()
* @brief 设置Boolean型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* bool bValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetBoolValue()
* @brief Set Boolean value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* bool bValue [IN] Feature value to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetBoolValue(IN void* handle,IN const char* strKey,IN bool bValue);
/************************************************************************
* @fn MV_CODEREADER_GetStringValue()
* @brief 获取String属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param MVCC_STRINGVALUE *pStringValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_GetStringValue()
* @brief Get String value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* @param MVCC_STRINGVALUE *pStringValue [IN][OUT] Structure pointer of camera features
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetStringValue(IN void* handle,IN const char* strKey, IN OUT MV_CODEREADER_STRINGVALUE *pStringValue);
/************************************************************************
* @fn MV_CODEREADER_SetStringValue()
* @brief 设置String型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* char * sValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetStringValue()
* @brief Set String value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* char * sValue [IN] Feature value to set
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetStringValue(IN void* handle,IN const char* strKey,IN const char * sValue);
/************************************************************************
* @fn MV_CODEREADER_SetCommandValue()
* @brief 设置Command型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @return 成功,返回MV_CODEREADER_OK,失败,返回错误码
* @fn MV_CODEREADER_SetCommandValue()
* @brief Set Command value
* @param void* handle [IN] Handle
* @param char* strKey [IN] Key value
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetCommandValue(IN void* handle,IN const char* strKey);
/************************************************************************
* @fn MV_CODEREADER_GetOptimalPacketSize()
* @brief 获取最佳的packet size该接口目前只支持GigE相机 (虚拟相机 该接口返回成功(0))
* @param void* handle [IN] 相机句柄
* @return 最佳packetsize
* @fn MV_CODEREADER_GetOptimalPacketSize()
* @brief Get the optimal Packet Size, Only support GigE Camera
* @param void* handle [IN] Camera handle
* @return Optimal packetsize
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetOptimalPacketSize(IN void* handle);
/************************************************************************
* @fn MV_CODEREADER_ReadMemory()
* @brief 读内存(虚拟相机不支持)
* @param handle设备句柄
* @param pBuffer作为返回值使用保存读到的内存值内存值是按照大端模式存储的
* @param nAddress待读取的内存地址该地址可以从设备的Camera.xml文件中获取形如xxx_RegAddr的xml节点值
设备的Camera.xml文件会在设备打开之后自动生成在应用程序的当前目录中
* @param nLength待读取的内存长度
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_ReadMemory()
* @brief Read Memory(virtual camera does not support)
* @param handle: Device Handle
* @param pBuffer: Used as a return value, save the read-in memory value ( Memory value is stored in accordance with the big end model)
* @param nAddress: Memory address to be read, which can be obtained from the Camera.xml file of the device, the form xml node value of xxx_RegAddr
(Camera.xml file of device is automatically generated in the application's current directory after the device is opened)
* @param nLength: Length of the memory to be read
* @return Success, return MV_CODEREADER_OK. Failure, return error code
*************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_ReadMemory(IN void* handle , IN OUT void *pBuffer, IN int64_t nAddress, IN int64_t nLength);
/************************************************************************
* @fn MV_CODEREADER_WriteMemory()
* @brief 写内存(虚拟相机不支持)
* @param handle设备句柄
* @param pBuffer待写入的内存值注意内存值要按照大端模式存储
* @param nAddress待写入的内存地址该地址可以从设备的Camera.xml文件中获取形如xxx_RegAddr的xml节点值
设备的Camera.xml文件会在设备打开之后自动生成在应用程序的当前目录中
* @param nLength待写入的内存长度
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_WriteMemory()
* @brief Write Memory(virtual camera does not support)
* @param handle: Device Handle
* @param pBuffer: Memory value to be written ( Note the memory value to be stored in accordance with the big end model)
* @param nAddress: Memory address to be written, which can be obtained from the Camera.xml file of the device, the form xml node value of xxx_RegAddr
(Camera.xml file of device is automatically generated in the application's current directory after the device is opened)
* @param nLength: Length of the memory to be written
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_WriteMemory(IN void* handle , IN const void *pBuffer, IN int64_t nAddress, IN int64_t nLength);
// 注册异常消息回调,在打开设备之后调用
// Register exception message callback, call after open device
/************************************************************************
* @fn MV_CODEREADER_RegisterExceptionCallBack()
* @brief 注册异常消息回调在打开设备之后调用虚拟相机一直返回OK但实际不支持无效果
* @param handle设备句柄
* @param cbException [IN] 异常回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterExceptionCallBack()
* @brief Register Exception Message CallBack, call after open device(virtual camera has been return OK, but it does not support, no effect)
* @param handle: Device handle
* @param cbException [IN] Exception Message CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterExceptionCallBack(IN void* handle,
void(__stdcall* cbException)(unsigned int nMsgType, void* pUser),
void* pUser);
// 注册触发回调(由相机固件提供触发),在打开设备之后调用
// Register Trigger callback(camera provide), call after open device
/************************************************************************
* @fn MV_CODEREADER_RegisterTriggerCallBack()
* @brief 注册触发回调,在打开设备之后调用(虚拟相机不支持)
* @param handle设备句柄
* @param cbTrigger [IN] 触发回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterTriggerCallBack()
* @brief Register Trigger CallBack, call after open device(virtual camera does not support)
* @param handle: Device handle
* @param cbTrigger [IN] Trigger CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterTriggerCallBack(IN void* handle,
void(__stdcall* cbTrigger)(MV_CODEREADER_TRIGGER_INFO_DATA* pstTriggerInfo, void* pUser),
void* pUser);
/************************************************************************
* @fn MV_CODEREADER_RegisterAllEventCallBack()
* @brief 注册全部事件回调,在打开设备之后调用(该接口需要固件支持)(虚拟相机不支持)
* @remark 支持节点ArithmeticModel、BillCombineEnable调用该接口后对节点数值进行变更事件回调中有事件数据
* @param handle [IN] 设备句柄
* @param cbEvent [IN][OUT] 事件回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_RegisterAllEventCallBack()
* @brief Register all event callback, which is called after the device is opened(the API need device support)(virtual camera does not support)
* @remark Support node ArithmeticModel、BillCombineEnable, after event callback, change the node number,
the pEventInfo will have data
* @param handle [IN] Device handle
* @param cbEvent [IN][OUT] Event CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_RegisterAllEventCallBack(void* handle,
void(__stdcall* cbAllEvent)(MV_CODEREADER_EVENT_OUT_INFO* pEventInfo, void* pUser),
void* pUser);
/************************************************************************
* @fn MV_CODEREADER_GIGE_ForceIp()
* @brief 强制IP设置虚拟相机不支持
* @remark 该接口为适配兼容SI系列智能读码器不支持设置子网掩码和网关异常值报错
只支持设置IP错误报错ip设置为0将配置为DHCP自动获取ip的模式不报错。
* @param handle设备句柄
* @param nIP [IN] 设置的IP
* @param nSubNetMask [IN] 子网掩码
* @param nDefaultGateWay [IN] 默认网关
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GIGE_ForceIp()
* @brief Force IP (virtual camera does not support)
* @remark The interface for the adapter is compatible with SI series intelligent reading code,
does not support setting the correct subnet mask and gateway outlier; Only allows you to
set the IP error an error, the IP is set to 0 will automatically get configured for DHCP IP mode, is not an error.
* @param handle: Device handle
* @param nIP [IN] IP to set
* @param nSubNetMask [IN] Subnet mask
* @param nDefaultGateWay [IN] Default gateway
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GIGE_ForceIp(IN void* handle, IN unsigned int nIP, IN unsigned int nSubNetMask, IN unsigned int nDefaultGateWay);
/************************************************************************
* @fn MV_CODEREADER_GIGE_SetIpConfig
* @brief 配置IP方式虚拟相机不支持
* @remark SI系列智能读码器不支持通过该接口设置IP配置类型, SI系列若设置STATIC则直接返回OK
若需DHCP则调用MV_CODEREADER_GIGE_ForceIp()接口的nIP设置为0设置LLA则返回不支持
* @param handle [IN] 设备句柄
* @param nType [IN] IP类型见MV_IP_CFG_x
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GIGE_SetIpConfig
* @brief IP configuration method (virtual camera does not support)
* @remark SI series intelligent reading code device does not support through the interface set IP configuration type,
if SI series set STATIC returned directly OK;Set the LLA returns does not support.
if need DHCP call MV_CODEREADER_GIGE_ForceIp () the nIP of the interface is set to 0.
* @param handle [IN] Device handle
* @param nType [IN] IP type, refer to MV_IP_CFG_x
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GIGE_SetIpConfig(IN void* handle, IN unsigned int nType);
/************************************************************************
* @fn MV_CODEREADER_FileAccessRead()
* @brief 从相机读取文件(虚拟相机不支持)
* @param handle [IN] 句柄地址
* @param pstFileAccess [IN] 文件存取结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_FileAccessRead()
* @brief Read the file from the camera (virtual camera does not support)
* @param handle [IN] Handle
* @param pstFileAccess [IN] File access structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_FileAccessRead(IN void* handle, IN MV_CODEREADER_FILE_ACCESS * pstFileAccess);
/************************************************************************
* @fn MV_CODEREADER_FileAccessWrite()
* @brief 将文件写入相机(虚拟相机不支持)
* @param handle [IN] 句柄地址
* @param pstFileAccess [IN] 文件存取结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_FileAccessWrite()
* @brief Write the file to camera (virtual camera does not support)
* @param handle [IN] Handle
* @param pstFileAccess [IN] File access structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_FileAccessWrite(IN void* handle, IN MV_CODEREADER_FILE_ACCESS * pstFileAccess);
/************************************************************************
* @fn MV_CODEREADER_GetFileAccessProgress
* @brief 获取文件存取的进度(虚拟相机不支持)
* @param handle [IN] 设备句柄
* @param pstFileAccessProgress [IN][OUT] 进度内容
* @return 成功返回MV_CODEREADER_OK错误返回错误码 (当前文件存取的状态)
* @fn MV_CODEREADER_GetFileAccessProgress
* @brief Get File Access Progress (virtual camera does not support)
* @param handle [IN] Device handle
* @param pstFileAccessProgress [IN][OUT] File access Progress
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetFileAccessProgress(IN void* handle, IN OUT MV_CODEREADER_FILE_ACCESS_PROGRESS * pstFileAccessProgress);
/************************************************************************/
/* 设置和获取抠图算法接口(虚拟相机不支持) */
/* General interface for getting and setting waybill parameters (virtual camera does not support)*/
/************************************************************************/
/************************************************************************
* @fn MV_CODEREADER_SetWayBillEnable()
* @brief 设置抠图使能(虚拟相机不支持)
* @remark 读码器本身抠图使能节点DisplayBillInfoEnable开启可获取抠图坐标信息同时该接口参数设置True可获取面单图片pImageWaybill。
* @param handle [IN] 句柄
* @param bWaybillEnable [IN] 抠图使能
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_SetWayBillEnable()
* @brief Set WayBill Enable (virtual camera does not support)
* @param handle [IN] Handle
* @param bWaybillEnable [IN] WayBillEnable
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SetWayBillEnable(IN void* handle, IN bool bWaybillEnable);
/************************************************************************
* @fn MV_CODEREADER_GetWayBillInfo()
* @brief 获取当前输入图像的面单信息(输入图像对应 MV_CODEREADER_IMAGE_OUT_INFO_EX 该结构体信息)(虚拟相机不支持)
* @param handle [IN] 句柄
* @param pData [IN] 原始图像指针
* @param pstFrameInfo [IN][OUT] 图像信息结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GetWayBillInfo()
* @brief Get the WayBill Info of current input image (virtual camera does not support)
* @param handle [IN] Handle
* @param pData [IN] Received image data pointer
* @param pstFrameInfo [IN][OUT] Image information structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetWayBillInfo(IN void* handle, IN unsigned char* pData, IN OUT MV_CODEREADER_IMAGE_OUT_INFO_EX* pstFrameInfo);
/************************************************************************
* @fn MV_CODEREADER_GetWayBillInfoEx()
* @brief 获取当前输入图像的面单信息(输入图像对应 MV_CODEREADER_IMAGE_OUT_INFO_EX2 该结构体信息) (虚拟相机不支持)
* @param handle [IN] 句柄
* @param pData [IN] 原始图像指针
* @param pstFrameInfoEx [IN][OUT] 图像信息结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_GetWayBillInfoEx()
* @brief Get the WayBill Info of current input image (virtual camera does not support)
* @param handle [IN] Handle
* @param pData [IN] Received image data pointer
* @param pstFrameInfoEx [IN][OUT] Image information structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GetWayBillInfoEx(IN void* handle, IN unsigned char* pData, IN OUT MV_CODEREADER_IMAGE_OUT_INFO_EX2* pstFrameInfo);
/************************************************************************
* @fn MV_CODEREADER_Algorithm_SetIntValue()
* @brief 设置整型参数(虚拟相机不支持)
* @param handle [IN] 句柄
* @param strParamKeyName [IN] 属性键值
* @param nValue [IN] 参数值
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_Algorithm_SetIntValue()
* @brief Set Integer Value (virtual camera does not support)
* @param handle [IN] Handle
* @param strParamKeyName [IN] Param KeyName
* @param nValue [IN] Value
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_Algorithm_SetIntValue(IN void* handle, IN const char* const strParamKeyName, IN const int nValue);
/************************************************************************
* @fn MV_CODEREADER_Algorithm_GetIntValue()
* @brief 获取整型参数(虚拟相机不支持)
* @param handle [IN] 句柄
* @param strParamKeyName [IN] 属性键值
* @param pnValue [IN][OUT] 参数值
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_Algorithm_GetIntValue()
* @brief Get Integer Value (virtual camera does not support)
* @param handle [IN] Handle
* @param strParamKeyName [IN] Param KeyName
* @param pnValue [IN][OUT] Value
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_Algorithm_GetIntValue(IN void* handle, IN const char* const strParamKeyName, IN OUT int* const pnValue);
/************************************************************************
* @fn MV_CODEREADER_SaveImage()
* @brief 保存图片支持Bmp和Jpeg.编码质量在50-99之间虚拟相机不支持
* @param pSaveParam [IN][OUT] 保存图片参数结构体
* @return 成功返回MV_CODEREADER_OK错误返回错误码
* @fn MV_CODEREADER_SaveImage()
* @brief Save image, support Bmp and Jpeg. Encoding quality, (50-99] (virtual camera does not support)
* @param pSaveParam [IN][OUT] Save image parameters structure
* @return Success, return MV_CODEREADER_OK. Failure, return error code
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_SaveImage(IN void* handle, IN OUT MV_CODEREADER_SAVE_IMAGE_PARAM_EX* pSaveParam);
/********************************************************************//**
* @fn MV_CODEREADER_GIGE_SetGvcpTimeout
* @brief 设置GVCP命令超时时间虚拟相机一直返回OK但实际不支持无效果
* @param handle [IN] 设备句柄
* @param nMillisec [IN] 超时时间以毫秒为单位范围0-10000
* @return 成功返回MV_OK错误返回错误码
* @remarks 连接设备之后调用该接口可以设置GVCP命令超时时间。
* @fn MV_CODEREADER_GIGE_SetGvcpTimeout
* @brief Set GVCP cammand timeout
* @param handle [IN] Device handle
* @param nMillisec [IN] Timeout, ms as unit, range: 0-10000
* @return Success, return MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set GVCP command timeout time.
************************************************************************/
MV_CODEREADERCTRL_API int __stdcall MV_CODEREADER_GIGE_SetGvcpTimeout(IN void* handle, IN unsigned int nMillisec);
#ifdef __cplusplus
}
#endif
#endif //_MV_CODEREADER_CTRL_H_