> 文章列表 > Qt 某光谱仪程序开发

Qt 某光谱仪程序开发

Qt 某光谱仪程序开发

头图

光谱仪程序开发

文章目录

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


关键字:
Demo
Qt
COM
dumpcpp
C++

摘要

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

安装驱动

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

Qt 某光谱仪程序开发

Qt 某光谱仪程序开发

Qt 某光谱仪程序开发

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

Qt 某光谱仪程序开发

注册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的。具体方法可以查出册表。我这里厂家也贴心给了脚本,就偷懒了

Qt 某光谱仪程序开发

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

Qt 某光谱仪程序开发

在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