You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1034 lines
57 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef _MV_CAMERA_CTRL_H_
#define _MV_CAMERA_CTRL_H_
#include "MvErrorDefine.h"
#include "CameraParams.h"
/**
* @brief 动态库导入导出定义
*/
#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
#ifndef MV_CAMCTRL_API
#define MV_CAMCTRL_API
#endif
#endif
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************/
/* 相机的基本指令和操作 */
/************************************************************************/
/************************************************************************
* @fn MV_CC_GetSDKVersion()
* @brief 获取SDK版本号
* @param
* @return 始终返回4字节版本号 |主 |次 |修正 | 测试|
8bits 8bits 8bits 8bits
************************************************************************/
MV_CAMCTRL_API unsigned int __stdcall MV_CC_GetSDKVersion();
/************************************************************************
* @fn MV_CC_EnumerateTls()
* @brief 获取支持的传输层
* @return 支持的传输层编号
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_EnumerateTls();
/************************************************************************
* @fn MV_CC_EnumDevices()
* @brief 枚举设备
* @param nTLayerType [IN] 枚举传输层
* @param pstDevList [OUT] 设备列表
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_EnumDevices(IN unsigned int nTLayerType, IN OUT MV_CC_DEVICE_INFO_LIST* pstDevList);
/************************************************************************
* @fn MV_CC_IsDeviceAccessible()
* @brief 设备是否可达
* @param pstDevInfo [IN] 设备信息结构体
* @param nAccessMode [IN] 访问权限
* @return 可达返回true不可达返回false
************************************************************************/
MV_CAMCTRL_API bool __stdcall MV_CC_IsDeviceAccessible(IN MV_CC_DEVICE_INFO* pstDevInfo, IN unsigned int nAccessMode);
/************************************************************************
* @fn MV_CC_CreateHandle()
* @brief 创建设备句柄
* @param handle [OUT] 句柄地址
* @param pstDevInfo [IN] 设备信息结构体
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CreateHandle(OUT void ** handle, IN const MV_CC_DEVICE_INFO* pstDevInfo);
/************************************************************************
* @fn MV_CC_DestroyHandle()
* @brief 销毁设备句柄
* @param handle [IN] 句柄
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_DestroyHandle(IN void * handle);
/************************************************************************
* @fn MV_CC_OpenDevice()
* @brief 打开设备
* @param handle [IN] 句柄
* @param nAccessMode [IN] 访问权限
* @param nSwitchoverKey [IN] 切换访问权限时的密钥
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
#ifdef __APPLE__
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
/***********************************************************************
* @fn MV_CC_CloseDevice
* @brief 关闭相机
* @param handle [IN] 句柄
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CloseDevice(IN void* handle);
/***********************************************************************
* @fn MV_CC_RegisterImageCallBack
* @brief 注册图像数据回调
* @param handle [IN] 句柄
* @param cbOutput [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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);
// 注册图像数据回调,chunk
/***********************************************************************
* @fn MV_CC_RegisterImageCallBackEx
* @brief 注册图像数据回调chunk
* @param handle [IN] 句柄
* @param cbOutput [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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);
/***********************************************************************
* @fn MV_CC_StartGrabbing
* @brief 开始取流
* @param handle [IN] 句柄
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StartGrabbing(IN void* handle);
/***********************************************************************
* @fn MV_CC_StopGrabbing
* @brief 停止取流
* @param handle [IN] 句柄
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_StopGrabbing(IN void* handle);
/***********************************************************************
* @fn MV_CC_GetOneFrame
* @brief 获取一帧图像,此函数为查询式获取,每次调用查询内部缓存有
无数据,有数据则范围数据,无数据返回错误码
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param nDataSize [IN] 接收缓存大小
* @param pFrameInfo [OUT] 图像信息结构体
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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);
/***********************************************************************
* @fn MV_CC_GetOneFrameEx
* @brief 获取一帧trunck数据此函数为查询式获取每次调用查询内部
缓存有无数据,有数据则范围数据,无数据返回错误码
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param nDataSize [IN] 接收缓存大小
* @param pFrameInfo [OUT] 图像信息结构体
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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);
// 显示一帧图像
/***********************************************************************
* @fn MV_CC_Display
* @brief 显示一帧图像,注册显示窗口,内部自动显示
* @param handle [IN] 句柄
* @param hWnd [IN] 显示窗口句柄
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_Display(IN void* handle, void* hWnd);
// 设置SDK内部图像缓存节点个数范围[1, 30],在抓图前调用
/***********************************************************************
* @fn MV_CC_SetImageNodeNum
* @brief 设置SDK内部图像缓存节点个数范围[1, 30],在抓图前调用
* @param handle [IN] 句柄
* @param nNum [IN] 缓存节点个数
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetImageNodeNum(IN void* handle, unsigned int nNum);
/************************************************************************/
/* XML解析树的生成 */
/************************************************************************/
/***********************************************************************
* @fn MV_XML_GetGenICamXML
* @brief 获取相机属性树XML
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param nDataSize [IN] 接收缓存大小
* @param pnDataLen [OUT] 实际数据大小
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetGenICamXML(IN void* handle, IN OUT unsigned char* pData, IN unsigned int nDataSize, OUT unsigned int* pnDataLen);
// 获取根节点
/***********************************************************************
* @fn MV_XML_GetRootNode
* @brief 获取根节点
* @param handle [IN] 句柄
* @param pstNode [OUT] 根节点信息结构体
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetRootNode(IN void* handle, IN OUT MV_XML_NODE_FEATURE* pstNode);
// 从xml中获取指定节点的所有子节点根节点为Root
/***********************************************************************
* @fn MV_XML_GetChildren
* @brief 从xml中获取指定节点的所有子节点根节点为Root
* @param handle [IN] 句柄
* @param pstNode [IN] 根节点信息结构体
* @param pstNodesList [OUT] 节点列表结构体
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetChildren(IN void* handle, IN MV_XML_NODE_FEATURE* pstNode, IN OUT MV_XML_NODES_LIST* pstNodesList);
//获得当前节点的属性
/***********************************************************************
* @fn MV_XML_GetNodeFeature
* @brief 获得当前节点的属性
* @param handle [IN] 句柄
* @param pstNode [IN] 根节点信息结构体
* @param pstFeature [OUT] 当前节点属性结构体,
pstFeature 具体结构体内容参考 MV_XML_FEATURE_x
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
MV_CAMCTRL_API int __stdcall MV_XML_GetNodeFeature(IN void* handle, IN MV_XML_NODE_FEATURE* pstNode, IN OUT void* pstFeature);
// pstFeature 具体结构体内容参考 MV_XML_FEATURE_x
/***********************************************************************
* @fn MV_XML_UpdateNodeFeature
* @brief 更新节点
* @param handle [IN] 句柄
* @param enType [IN] 节点类型
* @param pstFeature [OUT] 当前节点属性结构体
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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中返回与之相关联的节点
/***********************************************************************
* @fn MV_XML_RegisterUpdateCallBack
* @brief 注册更新回调
* @param handle [IN] 句柄
* @param cbUpdate [IN] 回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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);
/************************************************************************/
/* 相机参数获取和设置 */
/************************************************************************/
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetWidth(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取图像宽度
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机宽度的信息结构体指针
* 返回的pstValue结构体的意义
* unsigned int nCurValue; // 代表相机当前的宽度值
* unsigned int nMax; // 表示相机允许的最大可设置的宽度值
* unsigned int nMin; // 表示相机允许的最小可设置的宽度值
* unsigned int nInc; // 表示相机设置的宽度增量必须是nInc的倍数否则无效
* @return 成功,返回MV_OK,并获得相应参数信息的结构体, 失败, 返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetWidth(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetWidth(IN void* handle, IN const unsigned int nValue);
* @brief 设置图像宽度
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的相机宽度的值,注意此宽度值必须是MV_CC_GetWidth接口返回的pstValue中的nInc的倍数才能设置成功
* @return 成功,返回MV_OK,并且相机宽度将会更改为相应值,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetWidth(IN void* handle, IN const unsigned int nValue);
// 获取和设置图像高度
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetHeight(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取图像高度
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机高度的信息结构体指针
* @return 成功,返回MV_OK,并将高度信息返回到结构体中,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetHeight(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetHeight(IN void* handle, IN const unsigned int nValue);
* @brief 设置图像高度
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的相机宽度的值,注意此宽度值必须是MV_CC_GetWidth接口返回的pstValue中的nInc的倍数才能设置成功
* @return 成功,返回MV_OK,并且相机高度将会更改为相应值,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetHeight(IN void* handle, IN const unsigned int nValue);
// 获取和设置AOI的偏移
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetX(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取图像X偏移
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机X偏移的信息结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetX(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetX(IN void* handle, IN const unsigned int nValue);
* @brief 设置图像AOI偏移
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的相机AOI的值
* @return 成功,返回MV_OK,并且相机AOI偏移将会更改为相应值失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetX(IN void* handle, IN const unsigned int nValue);
// 获取和设置AOI的偏移
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetY(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取图像Y偏移
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机Y偏移的信息结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAOIoffsetY(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetX(IN void* handle, IN const unsigned int nValue);
* @brief 设置图像AOI偏移
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的相机AOI的值
* @return 成功,返回MV_OK,并且相机AOI偏移将会更改为相应值失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAOIoffsetY(IN void* handle, IN const unsigned int nValue);
// 调整自动曝光值下限
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeLower(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取曝光下限
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机曝光值下限结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeLower(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeLower(IN void* handle, IN const unsigned int nValue);
* @brief 设置曝光值下限
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的曝光值下限
* @return 成功,返回MV_OK,并且相机曝光下限将会更改为相应值,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeLower(IN void* handle, IN const unsigned int nValue);
//调整自动曝光值上限
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeUpper(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取曝光上限
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机曝光值上限结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetAutoExposureTimeUpper(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeUpper(IN void* handle, IN const unsigned int nValue);
* @brief 设置曝光值上限
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的曝光值上限
* @return 成功,返回MV_OK,并且相机曝光上限将会更改为相应值,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetAutoExposureTimeUpper(IN void* handle, IN const unsigned int nValue);
// 明亮度调整
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetBrightness(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
* @brief 获取亮度值
* @param void* handle [IN] 相机句柄
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机亮度结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBrightness(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetBrightness(IN void* handle, IN const unsigned int nValue);
* @brief 设置亮度值
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 想要设置的亮度值
* @return 成功,返回MV_OK,并且相机亮度将会更改为相应值,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBrightness(IN void* handle, IN const unsigned int nValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetFrameRate(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
* @brief 获取帧率
* @param void* handle [IN] 相机句柄
* MVCC_FLOATVALUE* pstValue [IN][OUT] 返回给调用者有关相机帧率的信息结构体指针
* 返回的pstValue结构体的意义
* float fCurValue; // 表示相机当前的帧率
* float fMax; // 表示相机允许设置的最大帧率
* float fMin; // 表示相机允许设置的最小帧率
* @return 成功,返回MV_OK,并获得相应参数信息的结构体, 失败, 返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFrameRate(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetFrameRate(IN void* handle, IN const float fValue);
* @brief 设置帧率
* @param void* handle [IN] 相机句柄
* const float fValue [IN] 想要设置的相机帧率
* @return 成功,返回MV_OK,并且相机帧率将会更改为相应值,失败,返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetFrameRate(IN void* handle, IN const float fValue);
// 调整增益值
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetGain(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
* @brief 获取增益
* @param void* handle [IN] 相机句柄
* MVCC_FLOATVALUE* pstValue [IN][OUT] 返回给调用者有关相机增益的信息结构体指针
* 返回的pstValue结构体的意义
* float fCurValue; // 表示相机当前的帧率
* float fMax; // 表示相机允许设置的最大帧率
* float fMin; // 表示相机允许设置的最小帧率
* @return 成功,返回MV_OK,并获得相应参数信息的结构体, 失败, 返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetGain(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetGain(IN void* handle, IN const float fValue);
* @brief 设置帧率
* @param void* handle [IN] 相机句柄
* const float fValue [IN] 想要设置的相机帧率
* @return 成功,返回MV_OK,并且相机帧率将会更改为相应值,失败,返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetGain(IN void* handle, IN const float fValue);
// 调整当前曝光值
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetExposureTime(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
* @brief 获取曝光时间
* @param void* handle [IN] 相机句柄
* MVCC_FLOATVALUE* pstValue [IN][OUT] 返回给调用者有关相机曝光时间的信息结构体指针
* 返回的pstValue结构体的意义
* float fCurValue; // 表示相机当前的帧率
* float fMax; // 表示相机允许设置的最大帧率
* float fMin; // 表示相机允许设置的最小帧率
* @return 成功,返回MV_OK,并获得相应参数信息的结构体, 失败, 返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetExposureTime(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetExposureTime(IN void* handle, IN const float fValue);
* @brief 设置曝光时间
* @param void* handle [IN] 相机句柄
* const float fValue [IN] 想要设置的相机帧率
* @return 成功,返回MV_OK,并且相机帧率将会更改为相应值,失败,返回错误码
*
* 其他浮点型结构体参数的接口可参照此接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetExposureTime(IN void* handle, IN const float fValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetPixelFormat(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
* @brief 获取像素格式
* @param void* handle [IN] 相机句柄
* MVCC_ENUMVALUE* pstValue [IN][OUT] 返回给调用者的有关像素格式的信息结构体指针
* 返回的pstValue结构体的意义
* unsigned int nCurValue; // 相机当前的像素格式,是枚举类型,比如说PixelType_Gvsp_Mono8, 这里获得的是其整型值,具体数值参照PixelType.h的MvGvspPixelType枚举类型
* unsigned int nSupportedNum; // 相机支持的像素格式的个数
* unsigned int nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]; // 相机所有支持的像素格式对应的整型值列表,后面要设置像素格式时,参数必须是这个数组中的一种,否则无效
* @return 成功,返回MV_OK,并获得相应参数信息的结构体, 失败, 返回错误码
*
其他枚举类型参数接口可参照此接口有关相应参数的枚举类型对应的整型值请查找PixelType.h 和 CameraParams.h中相应的定义
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetPixelFormat(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetPixelFormat(IN void* handle, IN const unsigned int nValue);
* @brief 设置像素格式
* @param void* handle [IN] 相机句柄
* const unsigned int nValue [IN] 要设置的像素格式对应的整型值调用此接口时可以直接填写枚举值如MV_CC_SetPixelFormat(m_handle, PixelType_Gvsp_RGB8_Packed);
* @return 成功,返回MV_OK,并且相机像素格式将会更改为相应值,失败,返回错误码
*
* 其他枚举类型参数接口可参照此接口要设置的枚举类型必须是Get接口返回的nSupportValue[MV_MAX_XML_SYMBOLIC_NUM]中的一种,否则会失败
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetPixelFormat(IN void* handle, IN const unsigned int nValue);
// 采集模式,参考 CameraParam.h 中的 MV_CAM_ACQUISITION_MODE 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetAcquisitionMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetAcquisitionMode(IN void* handle, IN const unsigned int nValue);
// 增益模式,参考 CameraParam.h 中的 MV_CAM_GAIN_MODE 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetGainMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetGainMode(IN void* handle, IN const unsigned int nValue);
// 自动曝光模式,参考 CameraParam.h 中的 MV_CAM_EXPOSURE_AUTO_MODE 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetExposureAutoMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetExposureAutoMode(IN void* handle, IN const unsigned int nValue);
// 触发模式,参考 CameraParam.h 中的 MV_CAM_TRIGGER_MODE 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerMode(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerMode(IN void* handle, IN const unsigned int nValue);
// 触发延时
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerDelay(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerDelay(IN void* handle, IN const float fValue);
// 触发源,参考 CameraParam.h 中的 MV_CAM_TRIGGER_SOURCE 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetTriggerSource(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetTriggerSource(IN void* handle, IN const unsigned int nValue);
// 软触发一次(接口仅在已选择的触发源为软件触发时有效)
MV_CAMCTRL_API int __stdcall MV_CC_TriggerSoftwareExecute(IN void* handle);
// Gamma 类型,参考 CameraParam.h 中的 MV_CAM_GAMMA_SELECTOR 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetGammaSelector(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetGammaSelector(IN void* handle, IN const unsigned int nValue);
// Gamma值
MV_CAMCTRL_API int __stdcall MV_CC_GetGamma(IN void* handle, IN OUT MVCC_FLOATVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetGamma(IN void* handle, IN const float fValue);
// 锐度
MV_CAMCTRL_API int __stdcall MV_CC_GetSharpness(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetSharpness(IN void* handle, IN const unsigned int nValue);
// 灰度
MV_CAMCTRL_API int __stdcall MV_CC_GetHue(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetHue(IN void* handle, IN const unsigned int nValue);
// 饱和度
MV_CAMCTRL_API int __stdcall MV_CC_GetSaturation(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetSaturation(IN void* handle, IN const unsigned int nValue);
// 自动白平衡,参考 CameraParam.h 中的 MV_CAM_BALANCEWHITE_AUTO 定义
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceWhiteAuto(IN void* handle, IN OUT MVCC_ENUMVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceWhiteAuto(IN void* handle, IN const unsigned int nValue);
// 白平衡 红
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioRed(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioRed(IN void* handle, IN const unsigned int nValue);
// 白平衡 绿
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioGreen(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioGreen(IN void* handle, IN const unsigned int nValue);
// 白平衡 蓝
MV_CAMCTRL_API int __stdcall MV_CC_GetBalanceRatioBlue(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetBalanceRatioBlue(IN void* handle, IN const unsigned int nValue);
// 获取水印信息内包含的信息类型
MV_CAMCTRL_API int __stdcall MV_CC_GetFrameSpecInfoAbility(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetFrameSpecInfoAbility(IN void* handle, IN const unsigned int nValue);
// 用户自定义ID
MV_CAMCTRL_API int __stdcall MV_CC_GetDeviceUserID(IN void* handle, IN OUT MVCC_STRINGVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetDeviceUserID(IN void* handle, IN const char* chValue);
// 获取和设置相机一次触发的帧数
MV_CAMCTRL_API int __stdcall MV_CC_GetBurstFrameCount(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetBurstFrameCount(IN void* handle, IN const unsigned int nValue);
// 获取和设置行频
MV_CAMCTRL_API int __stdcall MV_CC_GetAcquisitionLineRate(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetAcquisitionLineRate(IN void* handle, IN const unsigned int nValue);
// 获取图像基本信息
MV_CAMCTRL_API int __stdcall MV_CC_GetImageInfo(IN void* handle, IN OUT MV_IMAGE_BASIC_INFO* pstInfo);
MV_CAMCTRL_API int __stdcall MV_CC_GetDeviceInfo(IN void * handle, IN OUT MV_CC_DEVICE_INFO* pstDevInfo);
// 获取各种类型的信息
MV_CAMCTRL_API int __stdcall MV_CC_GetAllMatchInfo(IN void* handle, IN OUT MV_ALL_MATCH_INFO* pstInfo);
// 获取设备心跳信息
MV_CAMCTRL_API int __stdcall MV_CC_GetHeartBeatTimeout(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_CC_SetHeartBeatTimeout(IN void* handle, IN const unsigned int nValue);
// 万能接口
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetIntValue(IN void* handle,
IN const char* strKey,
OUT MVCC_INTVALUE *pIntValue);
* @brief 获取Integer属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取宽度信息则为"Width"
* @param MVCC_INTVALUE* pstValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetIntValue(IN void* handle,IN const char* strKey,OUT MVCC_INTVALUE *pIntValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetIntValue(IN void* handle,
IN const char* strKey,
IN unsigned int nValue);
* @brief 设置Integer型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取宽度信息则为"Width"
* const unsigned int nValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_OK,失败,返回错误码
*
* 其他整型结构体参数的接口可参照接口
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetIntValue(IN void* handle,IN const char* strKey,IN unsigned int nValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetEnumValue(IN void* handle,
IN const char* strKey,
OUT MVCC_ENUMVALUE *pEnumValue);
* @brief 获取Enum属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取像素格式信息则为"PixelFormat"
* @param MVCC_ENUMVALUE* pEnumValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetEnumValue(IN void* handle,IN const char* strKey,OUT MVCC_ENUMVALUE *pEnumValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetEnumValue(IN void* handle,
IN const char* strKey,
IN unsigned int nValue);
* @brief 设置Enum型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值,如获取像素格式信息则为"PixelFormat"
* const unsigned int nValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetEnumValue(IN void* handle,IN const char* strKey,IN unsigned int nValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetFloatValue(IN void* handle,
IN const char* strKey,
OUT MVCC_FLOATVALUE *pFloatValue);
* @brief 获取Float属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param MVCC_FLOATVALUE *pFloatValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetFloatValue(IN void* handle,IN const char* strKey,OUT MVCC_FLOATVALUE *pFloatValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetFloatValue(IN void* handle,
IN const char* strKey,
IN float fValue);
* @brief 设置Enum型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* float fValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetFloatValue(IN void* handle,IN const char* strKey,IN float fValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetBoolValue(IN void* handle,
IN const char* strKey,
OUT bool *pBoolValue);
* @brief 获取Boolean属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param bool *pBoolValue [IN][OUT] 返回给调用者有关相机属性值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetBoolValue(IN void* handle,IN const char* strKey,OUT bool *pBoolValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetBoolValue(IN void* handle,
IN const char* strKey,
IN bool bValue);
* @brief 设置Boolean型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* bool bValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetBoolValue(IN void* handle,IN const char* strKey,IN bool bValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetStringValue(IN void* handle,
IN const char* strKey,
OUT MVCC_STRINGVALUE *pStringValue);
* @brief 获取String属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @param MVCC_STRINGVALUE *pStringValue [IN][OUT] 返回给调用者有关相机属性结构体指针
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetStringValue(IN void* handle,IN const char* strKey,OUT MVCC_STRINGVALUE *pStringValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetStringValue(IN void* handle,
IN const char* strKey,
IN const char * sValue);
* @brief 设置String型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* char * sValue [IN] 想要设置的相机的属性值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetStringValue(IN void* handle,IN const char* strKey,IN const char * sValue);
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_SetCommandValue(IN void* handle,
IN const char* strKey);
* @brief 设置Command型属性值
* @param void* handle [IN] 相机句柄
* @param char* strKey [IN] 属性键值
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SetCommandValue(IN void* handle,IN const char* strKey);
/************************************************************************/
/* 设备升级 和 寄存器读写 和异常回调 */
/************************************************************************/
// 设备本地升级
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_LocalUpgrade(IN void* handle,
const void *pFilePathName);
* @brief 设备本地升级
* @param void* handle [IN] 相机句柄
* @param void *pFilePathName [IN] 文件名
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_LocalUpgrade(IN void* handle, const void *pFilePathName);
// 获取当前升级进度
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetUpgradeProcess(IN void* handle,
unsigned int* pnProcess);
* @brief 获取升级进度
* @param void* handle [IN] 相机句柄
* @param unsigned int* pnProcess [OUT] 进度接收地址
* @return 成功,返回MV_OK,失败,返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetUpgradeProcess(IN void* handle, unsigned int* pnProcess);
// 获取最佳的packet size对应GigEVision设备是 SCPS对应U3V设备是每次从驱动读取的包大小
/************************************************************************
* @fn MV_CAMCTRL_API int __stdcall MV_CC_GetOptimalPacketSize(IN void* handle);
* @brief 获取最佳的packet size对应GigEVision设备是 SCPS对应U3V设备是每次从驱动读取的包大小
* @param void* handle [IN] 相机句柄
* @return 最佳packetsize
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_GetOptimalPacketSize(IN void* handle);
/************************************************************************
* @fn MV_CC_ReadMemory
* @brief 读内存
* @param handle设备句柄
* @param pBuffer作为返回值使用保存读到的内存值内存值是按照大端模式存储的
* @param nAddress待读取的内存地址该地址可以从设备的Camera.xml文件中获取形如xxx_RegAddr的xml节点值
设备的Camera.xml文件会在设备打开之后自动生成在应用程序的当前目录中
* @param nLength待读取的内存长度
* @return 见返回错误码
*************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_ReadMemory(IN void* handle , void *pBuffer, int64_t nAddress, int64_t nLength);
/************************************************************************
* @fn MV_CC_WriteMemory
* @brief 写内存
* @param handle设备句柄
* @param pBuffer待写入的内存值注意内存值要按照大端模式存储
* @param nAddress待写入的内存地址该地址可以从设备的Camera.xml文件中获取形如xxx_RegAddr的xml节点值
设备的Camera.xml文件会在设备打开之后自动生成在应用程序的当前目录中
* @param nLength待写入的内存长度
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_WriteMemory(IN void* handle , const void *pBuffer, int64_t nAddress, int64_t nLength);
// 注册异常消息回调,在打开设备之后调用
/************************************************************************
* @fn MV_CC_RegisterExceptionCallBack
* @brief 注册异常消息回调,在打开设备之后调用
* @param handle设备句柄
* @param cbException [IN] 异常回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterExceptionCallBack(IN void* handle,
void(__stdcall* cbException)(unsigned int nMsgType, void* pUser),
void* pUser);
// 注册EVENT异常回调在打开设备之后调用,只支持GIGE
/************************************************************************
* @fn MV_CC_RegisterEventCallBack
* @brief 注册事件回调,在打开设备之后调用
* @param handle设备句柄
* @param cbEvent [IN] 异常回调函数指针
* @param pUser [IN] 用户自定义变量
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_RegisterEventCallBack(void* handle,
void(__stdcall* cbEvent)(unsigned int nExternalEventId, void* pUser),
void* pUser);
/************************************************************************/
/* GigEVision 设备独有的接口 */
/************************************************************************/
// 强制IP
/************************************************************************
* @fn MV_GIGE_ForceIp
* @brief 强制IP
* @param handle设备句柄
* @param nIP [IN] 设置的IP
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_ForceIp(IN void* handle, unsigned int nIP);
// 配置IP方式typeMV_IP_CFG_x
/************************************************************************
* @fn MV_GIGE_SetIpConfig
* @brief 配置IP方式
* @param handle设备句柄
* @param nType [IN] IP类型见MV_IP_CFG_x
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetIpConfig(IN void* handle, unsigned int nType);
// 设置仅使用某种模式,type: MV_NET_TRANS_x不设置时默认优先使用driver
/************************************************************************
* @fn MV_GIGE_SetNetTransMode
* @brief 设置仅使用某种模式,type: MV_NET_TRANS_x不设置时默认优先使用driver
* @param handle设备句柄
* @param nType [IN] 网络传输模式见MV_NET_TRANS_x
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetNetTransMode(IN void* handle, unsigned int nType);
/************************************************************************
* @fn MV_GIGE_GetNetTransInfo
* @brief 获取网络传输信息
* @param handle设备句柄
* @param pstInfo [OUT] 信息结构体
* @return 见返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_GetNetTransInfo(IN void* handle, MV_NETTRANS_INFO* pstInfo);
// 配置网络包大小
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCPSPacketSize(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCPSPacketSize(IN void* handle, IN const unsigned int nValue);
// 配置网络包发送间隔
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCPD(IN void* handle, IN OUT MVCC_INTVALUE* pstValue);
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCPD(IN void* handle, IN const unsigned int nValue);
// 配置接收端IP地址0xa9fe0102 表示 169.254.1.2
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCDA(IN void* handle, unsigned int* pnIP);
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCDA(IN void* handle, unsigned int nIP);
// 配置发送端的端口号
MV_CAMCTRL_API int __stdcall MV_GIGE_GetGevSCSP(IN void* handle, unsigned int* pnPort);
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGevSCSP(IN void* handle, unsigned int nPort);
/************************************************************************
* @fn MV_CC_CreateHandleWithoutLog
* @brief 创建设备句柄,不生成日志
* @param handle [OUT] 句柄地址
* @param pstDevInfo [IN] 设备信息结构体
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_CreateHandleWithoutLog(OUT void ** handle, IN const MV_CC_DEVICE_INFO* pstDevInfo);
// 附加接口
/************************************************************************
* @fn MV_CC_SaveImage
* @brief 保存图片
* @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错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SaveImage(IN OUT MV_SAVE_IMAGE_PARAM* pSaveParam);
// 附加接口 支持Bmp和Jpeg.编码质量在50-99之前
/************************************************************************
* @fn MV_CC_SaveImageEx
* @brief 保存图片
* @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错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_CC_SaveImageEx(IN OUT MV_SAVE_IMAGE_PARAM_EX* pSaveParam);
// 设置gvcp超时时间
/************************************************************************
* @fn MV_GIGE_SetGvcpTimeout
* @brief 设置GVCP命令超时时间
* @param handle [IN] 句柄地址
* @param nMillisec [IN] 超时时间以毫秒位单位范围0-10000
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetGvcpTimeout(void* handle, unsigned int nMillisec);
/************************************************************************
* @fn MV_GIGE_SetResend
* @brief 设置是否打开重发包支持,及重发包设置
* @param handle [IN] 句柄地址
* @param bEnable [IN] 是否支持重发包
* @param nMaxResendPercent [IN] 最大重发比
* @param nResendTimeout [IN] 重发超时时间
* @return 成功返回MV_OK错误返回错误码
************************************************************************/
MV_CAMCTRL_API int __stdcall MV_GIGE_SetResend(void* handle, unsigned int bEnable, unsigned int nMaxResendPercent = 10, unsigned int nResendTimeout = 50);
// 调试命令
// GenICam传输层代理类在open之后调用。正常返回值非NULL异常返回NULL
/************************************************************************
* @fn MV_CC_GetTlProxy
* @brief 获取GenICam代理
* @param handle [IN] 句柄地址
* @return GenICam代理类指针
************************************************************************/
MV_CAMCTRL_API void* __stdcall MV_CC_GetTlProxy(IN void* handle);
/************************************************************************/
/* 对取流平稳性要求极高的用户建议调用以下带Timeout的接口替换原先的 */
/************************************************************************/
// 等待方式获取一帧图像
/***********************************************************************
* @fn MV_CC_GetOneFrameTimeout
* @brief 采用超时机制获取一帧图片SDK内部等待直到有数据时返回
此接口可以增加取流平稳性,适合用于对平稳性要求较高的场合
* @param handle [IN] 句柄
* @param pData [OUT] 图像数据接收指针
* @param nDataSize [IN] 接收缓存大小
* @param pFrameInfo [OUT] 图像信息结构体
* @param nMsec [IN] 等待超时时间
* @return 成功返回MV_OK错误返回错误码
***********************************************************************/
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, int nMsec);
#ifdef __cplusplus
}
#endif
#endif //_MV_CAMERA_CTRL_H_