Qt 某光谱仪程序开发

news2024/12/31 7:00:39
头图

某光谱仪程序开发

文章目录

  • 某光谱仪程序开发
    • 摘要
    • 安装驱动
    • 注册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.coloradmin.cn/o/360456.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游戏蓝牙耳机什么牌子好?游戏蓝牙耳机性价比品牌

为了提升游戏体验,多数人都会选购一副蓝牙耳机,在网上找了当前热销的蓝牙耳机,终于整理出了当前热销性价比高的蓝牙耳机品牌,今天就带大家一起看看这几款耳机的优点,希望这篇文章能帮助大家选择。 一、南卡小音舱蓝牙…

JavaScript随手笔记---对比数组差异

💌 所属专栏:【JavaScript随手笔记】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#…

Mybatis源码分析系列之第二篇:Mybatis的数据存储对象

前言:SQLSession是对JDBC的封装 一:SQLSession和JDBC的对照说明 左边是我们的客户端程序,右边是我们的MySQL数据仓,或者叫MySQL实例 Mybatis是对JDBC的封装,将JDBC封装成了一个核心的SQLSession对象 JDBC当中的核心对…

【IoT】做短视频之前,你需要先做好内容定位

现在做内容无疑要从垂直领域入手,否则你就很难出圈。 干货类或者说垂直领域方向的内容,往往都偏向于枯燥,并且会涉及很多专业性的名词,读者理解起来会困难很多,阅读的兴趣也自然会降低。 这也是笔者个人开始做短视频…

分析过程:服务器被黑安装Linux RootKit木马

前言 疫情还没有结束,放假只能猫家里继续分析和研究最新的攻击技术和样本了,正好前段时间群里有人说服务器被黑,然后扔了个样本在群里,今天咱就拿这个样本开刀, 给大家研究一下这个样本究竟是个啥,顺便也给…

linux系统开机文段释义

第一段Version 2.01.1204. Copyright (C) 2010American Megatrends, Inc.Press <DEL> or <F2> to entersetup. Press <F7> for BBS POPUP Menu.设备上电&#xff0c;提示按DEL键或者F2键进入BIOS设置。按F8可以调出启动设备列表&#xff0c;可以选择性的启动…

软件工程 | 第一章:软件工程学概述

软件工程学概述一、前言二、软件危机1.典型表现2.产生原因3.消除危机途径三、软件工程1.概述2.软件本质特征3.软件工程基本原理4.软件工程方法学1️⃣传统方法学2️⃣面向对象方法学四、软件生命周期五、结语一、前言 本文将讲述软件工程导论的第一章相关知识点&#xff0c;主…

Lesson7---数字图像基础

7.1 数字图像基本概念 有人说&#xff1a;计算机视觉是人工智能的大门计算机视觉成为人工智能应用方面的领头羊本课实例都是与图像有关的 7.1.1 图像的离散化 7.1.1.1 连续图像和数字图像 连续图像&#xff1a;人眼直接感受到的图像数字图像&#xff1a;把连续的图像数字化…

【论文阅读】SSR-Net: 一个小型的 软分段回归网络 用于年龄估计

原始题目SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation中文名称SSR-Net: 一个小型的 软分段回归网络 用于年龄估计发表时间2018年7月13日平台IJCAI-18来源台湾中央研究院、国立台湾大学文章链接https://www.ijcai.org/proceedings/2018/0150.pdf开…

【LeetCode】剑指 Offer(6)

目录 写在前面&#xff1a; 题目&#xff1a;剑指 Offer 12. 矩阵中的路径 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 写在最后&#xff1a; 写在前面&#xff…

Java代码加密混淆工具有哪些?

在Java中&#xff0c;代码加密混淆工具可以帮助开发者将源代码进行加密和混淆处理&#xff0c;以增加代码的安全性和保护知识产权。以下是一些流行的Java代码加密混淆工具&#xff1a; 第一款&#xff1a;ProGuard&#xff1a;ProGuard      ProGuard&#xff1a;ProGuard…

Springboot接口多个DTO入参的Postman上传方式

在Java中使用Spring Boot框架时&#xff0c;可以同时使用多个DTO作为方法参数。 TO&#xff08;Data Transfer Object&#xff09;是一个常见的设计模式&#xff0c;用于封装数据传输对象。它通常用于将数据从一个层传递到另一个层&#xff0c;例如将数据从服务层传递到控制器…

2023 年 1 月区块链操作系统的开发回顾

副标题&#xff1a;查看 Cartesi Machine、Cartesi Rollups 和 Noether 的更新正在寻找区块链操作系统组件的最新进展&#xff1f;你找对地方了&#xff01;正如在我们的路线图文章中所描述的那样&#xff0c;我们一直在朝着定期且频繁的更新方向发展着&#xff0c;以便让我们的…

阅读笔记——Feature-Point Matching for Aerial and Ground Images方法

阅读笔记——Feature-Point Matching for Aerial and Ground Images 1.应用背景 在三维重建应用中&#xff0c;常用的是航空影像&#xff0c;但在城市环境中&#xff0c;面对大量的高层建筑物&#xff0c;航空影像往往不能很好的重建出完整的三维模型。因为航空影像视角约束以…

DataGear 4.5.0 发布,数据可视化分析平台

DataGear 4.5.0 发布&#xff0c;带来数据集计算属性新功能&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;数据集属性新增计算表达式功能&#xff0c;可对原始数据进行二次计算处理&#xff1b;新增&#xff1a;HTTP接口数据集新增文本、XML请求体类型支持&#…

Hadoop HDFS的架构、高可用与容错机制

本次整理的学习笔记的是Hadoop HDFS的架构、高可用与容错机制&#xff0c;供大家参考学习&#xff0c;enjoy~~ 一、HDFS的架构 1&#xff0c;NameNode &#xff08;1&#xff09; 存储文件的metadata&#xff0c;运行时所有数据都保存到内存&#xff0c;整个HDFS可存储的文件数…

V4L2操作流程

打开设备–>获取设备capability–>选择视频输入–>设置视频制式及帧格式–>向驱动申请帧缓冲(不超过5个)–>申请物理地址–>开始视频采集–>出队列取得已经采集数据的帧缓冲&#xff0c;获得原始采集数据–>停止视频采集–>关闭视频设备。 常用数据…

轻量级SSH实现之Dropbear

轻量级SSH实现之Dropbear dropbear简介 Dropbear是一个轻量级的SSH服务器和客户端的实现。它运行在 各种 UNIX 平台。 Dropbear 是开源实现&#xff0c;MIT 分发 许可证。 Dropbear在嵌入式Linux&#xff08;或其他Unix&#xff09;系统广泛应用&#xff0c;例如无线路由器。…

蛋白质组学技术与常见分析培训班火热招生中!

什么是蛋白质组学&#xff1f; 蛋白质组学(proteomics)&#xff0c;是以蛋白质组为研究对象&#xff0c;研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平&#xff0c;翻译后修饰&#xff0c;蛋白与蛋白相互作用等研究内容&#xff0c;集中于动态描述…

华为机试JavaScript 字符串按次数降序排列;次数相同,按单词长度升序;排列次数和单词长度均相同,按字典升序排列

华为机试练习&#xff1a; 题目要求 1. 给定一个字符串s&#xff0c;s包括以空格分隔的若干个单词&#xff0c;请对s进行如下处理后输出:单词内部调整:对每个单词字母重新按 字典序排序 2、单词间顺序调整: 1) 统计每个单词出现的次数&#xff0c;并按次数 降序排列 …