RM_Vison/ros2_hik_camera/hikSDK/include/MvCameraControl.h

3399 lines
212 KiB
C
Raw Permalink Normal View History

2023-12-14 15:48:31 +08:00
#ifndef _MV_CAMERA_CTRL_H_
#define _MV_CAMERA_CTRL_H_
#include "MvErrorDefine.h"
#include "CameraParams.h"
/**
* @brief
* @brief Import and export definition of the dynamic library
*/
#ifndef MV_CAMCTRL_API
#if (defined (_WIN32) || defined(WIN64))
#if defined(MV_CAMCTRL_EXPORTS)
#define MV_CAMCTRL_API __declspec(dllexport)
#else
#define MV_CAMCTRL_API __declspec(dllimport)
#endif
#else
#ifndef __stdcall
#define __stdcall
#endif
#if defined(MV_CAMCTRL_EXPORTS)
#define MV_CAMCTRL_API __attribute__((visibility("default")))
#else
#define MV_CAMCTRL_API
#endif
#endif
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
/* 相机的基本指令和操作 */
/* Camera basic instructions and operations */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief SDK版本号
* @return 4
| | | | |
| :---: | :---: | :---: | :---: |
| 8bits | 8bits | 8bits | 8bits |
* @remarks 0x01000001SDK版本号为V1.0.0.1
* @~english
* @brief Get SDK Version
* @return Always return 4 Bytes of version number
| Main | Sub | Rev | Test |
| :---: | :---: | :---: | :---: |
| 8bits | 8bits | 8bits | 8bits |
* @remarks For example, if the return value is 0x01000001, the SDK version is V1.0.0.1.
************************************************************************/
MV_CAMCTRL_API unsigned int __stdcall MV_CC_GetSDKVersion();
/********************************************************************//**
* @~chinese
* @brief
* @return
* @~english
* @brief Get supported Transport Layer
* @return Supported Transport Layer number
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_EnumerateTls();
/********************************************************************//**
* @~chinese
* @brief
* @param nTLayerType [IN]
* @param pstDevList [OUT]
* @return #MV_OK
* @remarks SDK内部分配的线.\n
线
* @~english
* @brief Enumerate Device
* @param nTLayerType [IN] Enumerate TLs
* @param pstDevList [OUT] Device List
* @return Success, return #MV_OK. Failure, return error code
* @remarks @remarks The memory of the device list is allocated within the SDK. When the interface is invoked by multiple threads, the memory of the device list will be released and applied.\n
It is recommended to avoid multithreaded enumeration operations as much as possible.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_EnumDevices(IN unsigned int nTLayerType, IN OUT MV_CC_DEVICE_INFO_LIST* pstDevList);
/********************************************************************//**
* @~chinese
* @brief
* @param nTLayerType [IN]
* @param pstDevList [OUT]
* @param pManufacturerName [IN]
* @return #MV_OK
* @remarks
* @~english
* @brief Enumerate device according to manufacture name
* @param nTLayerType [IN] Transmission layer of enumeration
* @param pstDevList [OUT] Device list
* @param pManufacturerName [IN] Manufacture Name
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_EnumDevicesEx(IN unsigned int nTLayerType, IN OUT MV_CC_DEVICE_INFO_LIST* pstDevList, IN const char* pManufacturerName);
/********************************************************************//**
* @~chinese
* @brief
* @param pstDevInfo [IN]
* @param nAccessMode [IN] 访
* @return truefalse
* @remarks CCP寄存器的值访 \n
#MV_ACCESS_ExclusiveWithSwitch #MV_ACCESS_ControlWithSwitch #MV_ACCESS_ControlSwitchEnableWithKey这三种模式false33 \n
CameraLink设备
* @~english
* @brief Is the device accessible
* @param pstDevInfo [IN] Device Information Structure
* @param nAccessMode [IN] Access Right
* @return Access, return true. Not access, return false
@remarks Read device CCP register value and determine current access permission.\n
Return false if the device does not support the modes #MV_ACCESS_ExclusiveWithSwitch, #MV_ACCESS_ControlWithSwitch, #MV_ACCESS_ControlSwitchEnableWithKey. Currently the device does not support the 3 preemption modes, neither do the devices from other mainstream manufacturers. \n
This API is not supported by CameraLink device.
************************************************************************/
MV_CAMCTRL_API bool __stdcall MV_CC_IsDeviceAccessible(IN MV_CC_DEVICE_INFO* pstDevInfo, IN unsigned int nAccessMode);
/********************************************************************//**
* @~chinese
* @brief SDK日志路径MvLogServer已启用
* @param pSDKLogPath [IN] SDK日志路径
* @return #MV_OK
* @remarks \n
v2.4.1
* @~english
* @brief Set SDK log path
* @param pSDKLogPath [IN] SDK log path
* @return Access, return true. Not access, return false
* @remarks For version V2.4.1, added log service, this API is invalid when the service is enabled.And The logging service is enabled by default\n
This API is used to set the log file storing path.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetSDKLogPath(IN const char * pSDKLogPath);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [OUT]
* @param pstDevInfo [IN]
* @return #MV_OK
* @remarks SDK接口SDK日志文件MvSdkLog文件夹MV_CC_CreateHandleWithoutLog创建句柄
* @~english
* @brief Create Device Handle
* @param handle [OUT] Device handle
* @param pstDevInfo [IN] Device Information Structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks Create required resources within library and initialize internal module according to input device information. Create handle and call SDK interface through this interface, and SDK log file will be created by default. Creating handle through #MV_CC_CreateHandleWithoutLog will not generate log files.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CreateHandle(OUT void ** handle, IN const MV_CC_DEVICE_INFO* pstDevInfo);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [OUT]
* @param pstDevInfo [IN]
* @return #MV_OK
* @remarks SDK接口SDK日志文件MV_CC_CreateHandle创建句柄MvSdkLog文件夹
* @~english
* @brief Create Device Handle without log
* @param handle [OUT] Device handle
* @param pstDevInfo [IN] Device Information Structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks Create required resources within library and initialize internal module according to input device information. Create handle and call SDK interface through this interface, and SDK log file will not be created. To create logs, create handle through MV_CC_CreateHandle, and log files will be automatically generated.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CreateHandleWithoutLog(OUT void ** handle, IN const MV_CC_DEVICE_INFO* pstDevInfo);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return #MV_OK
* @~english
* @brief Destroy Device Handle
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_DestroyHandle(IN void * handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nAccessMode [IN] 访
* @param nSwitchoverKey [IN] 访
* @return #MV_OK
* @remarks \n
nAccessMode和nSwitchoverKey访#MV_ACCESS_ExclusiveWithSwitch #MV_ACCESS_ControlWithSwitchMV_ACCESS_ControlSwitchEnableMV_ACCESS_ControlSwitchEnableWithKey这四种抢占模式\n
U3V设备nAccessModenSwitchoverKey这两个参数无效
* @~english
* @brief Open Device
* @param handle [IN] Device handle
* @param nAccessMode [IN] Access Right
* @param nSwitchoverKey [IN] Switch key of access right
* @return Success, return #MV_OK. Failure, return error code
* @remarks Find specific device and connect according to set device parameters. \n
When calling the interface, the input of nAccessMode and nSwitchoverKey is optional, and the device access mode is exclusive. Currently the device does not support the following preemption modes: MV_ACCESS_ExclusiveWithSwitch, MV_ACCESS_ControlWithSwitch, MV_ACCESS_ControlSwitchEnableWithKey.\n
For USB3Vision device, nAccessMode, nSwitchoverKey are invalid.
************************************************************************/
#ifndef __cplusplus
MV_CAMCTRL_API int __stdcall MV_CC_OpenDevice(IN void* handle, IN unsigned int nAccessMode, IN unsigned short nSwitchoverKey);
#else
MV_CAMCTRL_API int __stdcall MV_CC_OpenDevice(IN void* handle, IN unsigned int nAccessMode = MV_ACCESS_Exclusive, IN unsigned short nSwitchoverKey = 0);
#endif
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return #MV_OK
* @remarks MV_CC_OpenDevice连接设备后
* @~english
* @brief Close Device
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
* @remarks After connecting to device through MV_CC_OpenDevice, use this interface to disconnect and release resources.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CloseDevice(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return truefalse
* @~english
* @brief Is The Device Connected
* @param handle [IN] Device handle
* @return Connected, return true. Not Connected or DIsconnected, return false
***********************************************************************/
MV_CAMCTRL_API bool __stdcall MV_CC_IsDeviceConnected(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param cbOutput [IN]
* @param pUser [IN]
* @return #MV_OK
* @remarks MV_CC_CreateHandle之后即可调用 \n
- MV_CC_RegisterImageCallBackEx设置图像数据回调函数MV_CC_StartGrabbing开始采集
- MV_CC_StartGrabbing开始采集MV_CC_GetOneFrameTimeout获取指定像素格式的帧数据
windows版本和Linux版本下支持\n
CameraLink设备
* @~english
* @brief Register the image callback function
* @param handle [IN] Device handle
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks After MV_CC_CreateHandle, call this interface to set image data callback function.\n
There are two available image data acquisition modes, and cannot be used together:
- Mode 1: Call MV_CC_RegisterImageCallBack to set image data callback function, and then call MV_CC_StartGrabbing to start acquiring. The acquired image data will return in the set callback function.
- Mode 2: Call MV_CC_StartGrabbing to start acquiring, and then call MV_CC_GetOneFrameTimeout repeatedly in application layer to get frame data of specified pixel format. When getting frame data, the frequency of calling this interface should be controlled by upper layer application according to frame rate.
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackEx(void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),
void* pUser);
/********************************************************************//**
* @~chinese
* @brief RGB
* @param handle [IN]
* @param cbOutput [IN]
* @param pUser [IN]
* @return #MV_OK
* @remarks MV_CC_CreateHandle之后即可调用 \n
- MV_CC_RegisterImageCallBackForRGB设置RGB24格式图像数据回调函数MV_CC_StartGrabbing开始采集
- MV_CC_StartGrabbing开始采集MV_CC_GetImageForRGB获取RGB24格式的帧数据\n\n
windows版本和Linux版本下支持 \n
CameraLink设备
* @~english
* @brief register image data callback, RGB
* @param handle [IN] Device handle
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to set image data callback function, you should call this API MV_CC_CreateHandle. \n
There are two image acquisition modes, the two modes cannot be reused:
- Mode 1: Call #MV_CC_RegisterImageCallBackForRGB to set RGB24 format image data callback function,
and then call #MV_CC_StartGrabbing to start acquisition,
the collected image data will be returned in the configured callback function.
- Mode 2: Call MV_CC_StartGrabbing to start acquisition, and the call MV_CC_GetImageForRGB
repeatedly in application layer to get frame data with RGB24 format.
When getting frame data, the upper application program should control the frequency
of calling this API according to frame rate. \n\n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForRGB(void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),
void* pUser);
/********************************************************************//**
* @~chinese
* @brief BGR
* @param handle [IN]
* @param cbOutput [IN]
* @param pUser [IN]
* @return #MV_OK
* @remarks MV_CC_CreateHandle之后即可调用\n
\n
- #MV_CC_RegisterImageCallBackForBGR #BGR24 #MV_CC_StartGrabbing
- #MV_CC_StartGrabbing #MV_CC_GetImageForBGR #BGR24 \n\n
windows版本和Linux版本下支持 \n
CameraLink设备
* @~english
* @brief register image data callback, BGR
* @param handle [IN] Device handle
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to set image data callback function, you should call this API MV_CC_CreateHandle. \n
There are two image acquisition modes, the two modes cannot be reused: \n
- Mode 1: Call MV_CC_RegisterImageCallBackForBGR to set RGB24 format image data callback function, and then call MV_CC_StartGrabbing to start acquisition, the collected image data will be returned in the configured callback function.\n
- Mode 2: Call MV_CC_StartGrabbing to start acquisition, and the call MV_CC_GetImageForBGR repeatedly in application layer to get frame data with BGR24 format. When getting frame data, the upper application program should control the frequency of calling this API according to frame rate.\n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBackForBGR(void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO_EX* pFrameInfo, void* pUser),
void* pUser);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return #MV_OK
* @remarks CameraLink设备
* @~english
* @brief Start Grabbing
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StartGrabbing(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return #MV_OK
* @remarks CameraLink设备
* @~english
* @brief Stop Grabbing
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StopGrabbing(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief RGB数据
* @param handle [IN]
* @param pData [OUT]
* @param nDataSize [IN]
* @param pFrameInfo [OUT]
* @param nMsec [IN]
* @return #MV_OK
* @remarks RGB24格式返回RGB24格式有耗时\n
MV_CC_StartGrabbing启动图像采集 \n
CameraLink设备 \n
windows版本和Linux版本下支持
* @~english
* @brief Get one frame of RGB data, this function is using query to get data
query whether the internal cache has data, get data if there has, return error code if no data
* @param handle [IN] Device handle
* @param pData [OUT] Image data receiving buffer
* @param nDataSize [IN] Buffer size
* @param pFrameInfo [OUT] Image information structure
* @param nMsec [IN] Waiting timeout
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to set image data callback function, you should call this API MV_CC_CreateHandle. \n
There are two image acquisition modes, the two modes cannot be reused: \n
- Mode 1: Call MV_CC_RegisterImageCallBackForBGR to set RGB24 format image data callback function, and then call MV_CC_StartGrabbing to start acquisition, the collected image data will be returned in the configured callback function.\n
- Mode 2: Call MV_CC_StartGrabbing to start acquisition, and the call MV_CC_GetImageForBGR repeatedly in application layer to get frame data with BGR24 format. When getting frame data, the upper application program should control the frequency of calling this API according to frame rate. \n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetImageForRGB(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec);
/********************************************************************//**
* @~chinese
* @brief BGR数据
* @param handle [IN]
* @param pData [OUT]
* @param nDataSize [IN]
* @param pFrameInfo [OUT]
* @param nMsec [IN]
* @return #MV_OK
* @remarks BGR24格式返回BGR24格式有耗时 \n
MV_CC_StartGrabbing启动图像采集\n
CameraLink设备\n
windows版本和Linux版本下支持
* @~english
* @brief Get one frame of BGR data, this function is using query to get data
query whether the internal cache has data, get data if there has, return error code if no data
* @param handle [IN] Device handle
* @param pData [OUT] Image data receiving buffer
* @param nDataSize [IN] Buffer size
* @param pFrameInfo [OUT] Image information structure
* @param nMsec [IN] Waiting timeout
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to set image data callback function, you should call this API MV_CC_CreateHandle. \n
There are two image acquisition modes, the two modes cannot be reused: \n
- Mode 1: Call MV_CC_RegisterImageCallBackForBGR to set RGB24 format image data callback function, and then call MV_CC_StartGrabbing to start acquisition, the collected image data will be returned in the configured callback function.\n
- Mode 2: Call MV_CC_StartGrabbing to start acquisition, and the call MV_CC_GetImageForBGR repeatedly in application layer to get frame data with BGR24 format. When getting frame data, the upper application program should control the frequency of calling this API according to frame rate. \n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetImageForBGR(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo, int nMsec);
/********************************************************************//**
* @~chinese
* @brief 使MV_CC_Display不能同时使用
* @param handle [IN]
* @param pFrame [OUT]
* @param nMsec [IN] INFINITE时表示无限等待
* @return #MV_OK
* @remarks MV_CC_StartGrabbing启动图像采集SDK内部等待直到有数据时返回 \n
MV_CC_FreeImageBuffer配套使用MV_CC_FreeImageBuffer接口将pFrame内的数据指针权限进行释放 \n
MV_CC_GetOneFrameTimeout相比sdk内部自动分配的MV_CC_GetOneFrameTimeout接口是需要客户自行分配\n
MV_CC_Display后无法取流 \n
U3VGIGE设备均可支持 \n
CameraLink设备
* @~english
* @brief Get a frame of an image using an internal cache
* @param handle [IN] Device handle
* @param pFrame [OUT] Image data and image information
* @param nMsec [IN] Waiting timeout
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to get image data frame, you should call MV_CC_StartGrabbing to start image acquisition. This API can get frame data actively, the upper layer program should control the frequency of calling this API according to the frame rate. This API supports setting timeout, and SDK will wait to return until data appears. This function will increase the streaming stability, which can be used in the situation with high stability requirement. \n
This API and MV_CC_FreeImageBuffer should be called in pairs, after processing the acquired data, you should call MV_CC_FreeImageBuffer to release the data pointer permission of pFrame. \n
This interface is more efficient than MV_CC_GetOneFrameTimeout. The allocation of the stream cache is automatically allocated within the SDK.The MV_CC_GetOneFrameTimeout interface needs to be allocated by customers themselves. \n
This API cannot be called to stream after calling MV_CC_Display. \n
This API is not supported by CameraLink device. \n
This API is supported by both USB3 vision camera and GigE camera. \n
**********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetImageBuffer(IN void* handle, OUT MV_FRAME_OUT* pFrame, IN unsigned int nMsec);
/********************************************************************//**
* @~chinese
* @brief (使MV_CC_GetImageBuffer配套使用)
* @param handle [IN]
* @param pFrame [IN]
* @return #MV_OK
* @remarks MV_CC_GetImageBuffer配套使用使MV_CC_GetImageBuffer接口取到的图像数据pFrame #MV_CC_FreeImageBuffer \n
GetOneFrameTimeout接口GetImageBuffer在不进行Free的情况下 #MV_CC_SetImageNodeNum 1\n
U3VGIGE设备均可支持 \n
CameraLink设备
* @~english
* @brief Free image buffer(this interface can free image buffer, used with MV_CC_GetImageBuffer)
* @param handle [IN] Device handle
* @param pFrame [IN] Image data and image information
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API and MV_CC_GetImageBuffer should be called in pairs, before calling MV_CC_GetImageBuffer to get image data pFrame, you should call #MV_CC_FreeImageBuffer to release the permission. \n
Compared with API MV_CC_GetOneFrameTimeout, this API has higher efficiency of image acquisition. The max. number of nodes can be outputted is same as the "nNum" of API #MV_CC_SetImageNodeNum, default value is 1. \n
This API is not supported by CameraLink device. \n
This API is supported by both USB3 vision camera and GigE camera.
**********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FreeImageBuffer(IN void* handle, IN MV_FRAME_OUT* pFrame);
/********************************************************************//**
* @~chinese
* @brief SDK内部等待直到有数据时返回
* @param handle [IN]
* @param pData [OUT]
* @param nDataSize [IN]
* @param pFrameInfo [OUT]
* @param nMsec [IN]
* @return #MV_OK
* @remarks MV_CC_StartGrabbing启动图像采集SDK内部等待直到有数据时返回\n
U3VGIGE设备均可支持\n
CameraLink设备
* @~english
* @brief Timeout mechanism is used to get image, and the SDK waits inside until the data is returned
* @param handle [IN] Device handle
* @param pData [OUT] Image data receiving buffer
* @param nDataSize [IN] Buffer size
* @param pFrameInfo [OUT] Image information structure
* @param nMsec [IN] Waiting timeout
* @return Success, return #MV_OK. Failure, return error code
* @remarks Before calling this API to get image data frame, call MV_CC_StartGrabbing to start image acquisition. This API can get frame data actively, the upper layer program should control the frequency of calling this API according to the frame rate. This API supports setting timeout, SDK will wait to return until data appears. This function will increase the streaming stability, which can be used in the situation with high stability requirement. \n
Both the USB3Vision and GIGE camera can support this API. \n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetOneFrameTimeout(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo, unsigned int nMsec);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return MV_OK
* @remarks \n
* @~english
* @brief if Image buffers has retrieved the dataClear them
* @param handle [IN] Device handle
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface allows user to clear the unnecessary images from the buffer memory without stopping acquisition. \n
This interface allows user to clear previous data after switching from continuous mode to trigger mode.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_ClearImageBuffer(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief MV_CC_GetImageBuffer不能同时使用
* @param handle [IN]
* @param hWnd [IN]
* @return #MV_OK
* @~english
* @brief Display one frame image, register display window, automatic display internally
* @param handle [IN] Handle
* @param hWnd [IN] Display Window Handle
* @return Success, return #MV_OK. Failure, return error code
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_Display(IN void* handle, void* hWnd);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pDisplayInfo [IN]
* @return #MV_OK
* @remarks U3VGIGE设备均可支持\n
CameraLink设备
* @~english
* @brief Display one frame image
* @param handle [IN] Device handle
* @param pDisplayInfo [IN] Frame Info
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is valid for USB3Vision camera and GIGE camera. \n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_DisplayOneFrame(IN void* handle, IN MV_DISPLAY_FRAME_INFO* pDisplayInfo);
/********************************************************************//**
* @~chinese
* @brief SDK内部图像缓存节点个数1
* @param handle [IN]
* @param nNum [IN] [1,30]1
* @return #MV_OK
* @remarks SDK内部图像缓存节点个数MV_CC_StartGrabbing开始抓图前调用\n
SDK使用的内存ARM板出现的跳帧现象\n
CameraLink设备
* @~english
* @brief Set the number of the internal image cache nodes in SDK, Greater than or equal to 1, to be called before the capture
* @param handle [IN] Device handle
* @param nNum [IN] Image Node Number, range[1,30], default 1
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this interface to set the number of SDK internal image buffer nodes.
The interface should be called before calling MV_CC_StartGrabbing for capturing. \n
Increasing the number of image cache nodes will increase the memory used by the SDK,
but it can effectively avoid frame skipping on some ARM boards with poor performance. \n
This API is not supported by CameraLink device.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetImageNodeNum(IN void* handle, unsigned int nNum);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstDevInfo [IN][OUT]
* @return ,#MV_OK,,
* @remarks \n
GigE相机
* @~english
* @brief Get device information
* @param handle [IN] Device handle
* @param pstDevInfo [IN][OUT] Structure pointer of device information
* @return Success, return #MV_OK. Failure, return error code
* @remarks The API support users to access device information after opening the device. \n
If the device is a GigE camera, there is a blocking risk in calling the interface, so it is not recommended to call the interface during the fetching process.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetDeviceInfo(IN void * handle, IN OUT MV_CC_DEVICE_INFO* pstDevInfo);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstInfo [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_ALL_MATCH_INFO结构体中的nType类型MV_ALL_MATCH_INFO结构体中pInfo里返回 \n
GigE设备的MV_MATCH_TYPE_NET_DETECT信息需在开启抓图之后调用U3V设备的MV_MATCH_TYPE_USB_DETECT信息需在打开设备之后调用 \n
CameraLink设备
* @~english
* @brief Get various type of information
* @param handle [IN] Device handle
* @param pstInfo [IN][OUT] Structure pointer of various type of information
* @return Success, return #MV_OK. Failure, return error code
* @remarks Input required information type (specify nType in structure MV_ALL_MATCH_INFO) in the interface and get corresponding information (return in pInfo of structure MV_ALL_MATCH_INFO). \n
The calling precondition of this interface is determined by obtained information type. Call after enabling capture to get MV_MATCH_TYPE_NET_DETECT information of GigE device, and call after starting device to get MV_MATCH_TYPE_USB_DETECT information of USB3Vision device. \n
This API is not supported by CameraLink device.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAllMatchInfo(IN void* handle, IN OUT MV_ALL_MATCH_INFO* pstInfo);
/************************************************************************/
/* 设置和获取相机参数的万能接口 */
/* General interface for getting and setting camera parameters */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief Integer属性值
* @param handle [IN]
* @param strKey [IN] "Width"
* @param pIntValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks int类型的指定节点的值strKey取值可以参考XML节点参数类型列表
* IIntegerstrKey参数取值对应列表里面的
* @~english
* @brief Get Integer value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "Width" to get width
* @param pIntValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks You can call this API to get the value of camera node with integer type after connecting the device.
* For strKey value, refer to MvCameraNode. All the node values of "IInteger" in the list
* can be obtained via this API. strKey corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetIntValue(IN void* handle,IN const char* strKey,OUT MVCC_INTVALUE *pIntValue);
/********************************************************************//**
* @~chinese
* @brief Integer属性值
* @param handle [IN]
* @param strKey [IN] "Width"
* @param pIntValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks int类型的指定节点的值strKey取值可以参考XML节点参数类型列表
* IIntegerstrKey参数取值对应列表里面的
* @~english
* @brief Get Integer value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "Width" to get width
* @param pIntValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks You can call this API to get the value of camera node with integer type after connecting the device.
* For strKey value, refer to MvCameraNode. All the node values of "IInteger" in the list
* can be obtained via this API. strKey corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetIntValueEx(IN void* handle,IN const char* strKey,OUT MVCC_INTVALUE_EX *pIntValue);
/********************************************************************//**
* @~chinese
* @brief Integer型属性值
* @param handle [IN]
* @param strKey [IN] "Width"
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks int类型的指定节点的值strKey取值可以参考XML节点参数类型列表IIntegerstrKey参数取值对应列表里面的
* @~english
* @brief Set Integer value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "Width" to set width
* @param nValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks You can call this API to set the value of camera node with integer type after connecting the device. For strKey value, refer to MvCameraNode. All the node values of "IInteger" in the list can be obtained via this API. strKey corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetIntValue(IN void* handle,IN const char* strKey,IN unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief Integer型属性值
* @param handle [IN]
* @param strKey [IN] "Width"
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks int类型的指定节点的值strKey取值可以参考XML节点参数类型列表IIntegerstrKey参数取值对应列表里面的
* @~english
* @brief Set Integer value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "Width" to set width
* @param nValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks You can call this API to set the value of camera node with integer type after connecting the device. For strKey value, refer to MvCameraNode. All the node values of "IInteger" in the list can be obtained via this API. strKey corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetIntValueEx(IN void* handle,IN const char* strKey,IN int64_t nValue);
/********************************************************************//**
* @~chinese
* @brief Enum属性值
* @param handle [IN]
* @param strKey [IN] "PixelFormat"
* @param pEnumValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks Enum类型的指定节点的值strKey取值可以参考XML节点参数类型列表IEnumerationstrKey参数取值对应列表里面的
* @~english
* @brief Get Enum value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "PixelFormat" to get pixel format
* @param pEnumValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to get specified Enum nodes. For value of strKey, see MvCameraNode, The node values of IEnumeration can be obtained through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetEnumValue(IN void* handle,IN const char* strKey,OUT MVCC_ENUMVALUE *pEnumValue);
/********************************************************************//**
* @~chinese
* @brief Enum型属性值
* @param handle [IN]
* @param strKey [IN] "PixelFormat"
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks Enum类型的指定节点的值strKey取值可以参考XML节点参数类型列表IEnumerationstrKey参数取值对应列表里面的
* @~english
* @brief Set Enum value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
* @param nValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set specified Enum nodes. For value of strKey, see MvCameraNode, The node values of IEnumeration can be obtained through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetEnumValue(IN void* handle,IN const char* strKey,IN unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief Enum型属性值
* @param handle [IN]
* @param strKey [IN] "PixelFormat"
* @param sValue [IN]
* @return ,#MV_OK,,
* @remarks Enum类型的指定节点的值strKey取值可以参考XML节点参数类型列表IEnumerationstrKey参数取值对应列表里面的
* @~english
* @brief Set Enum value
* @param handle [IN] Device handle
* @param strKey [IN] Key value, for example, using "PixelFormat" to set pixel format
* @param sValue [IN] Feature String to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this API after connecting the device. All the values of nodes with IEnumeration type can be set via this API.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetEnumValueByString(IN void* handle,IN const char* strKey,IN const char* sValue);
/********************************************************************//**
* @~chinese
* @brief Float属性值
* @param handle [IN]
* @param strKey [IN]
* @param pFloatValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks float类型的指定节点的值strKey取值可以参考XML节点参数类型列表IFloatstrKey参数取值对应列表里面的
* @~english
* @brief Get Float value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param pFloatValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to get specified float node. For detailed strKey value see: MvCameraNode. The node values of IFloat can be obtained through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFloatValue(IN void* handle,IN const char* strKey,OUT MVCC_FLOATVALUE *pFloatValue);
/********************************************************************//**
* @~chinese
* @brief float型属性值
* @param handle [IN]
* @param strKey [IN]
* @param fValue [IN]
* @return ,#MV_OK,,
* @remarks float类型的指定节点的值strKey取值可以参考XML节点参数类型列表IFloatstrKey参数取值对应列表里面的
* @~english
* @brief Set float value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param fValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set specified float node. For detailed strKey value see: MvCameraNode. The node values of IFloat can be set through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetFloatValue(IN void* handle,IN const char* strKey,IN float fValue);
/********************************************************************//**
* @~chinese
* @brief Boolean属性值
* @param handle [IN]
* @param strKey [IN]
* @param pBoolValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks bool类型的指定节点的值strKey取值可以参考XML节点参数类型列表IBooleanstrKey参数取值对应列表里面的
* @~english
* @brief Get Boolean value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param pBoolValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to get specified bool nodes. For value of strKey, see MvCameraNode. The node values of IBoolean can be obtained through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBoolValue(IN void* handle,IN const char* strKey,OUT bool *pBoolValue);
/********************************************************************//**
* @~chinese
* @brief Boolean型属性值
* @param handle [IN]
* @param strKey [IN]
* @param bValue [IN]
* @return ,#MV_OK,,
* @remarks bool类型的指定节点的值strKey取值可以参考XML节点参数类型列表IBooleanstrKey参数取值对应列表里面的
* @~english
* @brief Set Boolean value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param bValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set specified bool nodes. For value of strKey, see MvCameraNode. The node values of IBoolean can be set through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBoolValue(IN void* handle,IN const char* strKey,IN bool bValue);
/********************************************************************//**
* @~chinese
* @brief String属性值
* @param handle [IN]
* @param strKey [IN]
* @param pStringValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks string类型的指定节点的值strKey取值可以参考XML节点参数类型列表IStringstrKey参数取值对应列表里面的
* @~english
* @brief Get String value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param pStringValue [IN][OUT] Structure pointer of camera features
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to get specified string nodes. For value of strKey, see MvCameraNode. The node values of IString can be obtained through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetStringValue(IN void* handle,IN const char* strKey,OUT MVCC_STRINGVALUE *pStringValue);
/********************************************************************//**
* @~chinese
* @brief String型属性值
* @param handle [IN]
* @param strKey [IN]
* @param sValue [IN]
* @return ,#MV_OK,,
* @remarks string类型的指定节点的值strKey取值可以参考XML节点参数类型列表IStringstrKey参数取值对应列表里面的
* @~english
* @brief Set String value
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @param sValue [IN] Feature value to set
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set specified string nodes. For value of strKey, see MvCameraNode. The node values of IString can be set through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetStringValue(IN void* handle,IN const char* strKey,IN const char * sValue);
/********************************************************************//**
* @~chinese
* @brief Command型属性值
* @param handle [IN]
* @param strKey [IN]
* @return ,#MV_OK,,
* @remarks Command类型节点strKey取值可以参考XML节点参数类型列表ICommandstrKey参数取值对应列表里面的
* @~english
* @brief Send Command
* @param handle [IN] Device handle
* @param strKey [IN] Key value
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set specified Command nodes. For value of strKey, see MvCameraNode. The node values of ICommand can be set through this interface, strKey value corresponds to the Name column.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetCommandValue(IN void* handle,IN const char* strKey);
/********************************************************************//**
* @~chinese
* @brief GenICam节点缓存
* @param handle [IN]
* @return #MV_OK
* @~english
* @brief Invalidate GenICam Nodes
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_InvalidateNodes(IN void* handle);
/************************************************************************/
/* 设备升级 和 寄存器读写 和异常、事件回调 */
/* Device upgrade, register read and write and exception callback */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pFilePathName [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Device Local Upgrade
* @param handle [IN] Device handle
* @param pFilePathName [IN] File name
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_LocalUpgrade(IN void* handle, const void *pFilePathName);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnProcess [OUT]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Get Upgrade Progress
* @param handle [IN] Device handle
* @param pnProcess [OUT] Progress receiving address
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this API to send the upgrade firmware to the device for upgrade. This API will wait for return until the upgrade firmware is sent to the device, this response may take a long time. \n
For CameraLink device, it keeps sending upgrade firmware continuously.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetUpgradeProcess(IN void* handle, unsigned int* pnProcess);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pBuffer [IN][OUT] 使
* @param nAddress [IN] Camera.xml文件中获取xxx_RegAddr的xml节点值
* @param nLength [IN]
* @return ,#MV_OK,,
* @remarks 访
* @~english
* @brief Read Memory
* @param handle [IN] Device Handle
* @param pBuffer [IN][OUT] Used as a return value, save the read-in memory value ( Memory value is stored in accordance with the big end model)
* @param nAddress [IN] 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
* @param nLength [IN] Length of the memory to be read
* @return Success, return #MV_OK. Failure, return error code
* @remarks Access device, read the data from certain register.
*************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_ReadMemory(IN void* handle , void *pBuffer, int64_t nAddress, int64_t nLength);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pBuffer [IN]
* @param nAddress [IN] Camera.xml文件中获取xxx_RegAddr的xml节点值
* @param nLength [IN]
* @return ,#MV_OK,,
* @remarks 访
* @~english
* @brief Write Memory
* @param handle [IN] Device Handle
* @param pBuffer [IN] Memory value to be written ( Note the memory value to be stored in accordance with the big end model)
* @param nAddress [IN] 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
* @param nLength [IN] Length of the memory to be written
* @return Success, return #MV_OK. Failure, return error code
* @remarks Access device, write a piece of data into a certain segment of register.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_WriteMemory(IN void* handle , const void *pBuffer, int64_t nAddress, int64_t nLength);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param cbException [IN]
* @param pUser [IN]
* @return ,#MV_OK,,
* @remarks MV_CC_OpenDevice打开设备之后调用GigE设备掉线之后需要先调用MV_CC_CloseDevice接口关闭设备MV_CC_OpenDevice接口重新打开设备
* @~english
* @brief Register Exception Message CallBack, call after open device
* @param handle [IN] Device handle
* @param cbException [IN] Exception Message CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this interface after the device is opened by MV_CC_OpenDevice. When device is exceptionally disconnected, the exception message can be obtained from callback function. For Disconnected GigE device, first call MV_CC_CloseDevice to shut device, and then call MV_CC_OpenDevice to reopen the device.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterExceptionCallBack(IN void* handle,
void(__stdcall* cbException)(unsigned int nMsgType, void* pUser), void* pUser);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param cbEvent [IN]
* @param pUser [IN]
* @return ,#MV_OK,,
* @remarks \n
CameraLink设备\n
windows版本和Linux版本下支持
* @~english
* @brief Register event callback, which is called after the device is opened
* @param handle [IN] Device handle
* @param cbEvent [IN] Event CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this API to set the event callback function to get the event information, e.g., acquisition, exposure, and so on. \n
This API is not supported by CameraLink device.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterAllEventCallBack(void* handle, void(__stdcall* cbEvent)(MV_EVENT_OUT_INFO * pEventInfo, void* pUser), void* pUser);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pEventName [IN]
* @param cbEvent [IN]
* @param pUser [IN]
* @return ,#MV_OK,,
* @remarks \n
CameraLink设备"设备掉线"
* @~english
* @brief Register single event callback, which is called after the device is opened
* @param handle [IN] Device handle
* @param pEventName [IN] Event name
* @param cbEvent [IN] Event CallBack Function Pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this API to set the event callback function to get the event information, e.g., acquisition, exposure, and so on. \n
This API is not supported by CameraLink device .
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterEventCallBackEx(void* handle, const char* pEventName,
void(__stdcall* cbEvent)(MV_EVENT_OUT_INFO * pEventInfo, void* pUser), void* pUser);
/************************************************************************/
/* GigEVision 设备独有的接口 */
/* GigEVision device specific interface */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief IP
* @param handle [IN]
* @param nIP [IN] IP
* @param nSubNetMask [IN]
* @param nDefaultGateWay [IN]
* @return ,#MV_OK,,
* @remarks IPGigEVision相机支持\n
DHCP的状态
* @~english
* @brief Force IP
* @param handle [IN] Device handle
* @param nIP [IN] IP to set
* @param nSubNetMask [IN] Subnet mask
* @param nDefaultGateWay [IN] Default gateway
* @return Success, return #MV_OK. Failure, return error code
* @remarks Force setting camera network parameter (including IP address, subnet mask, default gateway). After forced setting, device handle should be created again. This function is only supported by GigEVision camera.\n
If device is in DHCP status, after calling this API to force setting camera network parameter, the device will restart.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_ForceIpEx(IN void* handle, unsigned int nIP, unsigned int nSubNetMask, unsigned int nDefaultGateWay);
/********************************************************************//**
* @~chinese
* @brief IP方式
* @param handle [IN]
* @param nType [IN] IP类型MV_IP_CFG_x
* @return ,#MV_OK,,
* @remarks IP方式DHCPLLA等GigEVision相机支持
* @~english
* @brief IP configuration method
* @param handle [IN] Device handle
* @param nType [IN] IP type, refer to MV_IP_CFG_x
* @return Success, return #MV_OK. Failure, return error code
* @remarks Send command to set camera IP mode, such as DHCP and LLA, only supported by GigEVision.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetIpConfig(IN void* handle, unsigned int nType);
/********************************************************************//**
* @~chinese
* @brief 使,type: MV_NET_TRANS_x使driver
* @param handle [IN]
* @param nType [IN] MV_NET_TRANS_x
* @return ,#MV_OK,,
* @remarks SDK内部优先使用的网络模式使GigEVision相机支持
* @~english
* @brief Set to use only one mode,type: MV_NET_TRANS_x. When do not set, priority is to use driver by default
* @param handle [IN] Device handle
* @param nType [IN] Net transmission mode, refer to MV_NET_TRANS_x
* @return Success, return #MV_OK. Failure, return error code
* @remarksSet SDK internal priority network mode through this interface, drive mode by default, only supported by GigEVision camera.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetNetTransMode(IN void* handle, unsigned int nType);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstInfo [OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_StartGrabbing开启采集之后调用GigEVision相机支持
* @~english
* @brief Get net transmission information
* @param handle [IN] Device handle
* @param pstInfo [OUT] Information Structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks Get network transmission information through this API, including received data size, number of lost frames. Call this API after starting image acquiring through MV_CC_StartGrabbing. This API is supported only by GigEVision Camera.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetNetTransInfo(IN void* handle, MV_NETTRANS_INFO* pstInfo);
/********************************************************************//**
* @~chinese
* @brief GVSP取流超时时间
* @param handle [IN]
* @param nMillisec [IN] 300ms>10ms
* @return MV_OK
* @remarks GVSP取流超时时间GVSP取流超时设置过短可能造成图像异常
* @~english
* @brief Set GVSP streaming timeout
* @param handle [IN] Device handle
* @param nMillisec [IN] Timeout, default 300ms, range: >10ms
* @return Success, return MV_OK. Failure, return error code
* @remarks After the device is connected, and just before start streaming,
* call this interface to set GVSP streaming timeout value.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGvspTimeout(void* handle, unsigned int nMillisec);
/********************************************************************//**
* @~chinese
* @brief GVSP取流超时时间
* @param handle [IN]
* @param pnMillisec [IN]
* @return MV_OK
* @remarks GVSP取流超时时间
* @~english
* @brief Get GVSP streaming timeout
* @param handle [IN] Device handle
* @param pnMillisec [IN] Timeout, ms as unit
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to get the current GVSP streaming timeout.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGvspTimeout(IN void* handle, unsigned int* pnMillisec);
/********************************************************************//**
* @~chinese
* @brief GVCP命令超时时间
* @param handle [IN]
* @param nMillisec [IN] 500ms0-10000ms
* @return MV_OK
* @remarks GVCP命令超时时间
* @~english
* @brief Set GVCP cammand timeout
* @param handle [IN] Device handle
* @param nMillisec [IN] Timeout, default 500ms, range: 0-10000ms
* @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_CAMCTRL_API int __stdcall MV_GIGE_SetGvcpTimeout(void* handle, unsigned int nMillisec);
/********************************************************************//**
* @~chinese
* @brief GVCP命令超时时间
* @param handle [IN]
* @param pnMillisec [OUT]
* @return MV_OK
* @remarks GVCP超时时间
* @~english
* @brief Get GVCP cammand timeout
* @param handle [IN] Device handle
* @param pnMillisec [OUT] Timeout, ms as unit
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to get the current GVCP timeout.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGvcpTimeout(IN void* handle, unsigned int* pnMillisec);
/********************************************************************//**
* @~chinese
* @brief GVCP命令次数
* @param handle [IN]
* @param nRetryGvcpTimes [IN] 0-100
* @return MV_OK
* @remarks GVCP包传输异常时线0-100
* @~english
* @brief Set the number of retry GVCP cammand
* @param handle [IN] Device handle
* @param nRetryGvcpTimes [IN] The number of retriesrang0-100
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to increase The Times of retransmission when GVCP packet transmission is abnormal,and to some extent, it can avoid dropping the camera, with a range of 0-100.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetRetryGvcpTimes(IN void* handle, unsigned int nRetryGvcpTimes);
/********************************************************************//**
* @~chinese
* @brief GVCP命令次数
* @param handle [IN]
* @param pnRetryGvcpTimes [OUT]
* @return MV_OK
* @remarks GVCP重传次数3
* @~english
* @brief Get the number of retry GVCP cammand
* @param handle [IN] Device handle
* @param pnRetryGvcpTimes [OUT] The number of retries
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to get the current number of GVCP retransmissions, which defaults to 3.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetRetryGvcpTimes(IN void* handle, unsigned int* pnRetryGvcpTimes);
/********************************************************************//**
* @~chinese
* @brief packet sizeGigE设备
* @param handle [IN]
* @return packetsize
* @remarks packet sizeGigEVision设备是SCPSU3V设备是每次从驱动读取的包大小MV_CC_OpenDevice之后MV_CC_StartGrabbing之前调用 \n
CameraLink设备
* @~english
* @brief Get the optimal Packet Size, Only support GigE Camera
* @param handle [IN] Device handle
* @return Optimal packetsize
* @remarks To get optimized packet size, for GigEVision device is SCPS, for USB3Vision device is the size of packet read from drive each time, and it is the size of a packet transported on the network. The interface should be called after MV_CC_OpenDevice and before MV_CC_StartGrabbing. \n
This API is not supported by CameraLink device.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetOptimalPacketSize(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param bEnable [IN]
* @param nMaxResendPercent [IN]
* @param nResendTimeout [IN]
* @return #MV_OK
* @remarks GigEVision相机支持 \n
windows版本和Linux版本下支持
* @~english
* @brief Set whethe to enable resend, and set resend
* @param handle [IN] Device handle
* @param bEnable [IN] enable resend
* @param nMaxResendPercent [IN] Max resend persent
* @param nResendTimeout [IN] Resend timeout
* @return Success, return #MV_OK. Failure, return error code
* @remarks After the device is connected, call this interface to set resend packet properties, only supported by GigEVision camera.
************************************************************************/
#ifndef __cplusplus
MV_CAMCTRL_API int __stdcall MV_GIGE_SetResend(void* handle, unsigned int bEnable, unsigned int nMaxResendPercent, unsigned int nResendTimeout);
#else
MV_CAMCTRL_API int __stdcall MV_GIGE_SetResend(void* handle, unsigned int bEnable, unsigned int nMaxResendPercent = 10, unsigned int nResendTimeout = 50);
#endif
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nRetryTimes [IN] 20
* @return MV_OK
* @remarks MV_CC_StartGrabbing之前调用MV_E_CALLORDER
* @~english
* @brief set the max resend retry times
* @param handle [IN] Device handle
* @param nRetryTimes [IN] the max times to retry resending lost packetsdefault 20
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface must be called before MV_CC_StartGrabbing. Otherwise return MV_E_CALLORDER.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetResendMaxRetryTimes(void* handle, unsigned int nRetryTimes);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnRetryTimes [IN]
* @return MV_OK
* @~english
* @brief get the max resend retry times
* @param handle [IN] Device handle
* @param pnRetryTimes [OUT] the max times to retry resending lost packets
* @return Success, return MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetResendMaxRetryTimes(void* handle, unsigned int* pnRetryTimes);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nMillisec [IN] 10ms
* @return MV_OK
* @remarks MV_CC_StartGrabbing之前调用MV_E_CALLORDER
* @~english
* @brief set time interval between same resend requests
* @param handle [IN] Device handle
* @param nMillisec [OUT] the time interval between same resend requests, default 10ms
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface must be called before MV_CC_StartGrabbing. Otherwise return MV_E_CALLORDER.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetResendTimeInterval(void* handle, unsigned int nMillisec);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnMillisec [IN]
* @return MV_OK
* @~english
* @brief get time interval between same resend requests
* @param handle [IN] Device handle
* @param pnMillisec [OUT] the time interval between same resend requests
* @return Success, return MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetResendTimeInterval(void* handle, unsigned int* pnMillisec);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstTransmissionType [IN]
* @return #MV_OK
* @remarks GigEVision相机支持
* @~english
* @brief Set transmission type,Unicast or Multicast
* @param handle [IN] Device handle
* @param pstTransmissionType [IN] Struct of transmission type
* @return Success, return #MV_OK. Failure, return error code
* @remarks Call this API to set the transmission mode as single cast mode and multicast mode. And this API is only valid for GigEVision camera.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetTransmissionType(void* handle, MV_TRANSMISSION_TYPE * pstTransmissionType);
/********************************************************************//**
* @~chinese
* @brief
* @param pstActionCmdInfo [IN]
* @param pstActionCmdResults [OUT]
* @return #MV_OK
* @remarks GigEVision相机支持
* @~english
* @brief Issue Action Command
* @param pstActionCmdInfo [IN] Action Command
* @param pstActionCmdResults [OUT] Action Command Result List
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is supported only by GigEVision camera.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_IssueActionCommand(IN MV_ACTION_CMD_INFO* pstActionCmdInfo, OUT MV_ACTION_CMD_RESULT_LIST* pstActionCmdResults);
/************************************************************************/
/* XML解析树的生成 */
/* XML parse tree generation */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief XML
* @param handle [IN]
* @param pData [OUT] XML数据接收缓存
* @param nDataSize [IN]
* @param pnDataLen [OUT]
* @return #MV_OK
* @remarks pData为NULL或nDataSize比实际的xml文件小时pnDataLen返回xml文件大小\n
pData为有效缓存地址pnDataLen返回xml文件实际大小
* @~english
* @brief Get camera feature tree XML
* @param handle [IN] Device handle
* @param pData [OUT] XML data receiving buffer
* @param nDataSize [IN] Buffer size
* @param pnDataLen [OUT] Actual data length
* @return Success, return #MV_OK. Failure, return error code
* @remarks * @remarks When pData is NULL or nDataSize than the actual XML file hours, do not copy the data, returned by pnDataLen XML file size.\n
When pData is a valid cache address and the cache is large enough, copy the full data into the cache, and pnDataLen returns the actual size of the XML file.
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetGenICamXML(IN void* handle, IN OUT unsigned char* pData, IN unsigned int nDataSize, OUT unsigned int* pnDataLen);
/************************************************************************/
/* 附加接口 */
/* Additional interface */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief Bmp和Jpeg.50-99
* @param handle [IN]
* @param pSaveParam [IN][OUT]
* @return #MV_OK
* @remarks JPEG或者BMP等格式并存放在指定内存中MV_CC_GetOneFrameTimeout或者MV_CC_RegisterImageCallBackEx设置回调函数 \n
MV_CC_SaveImageEx2比MV_CC_SaveImageEx增加参数handle\n
windows版本和Linux版本下支持
* @~english
* @brief Save image, support Bmp and Jpeg. Encoding quality(50-99]
* @param handle [IN] Device handle
* @param pSaveParam [IN][OUT] Save image parameters structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks Once there is image data, you can call this API to convert the data. \n
You can also call MV_CC_GetOneFrameTimeout or MV_CC_RegisterImageCallBackEx or MV_CC_GetImageBuffer to get one image frame and set the callback function, and then call this API to convert the format. \n
Comparing with the API MV_CC_SaveImageEx, this API added the parameter handle to ensure the unity with other API.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SaveImageEx2(IN void* handle, MV_SAVE_IMAGE_PARAM_EX* pSaveParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstRotateParam [IN][OUT]
* @return MV_OK
* @remarks MONO8/RGB24/BGR24格式数据的90/180/270
* @~english
* @brief Rotate Image
* @param handle [IN] Device handle
* @param pstRotateParam [IN][OUT] Rotate image parameter structure
* @return Success, return MV_OK. Failure, return error code
* @remarks This API only support 90/180/270 rotation of data in the MONO8/RGB24/BGR24 format.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RotateImage(IN void* handle, IN OUT MV_CC_ROTATE_IMAGE_PARAM* pstRotateParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstFlipParam [IN][OUT]
* @return MV_OK
* @remarks MONO8/RGB24/BGR24格式数据的垂直和水平翻转
* @~english
* @brief Flip Image
* @param handle [IN] Device handle
* @param pstFlipParam [IN][OUT] Flip image parameter structure
* @return Success, return MV_OK. Failure, return error code
* @remarks This API only support vertical and horizontal reverse of data in the MONO8/RGB24/BGR24 format.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FlipImage(IN void* handle, IN OUT MV_CC_FLIP_IMAGE_PARAM* pstFlipParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstCvtParam [IN][OUT]
* @return #MV_OK
* @remarks MV_CC_GetOneFrameTimeout或者MV_CC_RegisterImageCallBack设置回调函数JPEG压缩的格式 \n
windows版本和Linux版本下支持
* @~english
* @brief Pixel format conversion
* @param handle [IN] Device handle
* @param pstCvtParam [IN][OUT] Convert Pixel Type parameter structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is used to transform the collected original data to pixel format and save to specified memory. There is no order requirement to call this API, the transformation will execute when there is image data. First call MV_CC_GetOneFrameTimeout or MV_CC_RegisterImageCallBackEx to set callback function, and get a frame of image data, then call this API to transform the format. \n
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_ConvertPixelType(IN void* handle, IN OUT MV_CC_PIXEL_CONVERT_PARAM* pstCvtParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param BayerCvtQuality [IN] Bayer的插值方法 0- 1-线 2-Hamilton
* @return #MV_OK
* @remarks MV_CC_ConvertPixelTypeMV_CC_SaveImageEx2接口内部使用的插值算法是该接口所设定的
* @~english
* @brief Interpolation algorithm type setting
* @param handle [IN] Device handle
* @param BayerCvtQuality [IN] Bayer interpolation method 0-nearest neighbour 1-bilinearity 2-Hamilton
* @return Success, return #MV_OK. Failure, return error code
* @remarks Set the bell interpolation quality parameters of the internal image conversion interface, and the interpolation algorithm used in the MV CC ConvertPixelType and MV CC SaveImageEx2 interfaces is set by this interface.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBayerCvtQuality(IN void* handle, IN unsigned int BayerCvtQuality);
/********************************************************************//**
* @~chinese
* @brief Bayer格式的Gamma信息
* @param handle [IN]
* @param pstGammaParam [IN] Gamma信息
* @return MV_OK
* @remarks MV_CC_ConvertPixelTypeMV_CC_SaveImageEx2接口将Bayer8/10/12/16RGB24/48 RGBA32/64BGR24/48BGRA32/64
* @~english
* @brief Set Gamma param
* @param handle [IN] Device handle
* @param pstGammaParam [IN] Gamma param
* @return Success, return MV_OK. Failure, return error code
* @remarks After setting the param, it work in the calling MV_CC_ConvertPixelType\MV_CC_SaveImageEx2 API convert Bayer8/10/12/16 to RGB24/48 RGBA32/64BGR24/48BGRA32/64.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBayerGammaParam(IN void* handle, IN MV_CC_GAMMA_PARAM* pstGammaParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstDecodeParam [IN][OUT]
* @return MV_OK
* @remarks
* @~english
* @brief High Bandwidth Decode
* @param handle [IN] Device handle
* @param pstDecodeParam [IN][OUT] High Bandwidth Decode parameter structure
* @return Success, return MV_OK. Failure, return error code
* @remarks Decode the lossless compressed data from the camera into raw data
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_HB_Decode(IN void* handle, IN OUT MV_CC_HB_DECODE_PARAM* pstDecodeParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pFileName [IN]
* @return #MV_OK
* @~english
* @brief Save camera feature
* @param handle [IN] Device handle
* @param pFileName [IN] File name
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FeatureSave(IN void* handle, IN const char* pFileName);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pFileName [IN]
* @return #MV_OK
* @~english
* @brief Load camera feature
* @param handle [IN] Device handle
* @param pFileName [IN] File name
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FeatureLoad(IN void* handle, IN const char* pFileName);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstFileAccess [IN]
* @return #MV_OK
* @~english
* @brief Read the file from the camera
* @param handle [IN] Device handle
* @param pstFileAccess [IN] File access structure
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FileAccessRead(IN void* handle, IN MV_CC_FILE_ACCESS * pstFileAccess);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstFileAccess [IN]
* @return #MV_OK
* @~english
* @brief Write the file to camera
* @param handle [IN] Device handle
* @param pstFileAccess [IN] File access structure
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_FileAccessWrite(IN void* handle, IN MV_CC_FILE_ACCESS * pstFileAccess);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstFileAccessProgress [IN]
* @return #MV_OK
* @~english
* @brief Get File Access Progress
* @param handle [IN] Device handle
* @param pstFileAccessProgress [IN] File access Progress
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFileAccessProgress(IN void* handle, OUT MV_CC_FILE_ACCESS_PROGRESS * pstFileAccessProgress);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstRecordParam [IN]
* @return #MV_OK
* @~english
* @brief Start Record
* @param handle [IN] Device handle
* @param pstRecordParam [IN] Record param structure
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StartRecord(IN void* handle, IN MV_CC_RECORD_PARAM* pstRecordParam);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstInputFrameInfo [IN]
* @return #MV_OK
* @~english
* @brief Input RAW data to Record
* @param handle [IN] Device handle
* @param pstInputFrameInfo [IN] Record data structure
* @return Success, return #MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_InputOneFrame(IN void* handle, IN MV_CC_INPUT_FRAME_INFO * pstInputFrameInfo);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return #MV_OK
* @remarks
* @~english
* @brief Stop Record
* @param handle [IN] Device handle
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StopRecord(IN void* handle);
/************************************************************************/
/* 不建议使用的接口 */
/* Interfaces not recommended */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstInfo [IN][OUT]
* @return , #MV_OK ,,
* @remarks CameraParams.h #MV_IMAGE_BASIC_INFO
* @~english
* @brief Get basic information of image
* @param handle [IN] Handle
* @param pstInfo [IN][OUT] Structure pointer of image basic information
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to the definition of #MV_IMAGE_BASIC_INFO in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetImageInfo(IN void* handle, IN OUT MV_IMAGE_BASIC_INFO* pstInfo);
/********************************************************************//**
* @~chinese
* @brief GenICam代理
* @param handle [IN]
* @return GenICam代理类指针 NULLNULL
* @~english
* @brief Get GenICam proxy
* @param handle [IN] Handle address
* @return GenICam proxy pointer, normal, return non-NULL; exception, return NULL
************************************************************************/
MV_CAMCTRL_API void* __stdcall MV_CC_GetTlProxy(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstNode [OUT]
* @return #MV_OK
* @remarks
* @~english
* @brief Get root node
* @param handle [IN] Handle
* @param pstNode [OUT] Root node information structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetRootNode(IN void* handle, IN OUT MV_XML_NODE_FEATURE* pstNode);
/********************************************************************//**
* @~chinese
* @brief xml中获取指定节点的所有子节点Root
* @param handle [IN]
* @param pstNode [IN]
* @param pstNodesList [OUT]
* @return #MV_OK
* @remarks
* @~english
* @brief Get all children node of specific node from xml, root node is Root
* @param handle [IN] Handle
* @param pstNode [IN] Root node information structure
* @param pstNodesList [OUT] Node information structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetChildren(IN void* handle, IN MV_XML_NODE_FEATURE* pstNode, IN OUT MV_XML_NODES_LIST* pstNodesList);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstNode [IN]
* @param pstFeature [OUT]
pstFeature MV_XML_FEATURE_x
* @return #MV_OK
* @remarks
* @~english
* @brief Get current node feature
* @param handle [IN] Handle
* @param pstNode [IN] Root node information structure
* @param pstFeature [OUT] Current node feature structure
Details of pstFeature refer to MV_XML_FEATURE_x
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetNodeFeature(IN void* handle, IN MV_XML_NODE_FEATURE* pstNode, IN OUT void* pstFeature);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param enType [IN]
* @param pstFeature [OUT]
* @return #MV_OK
* @remarks
* @~english
* @brief Update node
* @param handle [IN] Handle
* @param enType [IN] Node type
* @param pstFeature [OUT] Current node feature structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_UpdateNodeFeature(IN void* handle, IN enum MV_XML_InterfaceType enType, IN void* pstFeature);
// 有节点需要更新时的回调函数
// 当调用MV_XML_UpdateNodeFeature接口更新节点属性时注册的回调函数cbUpdate会在pstNodesList中返回与之相关联的节点
/********************************************************************//**
* @~chinese
* @fn MV_XML_RegisterUpdateCallBack
* @brief
* @param handle [IN]
* @param cbUpdate [IN]
* @param pUser [IN]
* @return #MV_OK
* @remarks
* @~english
* @brief Register update callback
* @param handle [IN] Handle
* @param cbUpdate [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_RegisterUpdateCallBack(IN void* handle,
IN void(__stdcall* cbUpdate)(enum MV_XML_InterfaceType enType, void* pstFeature, MV_XML_NODES_LIST* pstNodesList, void* pUser),
IN void* pUser);
/************************************************************************/
/* 弃用的接口 */
/* Abandoned interface */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief
MV_CC_GetOneFrameTimeOut接口
* @param handle [IN]
* @param pData [OUT]
* @param nDataSize [IN]
* @param pFrameInfo [OUT]
* @return #MV_OK
* @remarks
* @~english
* @brief Get one frame data, this function is using query to get data,
query whether the internal cache has data, return data if there has, return error code if no data
(This interface is abandoned, it is recommended to use the MV_CC_GetOneFrameTimeOut)
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data pointer
* @param nDataSize [IN] Recevied buffer size
* @param pFrameInfo [OUT] Image information structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetOneFrame(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO* pFrameInfo);
/********************************************************************//**
* @~chinese
* @brief trunck数据
MV_CC_GetOneFrameTimeOut接口
* @param handle [IN]
* @param pData [OUT]
* @param nDataSize [IN]
* @param pFrameInfo [OUT]
* @return #MV_OK
* @remarks
* @~english
* @brief Get one frame of trunck data, this function is using query to get data,
query whether the internal cache has data, return data if there has, return error code if no data
(This interface is abandoned, it is recommended to use the MV_CC_GetOneFrameTimeOut)
* @param handle [IN] Handle
* @param pData [OUT] Recevied image data pointer
* @param nDataSize [IN] Recevied buffer size
* @param pFrameInfo [OUT] Image information structure
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetOneFrameEx(IN void* handle, IN OUT unsigned char * pData , IN unsigned int nDataSize, IN OUT MV_FRAME_OUT_INFO_EX* pFrameInfo);
/********************************************************************//**
* @~chinese
* @brief MV_CC_RegisterImageCallBackEx接口
* @param handle [IN]
* @param cbOutput [IN]
* @param pUser [IN]
* @return #MV_OK
* @remarks
* @~english
* @brief Register image data callback (This interface is abandoned, it is recommended to use the MV_CC_RegisterImageCallBackEx)
* @param handle [IN] Handle
* @param cbOutput [IN] Callback function pointer
* @param pUser [IN] User defined variable
* @return Success, return #MV_OK. Failure, return error code
* @remarks
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterImageCallBack(void* handle,
void(__stdcall* cbOutput)(unsigned char * pData, MV_FRAME_OUT_INFO* pFrameInfo, void* pUser),
void* pUser);
/********************************************************************//**
* @~chinese
* @brief MV_CC_SaveImageEx2接口
* @param pSaveParam [IN][OUT]
- pData; // [IN] 输入数据缓存
- nDataLen; // [IN] 输入数据大小
- enPixelType; // [IN] 输入数据的像素格式
- nWidth; // [IN] 图像宽
- nHeight; // [IN] 图像高
- pImageBuffer; // [OUT] 输出图片缓存
- nImageLen; // [OUT] 输出图片大小
- nBufferSize; // [IN] 提供的输出缓冲区大小
- enImageType; // [IN] 输出图片格式
* @return #MV_OK
* @remarks
* @~english
* @brief Save image (This interface is abandoned, it is recommended to use the MV_CC_SaveImageEx2)
* @param pSaveParam [IN][OUT] Save image parameters structure
- pData; // [IN] Input data buffer
- nDataLen; // [IN] Input data size
- enPixelType; // [IN] Input data pixel format
- nWidth; // [IN] Width
- nHeight; // [IN] Height
- pImageBuffer; // [OUT] Output image buffer
- nImageLen; // [OUT] Output image size
- nBufferSize; // [IN] Provided output buffer size
- enImageType; // [IN] Output image type
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SaveImage(IN OUT MV_SAVE_IMAGE_PARAM* pSaveParam);
/********************************************************************//**
* @~chinese
* @brief Bmp和Jpeg.50-99 MV_CC_SaveImageEx2接口
* @param pSaveParam [IN][OUT]
pData; // [IN] 输入数据缓存
nDataLen; // [IN] 输入数据大小
enPixelType; // [IN] 输入数据的像素格式
nWidth; // [IN] 图像宽
nHeight; // [IN] 图像高
pImageBuffer; // [OUT] 输出图片缓存
nImageLen; // [OUT] 输出图片大小
nBufferSize; // [IN] 提供的输出缓冲区大小
enImageType; // [IN] 输出图片格式
nJpgQuality; // [IN] 编码质量, (50-99]
nReserved[4];
* @return #MV_OK
* @remarks
* @~english
* @brief Save image, support Bmp and Jpeg. Encoding quality, (50-99]
* @param pSaveParam [IN][OUT] Save image parameters structure
pData; // [IN] Input data buffer
nDataLen; // [IN] Input data size
enPixelType; // [IN] Pixel format of input data
nWidth; // [IN] Image width
nHeight; // [IN] Image height
pImageBuffer; // [OUT] Output image buffer
nImageLen; // [OUT] Output image size
nBufferSize; // [IN] Output buffer size provided
enImageType; // [IN] Output image format
nJpgQuality; // [IN] Encoding quality, (50-99]
nReserved[4];
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SaveImageEx(IN OUT MV_SAVE_IMAGE_PARAM_EX* pSaveParam);
/********************************************************************//**
* @~chinese
* @brief IP MV_GIGE_ForceIpEx接口
* @param handle [IN]
* @param nIP [IN] IP
* @return
* @remarks
* @~english
* @brief Force IP (This interface is abandoned, it is recommended to use the MV_GIGE_ForceIpEx)
* @param handle [IN] Handle
* @param nIP [IN] IP to set
* @return Refer to error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_ForceIp(IN void* handle, unsigned int nIP);
/********************************************************************//**
* @~chinese
* @brief MV_CC_RegisterEventCallBackEx接口
* @param handle [IN]
* @param cbEvent [IN]
* @param pUser [IN]
* @return
* @remarks
* @~english
* @brief Register event callback (this interface has been deprecated and is recommended to be converted to the MV_CC_RegisterEventCallBackEx interface)
* @param handle [IN] Handle
* @param cbEvent [IN] event callback pointer
* @param pUser [IN] User defined value
* @return Refer to error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterEventCallBack(void* handle,
void(__stdcall* cbEvent)(unsigned int nExternalEventId, void* pUser),
void* pUser);
/************************************************************************/
/* 相机参数获取和设置,此模块的所有接口,将逐步废弃,建议用万能接口代替 */
/* Get and set camara parameters, all interfaces of this module will be replaced by general interface*/
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* pstValue结构体的意义
* - unsigned int nCurValue; // 代表相机当前的宽度值
* - unsigned int nMax; // 表示相机允许的最大可设置的宽度值
* - unsigned int nMin; // 表示相机允许的最小可设置的宽度值
* - unsigned int nInc; // 表示相机设置的宽度增量必须是nInc的倍数否则无效
* @return ,#MV_OK,, ,
* @remarks
* @~english
* @brief Get image width
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Returns the information structure pointer about the camera's width for the caller
* The meaning of returns pstValue structure
* - unsigned int nCurValue; // Represents the current width value of the camera
* - unsigned int nMax; // Indicates the maximum settable width value allowed by the camera
* - unsigned int nMin; // Indicates the minimum settable width value allowed by the camera
* - unsigned int nInc; // Indicates that the width increment set by the camera must be a multiple of nInc, otherwise it is invalid
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Other Integer structure parameters interface can refer to this interface
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetWidth(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN] ,MV_CC_GetWidth接口返回的pstValue中的nInc的倍数才能设置成功
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set image width
* @param handle [IN] Camera Handle
* @param nValue [IN] To set the value of the camera width, note that the width value must be a multiple of nInc in the pstValue returned by the MV_CC_GetWidth interface
* @return Success, return #MV_OK, and the camera width will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetWidth(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get image height
* @param handle [IN] Camera handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera height to user
* @return Success, return #MV_OK, and return height information to the structure. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetHeight(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN] ,MV_CC_GetWidth接口返回的pstValue中的nInc的倍数才能设置成功
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set image height
* @param handle [IN] Camera Handle
* @param nValue [IN] Camera height value to set, note that this value must be times of nInc of pstValue returned by MV_CC_GetWidth
* @return Success, return #MV_OK, and the camera height will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetHeight(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief X偏移
* @param handle [IN]
* @param pstValue [IN][OUT] X偏移的信息结构体指针
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get image X offset
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera X offset to user
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetX(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief AOI偏移
* @param handle [IN]
* @param nValue [IN] AOI的值
* @return ,#MV_OK,AOI偏移将会更改为相应值,
* @remarks
* @~english
* @brief Set image X offset
* @param handle [IN] Camera Handle
* @param nValue [IN] Camera X offset value to set
* @return Success, return #MV_OK, and the camera X offset will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetX(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief Y偏移
* @param handle [IN]
* @param pstValue [IN][OUT] Y偏移的信息结构体指针
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get image Y offset
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera Y offset to user
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetY(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief AOI偏移
* @param handle [IN]
* @param nValue [IN] AOI的值
* @return ,#MV_OK,AOI偏移将会更改为相应值,
* @remarks
* @~english
* @brief Set image Y offset
* @param handle [IN] Camera Handle
* @param nValue [IN] Camera Y offset value to set
* @return Success, return #MV_OK, and the camera Y offset will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetY(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get exposure lower limit
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera exposure lower to user
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeLower(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set exposure lower limit
* @param handle [IN] Camera Handle
* @param nValue [IN] Exposure lower to set
* @return Success, return #MV_OK, and the camera exposure time lower limit value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeLower(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get exposure upper limit
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera exposure upper to user
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeUpper(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set exposure upper limit
* @param handle [IN] Camera Handle
* @param nValue [IN] Exposure upper to set
* @return Success, return #MV_OK, and the camera exposure time upper limit value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeUpper(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks #MV_CC_GetWidth
* @~english
* @brief Get brightness
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera brightness to user
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to #MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBrightness(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set brightness
* @param handle [IN] Camera Handle
* @param nValue [IN] Brightness upper to set
* @return Success, return #MV_OK, and the camera brightness value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBrightness(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* pstValue结构体的意义
* - float fCurValue; // 表示相机当前的帧率
* - float fMax; // 表示相机允许设置的最大帧率
* - float fMin; // 表示相机允许设置的最小帧率
* @return ,#MV_OK,, ,
* @remarks
* @~english
* @brief Get Frame Rate
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to camera frame rate to user
* The meaning of returns pstValue structure
* - float fCurValue; // Indicates the current frame rate of the camera
* - float fMax; // Indicates the maximum frame rate allowed by the camera
* - float fMin; // Indicates the minimum frame rate allowed by the camera
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Other interface of Float structure parameters can refer to this interface
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFrameRate(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param fValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set frame rate
* @param handle [IN] Camera Handle
* @param fValue [IN] Camera frame rate to set
* @return Success, return #MV_OK, and camera frame rate will be changed to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetFrameRate(IN void* handle, IN const float fValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* pstValue结构体的意义
* - float fCurValue; // 表示相机当前的帧率
* - float fMax; // 表示相机允许设置的最大帧率
* - float fMin; // 表示相机允许设置的最小帧率
* @return ,#MV_OK,, ,
* @remarks
* @~english
* @brief Get Gain
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to gain to user
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* - float fCurValue; // Camera current gain
* - float fMax; // The maximum gain camera allowed
* - float fMin; // The minimum gain camera allowed
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Other interface of Float structure parameters can refer to this interface
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetGain(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param fValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set Gain
* @param handle [IN] Camera Handle
* @param fValue [IN] Gain value to set
* @return Success, return #MV_OK, and the camera gain value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetGain(IN void* handle, IN const float fValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* pstValue结构体的意义
* - float fCurValue; // 表示相机当前的帧率
* - float fMax; // 表示相机允许设置的最大帧率
* - float fMin; // 表示相机允许设置的最小帧率
* @return ,#MV_OK,, ,
* @remarks
* @~english
* @brief Get exposure time
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Return pointer of information structure related to exposure time to user
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* - float fCurValue; // Camera current exposure time
* - float fMax; // The maximum exposure time camera allowed
* - float fMin; // The minimum exposure time camera allowed
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Other interface of Float structure parameters can refer to this interface
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetExposureTime(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param fValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set exposure time
* @param handle [IN] Camera Handle
* @param fValue [IN] Exposure time to set
* @return Success, return #MV_OK, and the camera exposure time value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetExposureTime(IN void* handle, IN const float fValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT] \n
* pstValue结构体的意义
* - unsigned int nCurValue; // 相机当前的像素格式,是枚举类型,比如说PixelType_Gvsp_Mono8, 这里获得的是其整型值,具体数值参照PixelType.h的MvGvspPixelType枚举类型
* - unsigned int nSupportedNum; // 相机支持的像素格式的个数
* - unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]; // 相机所有支持的像素格式对应的整型值列表,后面要设置像素格式时,参数必须是这个数组中的一种,否则无效
* @return ,#MV_OK,, ,
* @remarks PixelType.h CameraParams.h中相应的定义
* @~english
* @brief Get Pixel Format
* @param handle [IN] Camera Handle
* @param pstValue [IN][OUT] Returns the information structure pointer about pixel format for the caller \n
* The meaning of returns pstValue structure
* - unsigned int nCurValue; // The current pixel format of the camera, is the enumeration type, such as #PixelType_Gvsp_Mono8, here is the integer value, the specific value please refer to MvGvspPixelType enumeration type in PixelType.h
* - unsigned int nSupportedNum; // Number of pixel formats supported by the camera
* - unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]; // The integer values list correspond to all supported pixel formats of the camera, followed by when set the pixel format, the parameter must be one of this list, otherwise invalid
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Other interface of Enumeration structure parameters can refer to this interface, look for the corresponding definition in PixelType.h and CameraParams.h for the integer values of the enum type parameter
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetPixelFormat(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN] #MV_CC_SetPixelFormat(m_handle, #PixelType_Gvsp_RGB8_Packed);
* @return ,#MV_OK,,
* @remarks Get接口返回的nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]
* @~english
* @brief Set Pixel Format
* @param handle [IN] Camera Handle
* @param nValue [IN] The corresponding integer value for pixel format to be set, when calling this interface can be directly filled in enumeration values, such as MV_CC_SetPixelFormat(m_handle, PixelType_Gvsp_RGB8_Packed);
* @return Success, return #MV_OK, and the camera pixel format will change to the corresponding value. Failure, return error code
* @remarks Other interface of Enumeration structure parameters can refer to this interface, the enumeration type to be set must be one of the nSupportValue [#MV_MAX_XML_SYMBOLIC_NUM] returned by the Get interface, otherwise it will fail
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetPixelFormat(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks #MV_CC_GetPixelFormat CameraParams.h #MV_CAM_ACQUISITION_MODE
* @~english
* @brief Get acquisition mode
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of acquisition mode
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to #MV_CC_GetPixelFormat and definition of #MV_CAM_ACQUISITION_MODE in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAcquisitionMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set acquisition mode
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to acquisition mode
* @return Success, return #MV_OK, and the camera acquisition mode will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAcquisitionMode(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks #MV_CC_GetPixelFormat CameraParams.h MV_CAM_GAIN_MODE
* @~english
* @brief Get gain mode
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of gain mode
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to #MV_CC_GetPixelFormat and definition of #MV_CAM_GAIN_MODE in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetGainMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set gain mode
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to gain mode
* @return Success, return #MV_OK, and the camera gain mode will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetGainMode(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks #MV_CC_GetPixelFormat CameraParams.h #MV_CAM_EXPOSURE_AUTO_MODE
* @~english
* @brief Get auto exposure mode
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of auto exposure mode
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to #MV_CC_GetPixelFormat and definition of #MV_CAM_EXPOSURE_AUTO_MODE in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetExposureAutoMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set auto exposure mode
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to auto exposure mode
* @return Success, return #MV_OK, and the camera auto exposure mode will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetExposureAutoMode(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks #MV_CC_GetPixelFormat CameraParams.h #MV_CAM_TRIGGER_MODE
* @~english
* @brief Get trigger mode
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of trigger mode
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to #MV_CC_GetPixelFormat and definition of #MV_CAM_TRIGGER_MODE in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set trigger mode
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to trigger mode
* @return Success, return #MV_OK, and the camera trigger mode will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerMode(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks MV_CC_GetFrameRate
* @~english
* @brief Get tigger delay
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of trigger delay
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to MV_CC_GetFrameRate
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerDelay(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param fValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set tigger delay
* @param handle [IN] Handle
* @param fValue [IN] Trigger delay to set
* @return Success, return #MV_OK, and the camera trigger delay will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerDelay(IN void* handle, IN const float fValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks MV_CC_GetPixelFormat CameraParams.h MV_CAM_TRIGGER_SOURCE
* @~english
* @brief Get trigger source
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of trigger source
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to MV_CC_GetPixelFormat and definition of MV_CAM_TRIGGER_SOURCE in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerSource(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set trigger source
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to trigger source
* @return Success, return #MV_OK, and the camera trigger source will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerSource(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @return ,#MV_OK, ,
* @remarks
* @~english
* @brief Execute software trigger once (this interface only valid when the trigger source is set to software)
* @param handle [IN] Handle
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_TriggerSoftwareExecute(IN void* handle);
/********************************************************************//**
* @~chinese
* @brief Gamma类型
* @param handle [IN]
* @param pstValue [IN][OUT] Gamma类型的信息结构体指针
* @return ,#MV_OK,, ,
* @remarks MV_CC_GetPixelFormat CameraParams.h MV_CAM_GAMMA_SELECTOR
* @~english
* @brief Get Gamma mode
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of gamma mode
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to MV_CC_GetPixelFormat and definition of MV_CAM_GAMMA_SELECTOR in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetGammaSelector(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief Gamma类型
* @param handle [IN]
* @param nValue [IN] Gamma类型对应的整型值
* @return ,#MV_OK,Gamma类型将会更改为相应值,
* @remarks
* @~english
* @brief Set Gamma mode
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to gamma mode
* @return Success, return #MV_OK, and the camera gamma mode will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetGammaSelector(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief Gamma值
* @param handle [IN]
* @param pstValue [IN][OUT] Gamma值的信息结构体指针
* @return ,#MV_OK,, ,
* @remarks MV_CC_GetExposureTime
* @~english
* @brief Get Gamma value
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of gamma value
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to MV_CC_GetFrameRate
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetGamma(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief Gamma值
* @param handle [IN]
* @param fValue [IN] Gamma值
* @return ,#MV_OK,Gamma值将会更改为相应值,
* @~english
* @brief Set Gamma value
* @param handle [IN] Handle
* @param fValue [IN] Gamma value to set
* @return Success, return #MV_OK, and the camera gamma value will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetGamma(IN void* handle, IN const float fValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get sharpness
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of sharpness
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetSharpness(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set sharpness
* @param handle [IN] Handle
* @param nValue [IN] Sharpness to set
* @return Success, return #MV_OK, and the camera sharpness will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetSharpness(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get Hue
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of Hue
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetHue(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set Hue
* @param handle [IN] Handle
* @param nValue [IN] Hue to set
* @return Success, return #MV_OK, and the camera Hue will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetHue(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get Saturation
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of Saturation
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetSaturation(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set Saturation
* @param handle [IN] Handle
* @param nValue [IN] Saturation to set
* @return Success, return #MV_OK, and the camera Saturation will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetSaturation(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,, ,
* @remarks MV_CC_GetPixelFormat CameraParams.h MV_CAM_BALANCEWHITE_AUTO
* @~english
* @brief Get Auto white balance
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of auto white balance
* @return Success, return #MV_OK, and get the structure of the corresponding parameters. Failure, return error code
* @remarks Refer to MV_CC_GetPixelFormat and definition of MV_CAM_BALANCEWHITE_AUTO in CameraParams.h
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceWhiteAuto(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set Auto white balance
* @param handle [IN] Handle
* @param nValue [IN] Integer value to set corresponding to auto white balance
* @return Success, return #MV_OK, and the camera auto white balance will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceWhiteAuto(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get white balance red
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of white balance red
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioRed(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK, ,
* @remarks
* @~english
* @brief Set white balance red
* @param handle [IN] Handle
* @param nValue [IN] White balance red to set
* @return Success, return #MV_OK, and the camera white balance red will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioRed(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief 绿
* @param handle [IN]
* @param pstValue [IN][OUT] 绿
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get white balance green
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of white balance green
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioGreen(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief 绿
* @param handle [IN]
* @param nValue [IN] 绿
* @return ,#MV_OK, 绿,
* @remarks
* @~english
* @brief Set white balance green
* @param handle [IN] Handle
* @param nValue [IN] White balance green to set
* @return Success, return #MV_OK, and the camera white balance green will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioGreen(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get white balance blue
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of white balance blue
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioBlue(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK, ,
* @remarks
* @~english
* @brief Set white balance blue
* @param handle [IN] Handle
* @param nValue [IN] White balance blue to set
* @return Success, return #MV_OK, and the camera white balance blue will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioBlue(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get information type included by frame stamp
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of information type included by frame stamp
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFrameSpecInfoAbility(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set information type included by frame stamp
* @param handle [IN] Handle
* @param nValue [IN] Information type included by frame stamp to set
* @return Success, return #MV_OK, and the camera information type included by frame stamp will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetFrameSpecInfoAbility(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Get device user defined name
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of device name
* @return Success, return #MV_OK, and get the camera user defined name. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetDeviceUserID(IN void* handle, IN OUT MVCC_STRINGVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param chValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set device user defined name
* @param handle [IN] Handle
* @param chValue [IN] Device name
* @return Success, return #MV_OK, and set the camera user defined name. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetDeviceUserID(IN void* handle, IN const char* chValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get frame number trigger by once
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of frame number trigger by once
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBurstFrameCount(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set frame number trigger by once
* @param handle [IN] Handle
* @param nValue [IN] Frame number trigger by once to set
* @return Success, return #MV_OK, and the camera frame number trigger by once will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBurstFrameCount(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get line rate
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of line rate
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAcquisitionLineRate(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set line rate
* @param handle [IN] Handle
* @param nValue [IN] Line rate to set
* @return Success, return #MV_OK, and the camera line rate will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAcquisitionLineRate(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get heartbeat information
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of heartbeat information
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetHeartBeatTimeout(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set heartbeat information
* @param handle [IN] Handle
* @param nValue [IN] Heartbeat information to set
* @return Success, return #MV_OK, and the camera heartbeat information will change to the corresponding value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetHeartBeatTimeout(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get network packet size
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of network packet size
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCPSPacketSize(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @~english
* @brief Set network packet size
* @param handle [IN] Handle
* @param nValue [IN] Packet size to set
* @return Success, return #MV_OK, and change packet size to setting value. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCPSPacketSize(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pstValue [IN][OUT]
* @return ,#MV_OK,,
* @remarks MV_CC_GetWidth
* @~english
* @brief Get network packet sending delay
* @param handle [IN] Handle
* @param pstValue [IN][OUT] Structure pointer of network packet sending delay
* @return Success, return #MV_OK. Failure, return error code
* @remarks Refer to MV_CC_GetWidth
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCPD(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nValue [IN]
* @return ,#MV_OK,,
* @~english
* @brief Set network packet sending delay
* @param handle [IN] Handle
* @param nValue [IN] Packet delay to set
* @return Success, return #MV_OK, and change packet delay to setting value. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCPD(IN void* handle, IN const unsigned int nValue);
/********************************************************************//**
* @~chinese
* @brief IP地址0xa9fe0102 169.254.1.2
* @param handle [IN]
* @param pnIP [IN][OUT] IP地址
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Get receiver IP address, 0xa9fe0102 indicates 169.254.1.2
* @param handle [IN] Handle
* @param pnIP [IN][OUT] Receiver IP address
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCDA(IN void* handle, unsigned int* pnIP);
/********************************************************************//**
* @~chinese
* @brief IP地址
* @param handle [IN]
* unsigned int nIP [IN] IP地址
* @return ,#MV_OK,IP地址会更改为相应值,
* @remarks
* @~english
* @brief Set receiver IP address
* @param handle [IN] Handel
* unsigned int nIP [IN] Receiver IP address to set
* @return Success, return #MV_OK, and change receiver IP address to setting value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCDA(IN void* handle, unsigned int nIP);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnPort [IN][OUT]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Get transmitter port number
* @param handle [IN] Handle
* @param pnPort [IN][OUT] Transmitter port number
* @return Success, return #MV_OK. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCSP(IN void* handle, unsigned int* pnPort);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nPort [IN]
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set transmitter port number
* @param handle [IN] Handle
* @param nPort [IN] Transmitter port number to set
* @return Success, return #MV_OK, and change transmitter port number to setting value. Failure, return error code
* @remarks
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCSP(IN void* handle, unsigned int nPort);
/************************************************************************/
/* CameraLink 设备独有的接口,Linux 平台不支持 */
/* APIs only support CameraLink device, not supported on Linux */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nBaudrate [IN] CameraParams.h中宏定义#define MV_CAML_BAUDRATE_9600 0x00000001
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Set device bauderate using one of the CL_BAUDRATE_XXXX value
* @param handle [IN] Device handle
* @param nBaudrate [IN] baud rate to set. Refer to the CameraParams.h for parameter definitions, for example, #define MV_CAML_BAUDRATE_9600 0x00000001
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is supported only by CameraLink device.\n
This API supports calls when devices are not connected.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CAML_SetDeviceBauderate(IN void* handle, unsigned int nBaudrate);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnCurrentBaudrate [OUT] CameraParams.h中宏定义#define MV_CAML_BAUDRATE_9600 0x00000001
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Returns the current device bauderate, using one of the CL_BAUDRATE_XXXX value
* @param handle [IN] Device handle
* @param pnCurrentBaudrate [OUT] Return pointer of baud rate to user. Refer to the CameraParams.h for parameter definitions, for example, #define MV_CAML_BAUDRATE_9600 0x00000001
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is supported only by CameraLink device.\n
This API supports calls when devices are not connected.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CAML_GetDeviceBauderate(IN void* handle, unsigned int* pnCurrentBaudrate);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param pnBaudrateAblity [OUT] CameraParams.h中宏定义#define MV_CAML_BAUDRATE_9600 0x00000001
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Returns supported bauderates of the combined device and host interface
* @param handle [IN] Device handle
* @param pnBaudrateAblity [OUT] Return pointer of the supported bauderates to user. 'OR' operation results of the supported bauderates. Refer to the CameraParams.h for single value definitions, for example, #define MV_CAML_BAUDRATE_9600 0x00000001
* @return Success, return #MV_OK. Failure, return error code
* @remarks This API is supported only by CameraLink device.\n
This API supports calls when devices are not connected.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CAML_GetSupportBauderates(IN void* handle, unsigned int* pnBaudrateAblity);
/********************************************************************//**
* @~chinese
* @brief
* @param handle [IN]
* @param nMillisec [IN] , ms
* @return ,#MV_OK,,
* @remarks
* @~english
* @brief Sets the timeout for operations on the serial port
* @param handle [IN] Device handle
* @param nMillisec [IN] Timeout in [ms] for operations on the serial port.
* @return Success, return #MV_OK. Failure, return error code
* @return Success, return MV_OK. Failure, return error code
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CAML_SetGenCPTimeOut(IN void* handle, unsigned int nMillisec);
/************************************************************************/
/* U3V 设备独有的接口 */
/************************************************************************/
/********************************************************************//**
* @~chinese
* @brief U3V的传输包大小
* @param handle [IN]
* @param nTransferSize [IN] , Byte1Mrang>=0x10000
* @return ,MV_OK,,
* @remarks CPU占用率PC和不同USB扩展卡存在不同的兼容性
* @~english
* @brief Set transfer size of U3V device
* @param handle [IN] Device handle
* @param nTransferSize [IN] Transfer sizeBytedefault1Mrang>=0x10000
* @return Success, return MV_OK. Failure, return error code
* @remarks Increasing the transmission packet size can reduce the CPU utilization at the time of fetching. However, different PCS and different USB extension CARDS have different compatibility, and if this parameter is set too large, there may be the risk of not getting the image.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_USB_SetTransferSize(IN void* handle, unsigned int nTransferSize);
/********************************************************************//**
* @~chinese
* @brief U3V的传输包大小
* @param handle [IN]
* @param pnTransferSize [OUT] , Byte
* @return ,MV_OK,,
* @remarks U3V传输包大小1M
* @~english
* @brief Get transfer size of U3V device
* @param handle [IN] Device handle
* @param pnTransferSize [OUT] Transfer sizeByte
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to get the current U3V transfer packet size, default 1M.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_USB_GetTransferSize(IN void* handle, unsigned int* pnTransferSize);
/********************************************************************//**
* @~chinese
* @brief U3V的传输通道个数
* @param handle [IN]
* @param nTransferWays [IN] 1-10
* @return ,MV_OK,,
* @remarks PC的性能使PC和不同的USB扩展卡存在不同的兼容性
* @~english
* @brief Set transfer ways of U3V device
* @param handle [IN] Device handle
* @param nTransferWays [IN] Transfer waysrang1-10
* @return Success, return MV_OK. Failure, return error code
* @remarks Users can adjust this parameter according to PC performance, camera image frame rate, image size, memory utilization and other factors. But different PCS and different USB expansion CARDS have different compatibility.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_USB_SetTransferWays(IN void* handle, unsigned int nTransferWays);
/********************************************************************//**
* @~chinese
* @brief U3V的传输通道个数
* @param handle [IN]
* @param pnTransferWays [OUT]
* @return ,MV_OK,,
* @remarks U3V异步取流节点个数2000W设备的MONO8默认为3个YUV为默认2个RGB为默认1个8
* @~english
* @brief Get transfer ways of U3V device
* @param handle [IN] Device handle
* @param pnTransferWays [OUT] Transfer ways
* @return Success, return MV_OK. Failure, return error code
* @remarks This interface is used to get the current number of U3V asynchronous feed nodes. For 2000W camera, MONO8 defaults to 3, YUV defaults to 2, RGB defaults to 1, and other cases default to 8 nodes.
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_USB_GetTransferWays(IN void* handle, unsigned int* pnTransferWays);
#ifdef __cplusplus
}
#endif
#endif //_MV_CAMERA_CTRL_H_