Qt 某光谱仪程序开发
某光谱仪程序开发
文章目录
- 某光谱仪程序开发
- 摘要
- 安装驱动
- 注册COM组件
- 导出.h和.cpp
- 在Qt 中添加源文件
- 开发
- 打包程序
关键字:
Demo、
Qt、
COM、
dumpcpp、
C++
摘要
今天接到一个临时小任务,写一个的项目子模块的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 某光谱仪程序开发
某光谱仪程序开发 文章目录某光谱仪程序开发摘要安装驱动注册COM组件导出.h和.cpp在Qt 中添加源文件开发打包程序关键字: Demo、 Qt、 COM、 dumpcpp、 C摘要 今天接到一个临时小任务,写一个的项目子模块的Demo,以供和专家们交流一下项目技…...
蛋白质组学技术与常见分析培训班火热招生中!
什么是蛋白质组学? 蛋白质组学(proteomics),是以蛋白质组为研究对象,研究细胞、组织或生物体蛋白质组成及其变化规律的科学。包括蛋白质的表达水平,翻译后修饰,蛋白与蛋白相互作用等研究内容,集中于动态描述…...
唤醒手腕 Java 后端 Springboot 框架结合 socketio 学习笔记
socketio 安装配置 Socket.IO是一个完全由JavaScript实现、基于Node.js、支持WebSocket的协议用于实时通信、跨平台的开源框架,它包括了客户端的JavaScript和服务器端的Node.js。 Socket.IO除了支持WebSocket通讯协议外,还支持许多种轮询(P…...
C++入门:内联函数、auto关键字、基于范围for循环及指针空值nullptr
目录 一. 内联函数 1.1 内联函数的概念 1.2 内联函数的特性 1.3 内联函数和宏的优缺点对比 二. auto关键字(C11) 2.1 auto的功能 2.2 auto在使用时的注意事项 三. 基于范围的for循环(C11) 四. 指针空值nullptr(…...
Python遗传算法
1 人工智能概述 2020中国人工智能产业年会在苏州召开,会上发布的《中国人工智能发展报告2020》显示,过去十年(2011-2020) ,中国人工智能专利申请量达389571件,占全球总量的74.7%,位居世界第一。 报告指出,…...
GEE学习笔记 六十四:绿色中国报告(个人版)
2019年上半年在遥感圈里最火的一篇文章莫过于这篇《China and India lead in greening of the world through land-use management》(China and India lead in greening of the world through land-use management | Nature Sustainability),…...
【Kubernetes】【十八】数据存储 高级存储 配置存储
高级存储 PV和PVC 前面已经学习了使用NFS提供存储,此时就要求用户会搭建NFS系统,并且会在yaml配置nfs。由于kubernetes支持的存储系统有很多,要求客户全都掌握,显然不现实。为了能够屏蔽底层存储实现的细节,方便用…...
传输层TCP与UDP协议
目录 传输层 传输层功能 传输层所提供的服务 传输层的两个协议 TCP协议与UDP协议 端口 端口分类 IP地址和端口的关系 UDP协议 前言: UDP报文格式 检验和的伪首部 伪首部内容 TCP协议 TCP报文格式 TCP协议数据段的理解 TCP的伪首部 伪首部内容 标…...
字节数组的通俗解释
1.字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。2.在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。注意:utf-8码中一个汉字占三个字节&…...
硬件学习 软件Cadence day06 原理图网表导入PCB (过程和操作的错误),开始的画板
1.新建一个制作芯片的工程 1.打开 File ->New 2.填写信息,设置路径 2.原理图的网表导入 1.打开这个窗口 File -> import ->Logic.. 2.确定信息 3.解决网表导入时出现的错误 1. 第一个案列 (没有找到文件 也是这个) 比如说: WARNING(…...
OCT 医学图像分类
目录1. OCT 图像分类2. OCT图像数据集3. OCT图像预处理4. 特征提取5. 实验结果及分析github地址: https://github.com/aishangcengloua/OCT_Classification 1. OCT 图像分类 视网膜光学相干断层扫描(OCT)是一种成像技术,用于捕获活体患者视网膜的高分辨率横截面。…...
华为OD机试 - 合并数组 | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】 华为OD机试题 - 获取最大软件版本号(JavaScript) 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】 华为OD机试 …...
前端开发页面样式通用约定法则
代码组织 以组件为单位组织代码段;制定一致的注释规范;组件块和子组件块以及声明块之间使用一空行分隔,子组件块之间三空行分隔;如果使用了多个 CSS 文件,将其按照组件而非页面的形式分拆,因为页面会被重组,而组件只会被移动;良好的注释是非常重要的。请留出时间来描述…...
向上跳空缺口选股公式,选出回补后再启动的标的
一、向上跳空缺口选股公式 思路:先找出缺口,缺口前后有两根K线,缺口低价是前一根K线的最高价,缺口高价是后一根K线的最低价。(如上图)收盘价低于缺口低价,即实现缺口回补。回补缺口之后…...
【IoT】做短视频之前,你需要先做好内容定位
现在做内容无疑要从垂直领域入手,否则你就很难出圈。 干货类或者说垂直领域方向的内容,往往都偏向于枯燥,并且会涉及很多专业性的名词,读者理解起来会困难很多,阅读的兴趣也自然会降低。 这也是笔者个人开始做短视频…...
苏宁基于 AI 和图技术的智能监控体系的建设
汤泳,苏宁科技集团智能监控与运维产研中心总监,中国商业联合会智库顾问,致力于海量数据分析、基于深度学习的时间序列分析与预测、自然语言处理和图神经网络的研究。在应用实践中,通过基于 AI 的方式不断完善智能监控体系的建设&a…...
3、内存管理
文章目录1、内存的基础知识1.1、什么是内存?1.2、进程的运行原理--指令1.3、逻辑地址 & 物理地址1.4、从写程序到程序运行1.5、装入模块到运行1.6、装入的三种方式--绝对装入1.7、装入的三种方式--静态重定位1.8、装入的三种方式--动态重定位(重定位…...
【蓦然回首忆Java·基础卷Ⅰ】
文章目录开端通过引用创建对象Java的数据存储方式基本类型包装类和高精度数字操作符自动递增和自动递减老生常谈的问题:和equals()如何重写equals方法?短路字面量科学计数法位运算类型转换初始化和清理方法的重载方法的重写无参构造器this与构造器垃圾收…...
类属性和对象属性
6.3 类属性和对象属性 在类定义中,属性按照归属分为对象属性、类属性。按照调用的私密性分为一般属性和私有属性。 6.3.1 类属性和对象属性 对象属性是最常用到的一种属性。即使我们对上面的类:MyClass1实例化了一个mc的对象,mc对象也不能…...
【TensorFlow 】查看Tensorflow和python对应版本、将现有的TensorFlow更新到指定的版本
1、查看Tensorflow和python对应版本 1.1这里我是在TensorFlow官方网址产看的 1、打开官方网址 https://pypi.org/project/tensorflow/1.1.0rc2/#files但是这个网址好像打不开,点击会出现这样 问题不大 输入Tensorflow然后点击搜索,就会跳转到https://p…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
