收藏 分销(赏)

工业相机SDK接口设计项目说明指导书.doc

上传人:天**** 文档编号:2704706 上传时间:2024-06-04 格式:DOC 页数:49 大小:1.05MB 下载积分:12 金币
下载 相关 举报
工业相机SDK接口设计项目说明指导书.doc_第1页
第1页 / 共49页
工业相机SDK接口设计项目说明指导书.doc_第2页
第2页 / 共49页


点击查看更多>>
资源描述
工业相机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 宽值 输出 参数代码/名称 数据类型 参数阐
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服