资源描述
工业相机SDK
接口设计阐明书
编制
审核
批准
目录
1. 简介 3
1.1 目的及范畴 3
1.2 有关术语 3
1.3 参照资料 3
2. 分析设计 5
2.1 设计思想 5
2.2 接口构造 5
2.3 数据流分析 6
3. 接口描述(C++接口) 8
3.1 传播层工厂类 8
3.2 设备控制类 11
3.3 GenApi 16
4. 接口描述(C接口) 21
4.1 相机控制通用接口 21
4.2 XML有关接口 37
4.3 GigEVision相机特有接口 41
4.4 U3V相机特有接口 43
5. 数据构造描述 44
5.1 MV_GIGE_DEVICE_INFO (GigE设备信息) 44
5.2 MV_USB3_DEVICE_INFO (USB3设备信息) 45
5.3 MV_CC_DEVICE_INFO(相机信息统一构造体) 45
5.4 MV_FRAME_OUT_INFO(输出帧信息) 46
5.5 MV_XML_NODE_FEATURE(xml节点基本信息) 47
6. 修订记录 48
1. 简介
1.1 目的及范畴
本文档目是设计一套工业相机SDK统一接口,兼容GigEVision、1394、U3V和CameraLink等原则合同。业务层软件可同步调用GenApi和这套接口,以实现对相机控制。当前版本仅支持GigEVision和U3V两种传播合同,因此重要依照《GigEVisionSDK产品需求规格阐明书》和《USB3VisionSDK产品需求规格阐明书》进行设计,此后会在此版本基本上逐渐完善。
本文档预期读者是项目经理、软件详细设计者、软件开发人员、测试人员和项目管理人员等。
1.2 有关术语
术语/缩写
含义
GigEVision
GigE Vision是由自动化影像协会AIA(Automated Imaging Association)发起指定一种基于千兆以太网图像传播原则。具备传播距离长(无中继时100米)、传播效率高并可向上升级到万兆网、通信控制以便、软硬件互换性强、可靠性高等长处,是将来数字图像领域重要接口原则,必将被越来越多商家多采用。
U3V
全称USB3 Vision,是一种基于USB3.0技术传播合同,传播速度快。
SDK
应用软件开发包。
GenICam
通用相机接口,属于上层应用开发通用接口合同。
GenApi
GenICam相机接口某些
1.3 参照资料
1. 《GigEVisionSDK产品需求规格阐明书.doc》 .
2. 《USB3VisionSDK产品需求规格阐明书.doc》.
3. 《GenICam_Standard_v2_0.pdf》.
4. eBUS SDK C++ API.chm.
5. FlyCapture2 C Documentation.chm.
6. FlyCapture2SDKHelp.chm
7. JAI SDK.chm
8. ImagingSource.chm.
9. PylonCSDK.chm
2. 分析设计
2.1 设计思想
工业相机SDK设计一方面考虑是支持各种相机合同,提取共性后设计通用接口和构造体,使得上层应用软件不需要关怀详细相机合同。另一方面要支持GenICam,把GenApi引入作为SDK接口一某些。但由于GenApi是C++类形式接口,为保持接口风格一致性和顾客需求,咱们也需要设计一套C++接口。此外,为简化SDK调用流程和上层软件开发难度,咱们还要设计一套C接口。最后遵循SDK易扩展性设计了这套SDK。
2.2 接口构造
接口分C++和C两套:
2.2.1 C++接口
当前版本重要包括3个类:
1. 传播层工厂类,通过该类获取单件实例,然后枚举在线设备,以及创立和销毁设备;
2. 设备控制类,通过该类控制指定设备,涉及启动停止设备、获取图像等;
3. GenApi,通过该模块可以获取和设立相机参数。
2.2-1接口构造图
2.2.2 C接口
C接口分为四个方向:
1. 相机控制通用接口,包括创立句柄、连接设备、获取图像数据等;
2. XML有关接口,内部封装了GenICam,实现XML解析和所有相机参数节点获取及设立;
3. GigEVision相机特有接口,如强制IP、设立网络驱动模式等;
4. U3V相机特有接口。
2.3 数据流分析
2.3-1数据流图
3. 接口描述(C++接口)
C++接口以类形式提供,因此接口描述也按照类来划分,可划分为三大模块:
3.1 传播层工厂类
3.1.1 GetInstance
功能阐明
获取传播层工厂单件
接口所在位置
TlFactory.h
调用上下文或依赖对象描述
调用SDK其她功能接口前,需要先调用此接口
函数办法
staticCTlFactory&GetInstance();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
返回传播层工厂单件
解决过程
把工厂内部定义静态成员单件实例返回
备注
无
示例
CTlFactory&tlFactory = CTlFactory::GetInstance();
3.1.2 EnumerateTls
功能阐明
枚举支持传播层类型
接口所在位置
TlFactory.h
调用上下文或依赖对象描述
需要先获取工厂实例
函数办法
staticCTlFactory&GetInstance();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
返回支持传播层类型
解决过程
略
备注
无
示例
// 2.枚举支持传播层类型
unsignedintnSupportedTls = tlFactory.EnumerateTls();
if (MV_GIGE_DEVICE == (nSupportedTls&MV_GIGE_DEVICE))
{
MyGigETest();
}
3.1.3 EnumDevices
功能阐明
枚举子网内,指定传播合同相应所有设备
接口所在位置
TlFactory.h
调用上下文或依赖对象描述
需要先获取工厂实例,枚举设备获取设备信息后,可创立设备实例
函数办法
virtualintEnumDevices( unsignedintnTLayerType ,MV_CC_DEVICE_INFO_LIST&stDevList );
输入
参数代码/名称
数据类型
参数阐明
nTLayerType
unsigned int
传播层合同类型
stDevList
MV_CC_DEVICE_INFO_LIST&
设备信息列表
输出
参数代码/名称
数据类型
参数阐明
stDevList
MV_CC_DEVICE_INFO_LIST&
设备信息列表
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
由指定合同类型,广播相应消息,发现设备并记录设备信息
备注
无
示例
MV_CC_DEVICE_INFO_LISTstDevList;
memset(&stDevList,0,sizeof(MV_CC_DEVICE_INFO_LIST));
intnRet = tlFactory.EnumDevices(MV_GIGE_DEVICE,stDevList);
if (MV_OK != nRet)
{
printf("error:EnumDevices [%x]\n",nRet);
return 1;
}
3.1.4 CreateDevice
功能阐明
创立设备实例
接口所在位置
TlFactory.h
调用上下文或依赖对象描述
需要先获取设备信息后,才干创立设备实例
函数办法
virtualIMvDevice* CreateDevice( constMV_CC_DEVICE_INFO&device );
输入
参数代码/名称
数据类型
参数阐明
device
const MV_CC_DEVICE_INFO&
指定设备信息
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回设备实例;失败,返回NULL
解决过程
由输入设备信息,创立相应类型设备对象
备注
无
示例
// 由设备信息创立设备实例
CMvGigEDevice* MyDevice =dynamic_cast<CMvGigEDevice*>(tlFactory.CreateDevice(*(stDevList.pDeviceInfo[i])));
if (NULL == MyDevice)
{
printf("error:CreateDevice\n");
break;
}
3.1.5 DestroyDevice
功能阐明
销毁设备实例及相应资源
接口所在位置
TlFactory.h
调用上下文或依赖对象描述
前提是已创立设备实例
函数办法
virtualintDestroyDevice( IMvDevice* );
输入
参数代码/名称
数据类型
参数阐明
pDevice
IMvDevice
设备实例
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回设备实例;失败,返回错误码
解决过程
释放指定设备实例内部资源,然后删除映射表内设备信息
备注
无
示例
// 从工厂中销毁设备
intnRet = tlFactory.DestroyDevice(MyDevice);
if (MV_OK != nRet)
{
printf("warning:DestroyDevice fail [%x]\n",nRet);
}
3.2 设备控制类
3.2.1 Open
功能阐明
打开设备
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已创立设备实例
函数办法
virtualintOpen();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
连接设备,获取设备独占权限
备注
无
示例
intnRet = MyDevice->Open();
if (MV_OK != nRet)
{
printf("error:Open [%x]\n",nRet);
continue;
}
3.2.2 Close
功能阐明
关闭设备
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已打开设备
函数办法
virtualintClose();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
断开设备连接,释放独占权限
备注
无
示例
intnRet = MyDevice->Close();
if (MV_OK != nRet)
{
printf("warning:Close fail [%x]\n",nRet);
}
3.2.3 StartGrabbing
功能阐明
开始采集图像
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已打开设备
函数办法
virtualintClose();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
控制设备按照指定像素格式和方式开始采集图像
备注
无
示例
intnRet = MyDevice->StartGrabbing ();
if (MV_OK != nRet)
{
printf("error:StartGrabbing [%x]\n",nRet);
break;
}
3.2.4 StopGrabbing
功能阐明
停止采集图像
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已开始采集图像
函数办法
virtualintClose();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
控制设备停止采集数据
备注
无
示例
intnRet = MyDevice->StopGrabbing ();
if (MV_OK != nRet)
{
printf("warning:StopGrabbing fail [%x]\n",nRet);
}
3.2.5 GetGenICamXML
功能阐明
获取设备XML文献
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已启动设备
函数办法
virtualintGetGenICamXML(unsignedchar* pData,unsignedintnDataSize,unsignedint* pnDataLen);
输入
参数代码/名称
数据类型
参数阐明
pData
unsigned char*
待拷入数据缓存地址
nDataSize
unsigned int
缓存大小
输出
参数代码/名称
数据类型
参数阐明
pnDataLen
unsigned int*
输出XML文献数据长度
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
从设备读取XML文献,并输出
备注
当pData为NULL或nDataSize比实际xml文献小时,不拷贝数据,由pnDataLen返回xml文献大小;
当pData为有效缓存地址,且缓存足够大时,拷贝完整数据,并由pnDataLen返回xml文献大小。
示例
unsignedintnXMLDataLen = 0;
intnRet = MyDevice->GetGenICamXML(pXMLBuf,MAX_XML_FILE_SIZE,&nXMLDataLen);
if (MV_OK != nRet || nXMLDataLen>MAX_XML_FILE_SIZE)
{
printf("error:GetGenICamXML failed![%x]\n",nRet);
break;
}
3.2.6 GetTlProxy
功能阐明
获取GenICam使用传播层代理类
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已创立设备实例,已打开设备
函数办法
virtualTlProxyGetTlProxy();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回传播层代理;失败,返回NULL
解决过程
创立传播层代理类,内部实现共享设备独占权限
备注
无
示例
TlProxym_pMyPortTl = MyDevice->GetTlProxy();
if (NULL == m_pMyPortTl)
{
printf("error:get gige transport layer failed!\n");
break;
}
3.2.7 GetOneFrame
功能阐明
获取一帧图像数据
接口所在位置
MvDeviceBase.h
调用上下文或依赖对象描述
已创立设备实例,已打开设备,已启动抓图
函数办法
virtualintGetOneFrame(unsignedchar * pData ,unsignedintnDataSize,MV_FRAME_OUT_INFO* pFrameInfo);
输入
参数代码/名称
数据类型
参数阐明
pData
unsigned char*
待拷入数据缓存地址
nDataSize
unsigned int
缓存大小
输出
参数代码/名称
数据类型
参数阐明
pFrameInfo
MV_FRAME_OUT_INFO *
输出帧信息
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
获取设备采集图像数据,按照指定像素格式输出
备注
该接口为积极式获取帧数据,上层应用程序需要依照帧率,控制好调用该接口频率
示例
intnRet = MyDevice->GetOneFrame(g_pFrameBuf,MAX_BUF_SIZE,&stInfo);
if (MV_OK != nRet)
{
Sleep(10);
}
else
{
SR_UpdateFrameData(hRenderHandle ,g_pFrameBuf ,stInfo.nWidth ,stInfo.nHeight,0);
SR_Display(hRenderHandle ,0,display);
}
3.3 GenApi
3.3.1 _LoadXMLFromFile
功能阐明
加载设备XML文献
接口所在位置
NodeMapRef.h
调用上下文或依赖对象描述
已创立设备实例,已打开设备,已启动抓图
函数办法
void_LoadXMLFromFile(GenICam::gcstringFileName);
输入
参数代码/名称
数据类型
参数阐明
FileName
GenICam::gcstring
xml 文献途径
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
无
解决过程
加载设备提供xml文献
备注
该办法需要接受异常
示例
CNodeMapRef* m_Camera = newCNodeMapRef;
try
{
// 加载xml
m_Camera->_LoadXMLFromFile("testdevice.xml");
// 导入传播层代理类,连接设备
m_Camera->_Connect((IPort*)m_pMyPortTl,"Device");
// 获取指定字段相应节点
CIntegerPtr ptrNode = m_Camera->_GetNode("Width");
if (NULL == ptrNode)
{
printf("error:m_Camera->_GetNode fail!\n");
break;
}
// 获取指定字段值
intnValue = ptrNode->GetValue();
printf("get value [%x]\n",nValue);
// 设定指定字段值
nValue = 1280;
ptrNode->SetValue(nValue);
printf("set value [%x]\n",nValue);
}
catch (...)
{
printf("warning:GenICam XML module error!\n");
}
3.3.2 _Connect
功能阐明
导入传播层,连接设备
接口所在位置
NodeMapRef.h
调用上下文或依赖对象描述
已成功加载xml文献,已获取到传播层代理类
函数办法
virtualbool_Connect( IPort* pPort,constGenICam::gcstring&PortName) const;
输入
参数代码/名称
数据类型
参数阐明
pPort
IPort*
传播层代理类
PortName
const GenICam::gcstring&
端口名称
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
无
解决过程
略
备注
该办法需要接受异常
示例
参照LoadXMLFromFile办法示例代码
3.3.3 _GetNode
功能阐明
获取指定字段节点
接口所在位置
NodeMapRef.h
调用上下文或依赖对象描述
已成功导入传播层代理类,已成功连接设备
函数办法
virtualINode* _GetNode( constGenICam::gcstring&key) const;
输入
参数代码/名称
数据类型
参数阐明
key
const GenICam::gcstring&
字段名称
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回指定字段节点;失败,返回NULL,或抛出异常
解决过程
略
备注
该办法需要接受异常
示例
参照LoadXMLFromFile办法示例代码
3.3.4 GetValue
功能阐明
获取指定字段值
接口所在位置
IValue.h、Pointer.h、IInteger.h等,视类型而定
调用上下文或依赖对象描述
已成功获取节点
函数办法
virtualint64_tGetValue();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回指定字段值;失败,抛出异常
解决过程
略
备注
需要依照指定字段类型,来拟定用法。惯用有CIntegerPtr、CStringPtr、CRegisterPtr、CEnumerationPtr等,详细参照Pointer.h定义
示例
参照LoadXMLFromFile办法示例代码
3.3.5 SetValue
功能阐明
获取指定字段值
接口所在位置
IValue.h、Pointer.h、IInteger.h等,视类型而定
调用上下文或依赖对象描述
已成功获取节点
函数办法
virtualvoid SetValue(int64_tValue);
输入
参数代码/名称
数据类型
参数阐明
Value
int64_t
设立值
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
失败,抛出异常
解决过程
略
备注
需要依照指定字段类型,来拟定用法。惯用有CIntegerPtr、CStringPtr、CRegisterPtr、CEnumerationPtr等,详细参照Pointer.h定义
示例
参照LoadXMLFromFile办法示例代码
4. 接口描述(C接口)
C接口按照逻辑功能,划分为四大模块。
4.1 相机控制通用接口
4.1.1 MV_CC_GetSDKVersion
功能阐明
获取SDK版本号
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
可独立随时调用
函数办法
MV_CAMCTRL_APIunsignedint__stdcallMV_CC_GetSDKVersion();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
版本号:|主 |次 |修正 | 测试|
8bits 8bits 8bits 8bits
解决过程
把SDK内部定义当前版本号返回
备注
无
示例
unsignedintnVersion = MV_CC_GetSDKVersion();
4.1.2 MV_CC_EnumerateTls
功能阐明
枚举支持设备类型(传播层类型)
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
可独立随时调用
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_EnumerateTls ();
输入
参数代码/名称
数据类型
参数阐明
无
无
无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
支持传播层类型
解决过程
备注
无
示例
intnSupportedTls = MV_CC_EnumerateTls();
4.1.3 MV_CC_EnumDevices
功能阐明
设备枚举
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已成功加载SDK
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_EnumDevices(INunsignedintnTLayerType,IN OUTMV_CC_DEVICE_INFO_LIST* pstDevList);
输入
参数代码/名称
数据类型
参数阐明
nTLayerType
unsigned int
相机合同类型
输出
参数代码/名称
数据类型
参数阐明
pstDevList
MV_CC_DEVICE_INFO_LIST*
枚举到设备信息列表指针
返回值
无
解决过程
依照输入相机合同,把发现设备信息保存到设备列表pstDevList中
备注
无
示例
MV_CC_DEVICE_INFO_LISTstDevList;
memset(&stDevList,0,sizeof(MV_CC_DEVICE_INFO_LIST));
intnRet = tlFactory.EnumDevices(MV_GIGE_DEVICE,&stDevList);
if (MV_OK != nRet)
{
printf("error:EnumDevices [%x]\n",nRet);
return 1;
}
4.1.4 MV_CC_CreateHandle
功能阐明
创立句柄
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
无
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_CreateHandle(OUTvoid ** handle,INconst MV_CC_DEVICE_INFO* pstDevInfo);
输入
参数代码/名称
数据类型
参数阐明
pstDevInfo
MV_CC_DEVICE_INFO*
设备信息
输出
参数代码/名称
数据类型
参数阐明
handle
void **
句柄
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
创立库内部必要资源和初始化内部模块
备注
无
示例
4.1.5 MV_CC_DestroyHandle
功能阐明
销毁句柄
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已创立有效句柄
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_DestroyHandle(void * handle);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
释放资源
备注
无
示例
4.1.6 MV_CC_IsDeviceAccessible
功能阐明
设备与否可访问
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已创立句柄
函数办法
MV_CAMCTRL_APIbool__stdcallMV_CC_IsDeviceAccessible (INvoid * handle,MV_CC_DEVICE_INFO* pstDevInfo,unsignedintnAccessMode);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
pstDevInfo
MV_CC_DEVICE_INFO
设备信息
nAccessMode
unsigned int
访问类型
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
true或false
解决过程
读取设备CCP寄存器值,判断当前状态与否具备某种访问权限。
备注
无
示例
4.1.7 MV_CC_OpenDevice
功能阐明
打开设备
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已创立有效句柄
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_OpenDevice(IN void* handle,INunsigned int nPrivilegeMode = MV_ExclusivePrivilege,INunsigned short nSwitchoverKey = 0);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
nPrivilegeMode
unsigned int
设备访问模式,默认独占模式
nSwitchoverKey
unsigned short
切换权限时密钥,默认无
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
依照设立设备参数,找到相应设备,连接。
备注
无
示例
4.1.8 MV_CC_CloseDevice
功能阐明
关闭设备
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已打开设备
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_CloseDevice (void * handle);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
断开相机连接,释放资源
备注
无
示例
4.1.9 MV_CC_StartGrabbing
功能阐明
启动抓图
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已打开设备
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_StartGrabbing(void * handle);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
发送启动抓图命令给相机,启动接受数据。
备注
无
示例
4.1.10 MV_CC_StopGrabbing
功能阐明
停止抓图
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已启动抓图
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_StopGrabbing(void * handle);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
输出
参数代码/名称
数据类型
参数阐明
无
无
无
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
发送停止抓图命令给相机,停止接受数据。
备注
无
示例
4.1.11 MV_CC_GetOneFrame
功能阐明
获取一帧图像数据
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已启动抓图
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_GetOneFrame(void * handle,IN OUTunsigned char * pData ,INunsigned int nDataSize,IN OUTMV_FRAME_OUT_INFO* pFrameInfo);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
pData
unsigned char*
待输出数据缓存
nDataSize
unsigned int
缓存大小
输出
参数代码/名称
数据类型
参数阐明
pData
unsigned char*
输出数据缓存
pFrameInfo
MV_FRAME_OUT_INFO
当前一帧图像信息
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
从相机或内部缓存链表中获取一帧图像
备注
无
示例
4.1.12 MV_CC_GetImageInfo
功能阐明
获取相机图像基本信息
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已连接设备
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_GetImageInfo(void * handle,IN OUTMV_IMAGE_BASIC_INFO* pstInfo);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
pstInfo
MV_IMAGE_BASIC_INFO
待输出信息构造
输出
参数代码/名称
数据类型
参数阐明
pstInfo
MV_IMAGE_BASIC_INFO
图像基本信息
返回值
成功,返回MV_OK;失败,返回错误码
解决过程
访问设备,获取当前设立
备注
无
示例
4.1.13 MV_CC_SetWidth
功能阐明
设立相机图像宽度
接口所在位置
MvCameraControl.h
调用上下文或依赖对象描述
已连接设备
函数办法
MV_CAMCTRL_APIint__stdcallMV_CC_SetWidth (void * handle,IN OUTunsigned intnValue);
输入
参数代码/名称
数据类型
参数阐明
handle
void *
句柄
nValue
unsigned int
宽值
输出
参数代码/名称
数据类型
参数阐
展开阅读全文