直接复制和调试大恒相机自带的C++开发软件开发说明书中的示例工程,报错众多,无从下手。
终于经过注释多处代码,跑通了!以此为记,再接再厉。

#include <QDebug>
#include "GalaxyIncludes.h"// 用户继承掉线事件处理类
class CSampleDeviceOfflineEventHandler : public IDeviceOfflineEventHandler
{public :void DoOnDeviceOfflineEvent(void* pUserParam){qDebug() << "收到设备掉线事件!" ;}
};// 用户继承属性更新事件处理类
class CSampleFeatureEventHandler : public IFeatureEventHandler
{public:void DoOnFeatureEvent(const GxIAPICPP::gxstring &strFeatureName, void* pUserParam){qDebug() << "收到曝光结束事件";}
};// 用户继承采集事件处理类
class CSampleCaptureEventHandler : public ICaptureEventHandler
{public:void DoOnImageCaptured(CImageDataPointer &objImageDataPointer, void* pUserParam){qDebug() << "收到一帧图像";qDebug() << "ImageInfo: " << objImageDataPointer->GetStatus();qDebug() << "ImageInfo: " << objImageDataPointer->GetWidth();qDebug() << "ImageInfo: " << objImageDataPointer->GetHeight();qDebug() << "ImageInfo: " << objImageDataPointer->GetPayloadSize();}
};int main(int argc, char *argv[])
{// 声明事件回调对象指针IDeviceOfflineEventHandler* pDeviceOfflineEventHandler = NULL; // 掉线事件回调对象IFeatureEventHandler* pFeatureEventHandler = NULL; // 远端设备事件回调对象ICaptureEventHandler* pCaptureEventHandler = NULL; // 采集回调对象// 初始化IGXFactory::GetInstance().Init();try{do{// 枚举设备gxdeviceinfo_vector vectorDeviceInfo;IGXFactory::GetInstance().UpdateDeviceList(1000, vectorDeviceInfo);if (0 == vectorDeviceInfo.size()){qDebug() << "无可用设备";break;}// 打开第一台设备以及设备下面第一个流CGXDevicePointer ObjDevicePtr = IGXFactory::GetInstance().OpenDeviceBySN(vectorDeviceInfo[0].GetSN(), GX_ACCESS_EXCLUSIVE);CGXStreamPointer ObjStreamPtr = ObjDevicePtr->OpenStream(0);// 获取远端设备属性控制器CGXFeatureControlPointer ObjFeatureControlPtr = ObjDevicePtr->GetRemoteFeatureControl();// 获取流层属性控制器CGXFeatureControlPointer objStreamControlPtr = ObjDevicePtr->GetRemoteFeatureControl();提高网络相机的采集性能,设置方法参考以下代码(目前只有千兆网系列相机支持设置最优包长)。//GX_DEVICE_CLASS_LIST objDeviceClass =//    ObjDevicePtr->GetDeviceInfo().GetDeviceClass();//if (GX_DEVICE_CLASS_GEV == objDeviceClass) {//    //判断设备是否支持流通道数据包功能//    if (true == ObjFeatureControlPtr->IsImplemented("GevSCPSPacketSize"))//  {//     //获取当前网络环境的最优包长值//      int nPacketSize = ObjStreamPtr->GetOptimalPacketSize();//       //将最优包长值设置为当前设备的流通道包长值//        ObjFeatureControlPtr->GetIntFeature(//           "GevSCPSPacketSize")->SetValue(nPacketSize);// }//}// 设置Buffer处理模式//objStreamControlPtr->GetEnumFeature("StreamBufferHandlingMode")->SetValue("OldestFirst");// 注册设备掉线事件(目前只有千兆网相机支持此事件通知)GX_DEVICE_OFFLINE_CALLBACK_HANDLE hDeviceOffline = NULL;pDeviceOfflineEventHandler = new CSampleDeviceOfflineEventHandler();hDeviceOffline = ObjDevicePtr->RegisterDeviceOfflineCallback(pDeviceOfflineEventHandler, NULL);//设置曝光时间(示例中写死 us,只是示例,并不代表真正可工作参数)ObjFeatureControlPtr->GetFloatFeature("ExposureTime")->SetValue(50);//注册远端设备事件:曝光结束事件(目前只有千兆网系列相机支持曝光结束事件)// 选择事件源//ObjFeatureControlPtr->GetEnumFeature("EventSelector")->SetValue("ExposureEnd");// 使能事件//ObjFeatureControlPtr->GetEnumFeature("EventNotification")->SetValue("On");//GX_FEATURE_CALLBACK_HANDLE hFeatureEvent = NULL;//pFeatureEventHandler = new CSampleFeatureEventHandler();//hFeatureEvent = ObjFeatureControlPtr->RegisterFeatureCallback("EventExposureEnd", pFeatureEventHandler, NULL);// 注册回调采集pCaptureEventHandler = new CSampleCaptureEventHandler();ObjStreamPtr->RegisterCaptureCallback(pCaptureEventHandler, NULL);// 发送开采命令ObjStreamPtr->StartGrab();ObjFeatureControlPtr->GetCommandFeature("AcquisitionStart")->Execute();Sleep(100000);// 发送停采命令ObjFeatureControlPtr->GetCommandFeature("AcquisitionStop")->Execute();ObjStreamPtr->StopGrab();// 注销采集回调ObjStreamPtr->UnregisterCaptureCallback();// 注销远端设备事件//ObjFeatureControlPtr->UnregisterFeatureCallback(hFeatureEvent);// 注销设备掉线事件ObjDevicePtr->UnregisterDeviceOfflineCallback(hDeviceOffline);// 释放资源ObjStreamPtr->Close();ObjDevicePtr->Close();} while (0);}catch (CGalaxyException&e){qDebug() << "错误码: " << e.GetErrorCode();qDebug() << "错误描述信息: " << e.what() ;}catch (std::exception&e) {qDebug() << "错误描述信息: " << e.what();}// 反初始化库IGXFactory::GetInstance().Init();// 销毁事件回调指针if (NULL != pCaptureEventHandler){delete pCaptureEventHandler;pCaptureEventHandler = NULL;}if (NULL != pDeviceOfflineEventHandler){delete pDeviceOfflineEventHandler;pDeviceOfflineEventHandler = NULL;}if (NULL != pFeatureEventHandler){delete pFeatureEventHandler;pFeatureEventHandler = NULL;}return 0;
}

大恒相机+VS开发+Qt 跑通示例工程相关推荐

  1. 大恒相机Python版Qt界面(二)

    书接上回:大恒相机Python版Qt界面(一)_△ф的博客-CSDN博客_python大恒.目前,基于PyQt5的大恒相机UI界面开发已基本完成,总体界面如下: 该UI界面中,主要包括了相机使用中的几 ...

  2. 大恒相机Python版Qt界面(一)

    更新:2022/11/18 代码已完成,详情请参考:大恒相机Python版Qt界面(二)_△ф的博客-CSDN博客 首先,很抱歉之前写的Qt.C++的UI界面鸽了...这次的大恒相机界面python版 ...

  3. QT调用大恒相机的开发教程

    Qt(5.12.10) 调用大恒相机,实时显示图像,并保存bmp文件 文章导读:相机为大恒相机,接口是USB3.0,水星系列产品.本项目采用Qt5.12.10版本编码,编译器为MSVC2017,ope ...

  4. Qt+大恒相机+OpenCV+MinGW界面开发

    Qt+大恒相机+OpenCV+MinGW界面开发 遇到的坑有哪些? 大恒相机接口的问题(C与C++选谁,傻傻分不清) OpenCV版本与MinGW编译平台适应性问题(编译通过,但是一运行就异常退出) ...

  5. vs+Qt+opencv+大恒相机开发(基础功能,适合初学者学习)

    注:代码仅供参考,相互学习. 本意:帮助大家快速入手大恒相机,也留个记录后续优化. 配置环境:VS2019.OpenCV454.Qt5.14.2.大恒水星系列相机(gige) 优化: 2022/4/2 ...

  6. Qt Creator 添加大恒相机SDK库

    记录开发大恒相机遇到的问题 拷贝大恒SDK(D:\GalaxySDK\Samples\C++ SDK)的inc.lib相应文件到项目文件夹 首先:添加动态链接库lib 方法一(简单) 不需要在.pro ...

  7. 大恒相机开发(大恒SDK+opencv开发)笔记1

    大恒相机开发(大恒SDK+opencv开发 一.项目简介 在大三上学期做过人脸识别的开发,刚好下学期老师手中有相机的项目,然后项目就到了我手上,下面是我开发这个项目的一些经历,进程还在调试中.笔记会按 ...

  8. 大恒相机开发实践(1)——实时采图

    目录 前言 正文 准备工作 设备的初始化 设备信息的获取 实时采图 将采集到的Buffer传上显示层 总结 前言 本篇博客稍微记录一下我所写的插件.具体内容是有关于大恒相机的,关于这个相机,相信搜索到 ...

  9. 相机PHP,C/C++、C#、PHP相机开发实例 大恒相机SDK

    [实例简介]C/C .C#.PHP相机开发实例 大恒相机SDK [实例截图] [核心代码] public  class GxBitmap { IGXDevice      m_objIGXDevice ...

最新文章

  1. python科学计算基础教程pdf下载-Python科学计算 PDF 第2版
  2. swift optionals - 1
  3. Springboot,SSM框架的区别
  4. 应“云”而生--云时代的运维新理念
  5. wps office有计算机应用吗,wps office
  6. 高斯函数与高斯核函数
  7. visual studio python使用教程_教程:在 Visual Studio 中开始使用 Flask Web 框架
  8. Blender建模(一)
  9. 什么是MIMO(多输入多输出),以及MIMO的分类和测试(一)
  10. 女人需要调教人需要调教
  11. 计算机c盘如何腾出空间,WIN8的C盘太大怎么清理腾出空间呢
  12. 圣思园——Java SE Lesson 16
  13. Oracle 给其他用户授权表的权限
  14. 七牛云彭垚:智能平台的创新和发展
  15. html保存至心愿单按钮,王者荣耀添加心愿单有什么用 心愿单怎么实现
  16. linux设置简单的密码
  17. 研究生初试录取系统C语言,研究生初试录取管理系统
  18. 巨准私域案例拆解丨“认养一头牛“如何通过私域分层运营提升复购
  19. C. Ehab and Path-etic MEXs
  20. Linux总线、设备、驱动模型

热门文章

  1. 英文文献翻译的几款实用工具
  2. 【学术写作】优雅地翻译英文论文【保持格式】【无须排版】
  3. win10 mysql8.0修改密码
  4. 商品品牌信息的增删改查操作步骤_畅购商城(三):商品管理
  5. 用c语言编写匀速直线运动,匀速直线运动知识点总结
  6. 【论文-笔记】软件化雷达显示终端的设计与实现
  7. ffmpeg合并m3u8 ts key文件 解决Invalid data found when processing input错误
  8. LT8911EXB 产品功能概述 MIPIDSI/CSI转EDP
  9. Vue3.2 使用 汉字转拼音的插件pinyin-pro 库
  10. 用VS2005打开方案出现“此安装不支持该项目类型