fast/3rdparty/hikvision/code_reader/inc/MvCodeReaderCtrl.h

1005 lines
66 KiB
C
Raw Normal View History

2025-01-20 10:30:01 +08:00
#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 truefalse
* @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 */
/* 注意说明:
256MV_CODEREADER_RESULT_BCR
MV_CODEREADER_RESULT_BCR_EX结构体中的条码字符chCode256 */
/* 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/10
* @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/10
* @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 sizeGigE相机 ( (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 nAddressCamera.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 nAddressCamera.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 ArithmeticModelBillCombineEnable
* @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 ArithmeticModelBillCombineEnable, 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设置为0LLA则返回不支持
* @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开启可获取抠图坐标信息TruepImageWaybill
* @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_