Qt 某光谱仪程序开发

Posted DreamLife.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 某光谱仪程序开发相关的知识,希望对你有一定的参考价值。

某光谱仪程序开发

文章目录


关键字: DemoQtCOMdumpcppC++

摘要

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

安装驱动

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

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

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

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

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


以上是关于Qt 某光谱仪程序开发的主要内容,如果未能解决你的问题,请参考以下文章

C#-winform调用COM组件(COM组件由Qt开发)

C#-winform调用COM组件(COM组件由Qt开发)

Qt创建COM组件解决opengl渲染设置问题(DLL方式)

Qt创建COM组件解决opengl渲染设置问题(DLL方式)

Qt创建COM组件解决opengl渲染设置问题(DLL方式)

Qt系列文章之三十五 (自定义组件)