当前位置: 首页 > news >正文

Qt 某光谱仪程序开发

头图

某光谱仪程序开发

文章目录

  • 某光谱仪程序开发
    • 摘要
    • 安装驱动
    • 注册COM组件
    • 导出.h和.cpp
    • 在Qt 中添加源文件
    • 开发
    • 打包程序

关键字: DemoQtCOMdumpcppC++

摘要

今天接到一个临时小任务,写一个的项目子模块的Demo,以供和专家们交流一下项目技术方案是否可行。用的是一个第三方的光谱仪,需要使用Qt 调用光谱仪的SDK,并且做一些加加减减处理。但是厂家给的竟然不是纯C++版的开发库,而是基于COM组件的库,开始看资料的时候并没有注意,光看到就是那几个接口,想着很简单,绘制曲线也是之前用过QCustcomPlot,认为没有啥难度,实际开发发现是COM组件,巧了,我还没有搞过,得研究一番。

安装驱动

按照厂家提供的文档,第一步就是安装设备对应的驱动,这里简单截图一下,具体每家都不一样,不做太多描述。

image-20230213085735041

image-20230213085754374

image-20230213085805585

我这里直接弹出确定了,是因为我装过一次了,又懒得卸载驱动了,会提示一个安装驱动的窗口来,点击安装即可。

image-20230213085825297

注册COM组件

这里可以使用win提供的指令来注册,我这里厂家还贴心提供了bat搅拌,我就直接一键注册了。具体可以百度下COM组件注册

参考链接:https://baike.baidu.com/item/COM%E7%BB%84%E4%BB%B6%E6%B3%A8%E5%86%8C/725400

导出.h和.cpp

这里就要大大的夸夸我Qt 的强大了,正当我一筹莫展的时候,群友提示我Qt 有工具可以直接将COM组件导出.h和.cpp,直接调用就好,这个工具就是神奇的dumpcpp.exe ,不过这里还是要确定一下我们的COM的ID的。具体方法可以查出册表。我这里厂家也贴心给了脚本,就偷懒了

image-20230218112610536

这里有个问题需要主要的就是,我使用上面的ID是导出失败了,只有使用下面的ID才可以使用,因为咱第一次搞,也不知道其中的缘由,先这么滴,搞起来,最终导出了我想要的.h和.cpp

image-20230213112539560

在Qt 中添加源文件

这个就不用太多描述了,直接在Qt项目中添加现有文件,选中,下一步即可。在使用的地方包含头文件即可。

开发

这个就是按照厂家提供的流程,在Qt 中调用接口即可,部分代码如下

bool SpectroMeter::init()
{m_wrapper = new IdeaOptics::Wrapper();if(m_wrapper->OpenAllSpectrometers() == 0){if(m_timerGetInfor->isActive())m_timerGetInfor->stop();return false;}m_wrapper->setIntegrationTime(m_index,3000);m_name = m_wrapper->getName(m_index);m_serialNumber = m_wrapper->getSerialNumber(m_index);m_pixels = m_wrapper->getNumberOfPixels(m_index);m_temperature = m_wrapper->getFeatureControllerBoardTemperature(m_index);m_timerGetInfor->start(1000);m_timerGetData->start(1000);return true;
}

打包程序

这个就是使用Qt 自带的windeployqt 直接导出需要的库即可,不过要是到其他电脑上可运行,还需要包厂家的驱动和COM组件都带上,在需要的电脑安装驱动和COM组件,今天小程序完成。


博客签名2021
http://www.lryc.cn/news/14609.html

相关文章:

  • 蛋白质组学技术与常见分析培训班火热招生中!
  • 唤醒手腕 Java 后端 Springboot 框架结合 socketio 学习笔记
  • C++入门:内联函数、auto关键字、基于范围for循环及指针空值nullptr
  • Python遗传算法
  • GEE学习笔记 六十四:绿色中国报告(个人版)
  • 【Kubernetes】【十八】数据存储 高级存储 配置存储
  • 传输层TCP与UDP协议
  • 字节数组的通俗解释
  • 硬件学习 软件Cadence day06 原理图网表导入PCB (过程和操作的错误),开始的画板
  • OCT 医学图像分类
  • 华为OD机试 - 合并数组 | 机试题算法思路 【2023】
  • 前端开发页面样式通用约定法则
  • 向上跳空缺口选股公式,选出回补后再启动的标的
  • 【IoT】做短视频之前,你需要先做好内容定位
  • 苏宁基于 AI 和图技术的智能监控体系的建设
  • 3、内存管理
  • 【蓦然回首忆Java·基础卷Ⅰ】
  • 类属性和对象属性
  • 【TensorFlow 】查看Tensorflow和python对应版本、将现有的TensorFlow更新到指定的版本
  • VO、DTO、BO、PO、DO区别
  • 速看!!!一套能直接拿捏大厂面试官的软件测试面试宝典
  • 超级完整 的 Maven 讲解 以及私服搭建
  • 数据结构之算法的时间复杂度和空间复杂度
  • 【微信小程序】使用页面跳转并携带多个特定参数
  • CVPR 2021 | Involution:超越convolution和self-attention的神经网络算子
  • 11 OpenCV图像识别之人脸识别
  • ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数
  • 【Fastdfs】| 入门连续剧——安装
  • 【ESP32-S3】Pycharm 使用 microPython 教程(避坑)
  • Allegro如何通过报表的方式检查单板上是否有假器件操作指导