Qt 某光谱仪程序开发_光谱仪

某光谱仪程序开发

文章目录

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


关键字:

Demo

Qt

COM

dumpcpp

C++

摘要

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

安装驱动

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

Qt 某光谱仪程序开发_COM_02

Qt 某光谱仪程序开发_qt_03

Qt 某光谱仪程序开发_COM_04

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

Qt 某光谱仪程序开发_组件_05

注册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 某光谱仪程序开发_qt_06

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

Qt 某光谱仪程序开发_光谱仪_07

在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组件,今天小程序完成。