当前位置: 首页 > news >正文

Qt 某光谱仪程序开发

头图

某光谱仪程序开发

文章目录

  • 某光谱仪程序开发
    • 摘要
    • 安装驱动
    • 注册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

相关文章:

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&#xff08…...

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线的最低价。(如上图)收盘价低于缺口低价,即实现缺口回补。回补缺口之后&#xf…...

【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…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...