005-第一代光电小工具(一)

头图

第一代光电小工具(一)

文章目录

  • 第一代光电小工具(一)
    • 项目介绍
    • 大致原理描述
      • 核心控件QCustomPlot
      • 关于QCustomPlot
    • 播放音频
    • 软件截图

关键字: QtQmlQCustomPlot曲线SQLite

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏更新到第三代软件开发时将转为收费专栏

大致原理描述

大致原理描述一下,如下图所示:

image-20230703224916900

上位机通过串口控制电路发出特定光光照射人体组织时,组织内的某些分子会吸收光能量并处于激发状态。在激发状态下,这些分子会发生光致发光、光致荧光或光致变色等反应。这些反应会导致人体组织发出特定波长的光谱响应。

为了接收人体组织反射的光谱响应,使用光谱接收电路。这个电路可以包含光传感器(如光电二极管或光敏电阻)和相应的信号处理部分。光传感器将收集到的光转换为电信号,并经过信号处理后输出给上位机。

上位机接收到电信号后,会进行解析和处理。它可能使用数字信号处理算法来提取有用的信息,如光强度、频谱特征或其他参数。然后,上位机可以将这些数据以曲线的形式显示,并记录到数据库中。

这种光谱分析的方法在医学、生物科学和其他领域有广泛应用。通过分析人体组织反射的光谱响应,可以获取关于组织结构、代谢状态、病理变化等方面的信息。这对于诊断疾病、监测健康状况以及进行科学研究具有重要意义。

核心控件QCustomPlot

本来呢,第一版的第一版使用的QChart,结果呢,实在是玩不溜,数据量上来后,那卡的,如果是跟PPT似得,那都是对PPT的侮辱,但是呢,这里又不能说是Qt的锅,据说花钱版本的QChart和不花钱的是两个版本,这个话不是我说,我也是从哪里看到的,如果表达有误,请联系我删除,但是,在公司做项目,不是在学校做学术,我们也是有KPI的,需要在一定的时间内实现,所以直接就转战QCustomPlot,至于对于QChart的改造,那就是后话了。2月30号,或者星期八再解决,先实现需求。

关于QCustomPlot

QCustomPlot是一个用于创建交互式绘图和数据可视化的C++图形库。它是一个强大而灵活的开源库,专门设计用于在Qt应用程序中绘制和呈现各种类型的图表、统计图和科学图形。

QCustomPlot提供了一组易于使用的类和函数,使开发人员能够轻松地创建自定义的绘图和数据可视化。它支持绘制线条、散点图、柱状图、饼图、曲线图、等高线图等多种类型的图表。此外,它还提供了丰富的功能,如缩放、平移、选择区域、图例、坐标轴定制等,以满足不同应用场景的需求。

QCustomPlot具有良好的性能和高度的可定制性。它基于Qt框架,可以与Qt应用程序无缝集成。开发人员可以利用其丰富的API和文档进行定制,以实现各种复杂的绘图需求。

QCustomPlot被广泛应用于科学、工程、金融、数据分析等领域,用于实时绘图、数据监控、数据分析和报告生成等任务。它是一个流行的选择,因为它易于使用、功能强大,并且具有活跃的开发社区支持。

当然了,如果我在这里在搬运一遍QCustomPlot内容,那也是不合适,直接上连接

链接地址:https://blog.csdn.net/z609932088/category_12129310.html?spm=1001.2014.3001.5482

image-20230711225808827

播放音频

首先,这是一个错误的用法,我的需求是通过解析数据范围,来判断病人组织状态,发出不同声音,其实我应该使用 QSoundEffect,而不是QMediaPlayer,不过还是分享一下错误的代码,这段代码在小工具里面试用是没有问题,可以达到提示音的目的,而且延迟也是没有感觉的,只是还是要说明,提示用不适合用QMediaPlayer来实现,而是推荐用QSoundEffect和面的代码就能见到了。

头文件

#ifndef AUDIOTHREAD_H
#define AUDIOTHREAD_H#include <QThread>
#include <QObject>
#include <QMediaPlayer>class AudioThread : public QThread
{
public:explicit AudioThread(QObject *parent = nullptr);void play(QString temp = "");void setVolume(int value = 80);void stop();
private:void run();
private:QMediaPlayer* mediaPlayer;QString mUrl = "";
};#endif // AUDIOTHREAD_H

源文件

#include "audiothread.h"AudioThread::AudioThread(QObject *parent): QThread{parent}
{mediaPlayer = new QMediaPlayer(this,QMediaPlayer::LowLatency);                  // 低延迟播放器this->start();
}void AudioThread::play(QString temp)
{mUrl = temp;this->start();
}void AudioThread::setVolume(int value)
{mediaPlayer->setVolume(value);
}void AudioThread::stop()
{mediaPlayer->stop();
}void AudioThread::run()
{mediaPlayer->stop();mediaPlayer->setMedia(QUrl(mUrl));mediaPlayer->play();
}

需要注意的是,由于QSoundEffect是在内存中加载音频文件并播放,所以适合播放短暂的提示音效果。如果需要播放较长的音频文件或支持更复杂的音频播放控制,建议使用QMediaPlayer

总结起来,对于简单的提示音效需求,推荐使用QSoundEffect类来实现,它能够提供轻量级、低延迟的音效播放功能。而对于更复杂的音频播放场景,包括长时音频、音频流等,可以选择使用QMediaPlayer类。

软件截图

image-20230703231753464


博客签名2021

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/140293.html

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

相关文章

解决因为修改SELINUX配置文件出错导致Faild to load SELinux poilcy无法进入CentOS7系统的问题

一、问题 最近学习Kubernetes&#xff0c;需要设置永久关闭SELINUX,结果修改错了一个SELINUX配置参数&#xff0c;关机重新启动后导致无法进入CentOS7系统&#xff0c;卡在启动进度条界面。 二、解决 多次重启后&#xff0c;在启动日志中发现 Faild to load SELinux poilcy…

VirtualBox解决VERR_SUPDRV_COMPONENT_NOT_FOUND错误

简述 最近使用VirtualBox时发现其增强功能不能用了&#xff0c;也就是不能双向拖拉文件&#xff0c;整了很久不知所以&#xff1b;看到有网友说跟新其VBoxGuestAdditions.ios文件&#xff0c;所以直接把我的VirtualBox从6.x升级到了7.x&#xff0c;然后就发生了眼前的一幕&…

IDEA2023新UI回退老UI

idea2023年发布了新UI&#xff0c;如下所示 但是用起来真心不好用&#xff0c;各种位置也是错乱&#xff0c;用下面方法可以回退老UI

【C++入门指南】C如何过渡到C++?祖师爷究竟对C++做了什么?

【C入门指南】C如何过渡到C&#xff1f;祖师爷究竟对C做了什么&#xff1f; 前言一、命名空间1.1 命名空间的定义1.2 命名空间使用 二、C输入、输出2.1 std命名空间的使用惯例 三、缺省参数3.1 缺省参数的定义3.2 缺省参数分类 四、函数重载4.1 函数重载概念4.2 C支持函数重载的…

如何防止商业秘密泄露(洞察眼MIT系统商业机密防泄密解决方案)

在当今的商业环境中&#xff0c;保护公司的商业秘密是至关重要的。商业秘密可能包括独特的业务流程、客户列表、研发成果、市场策略等&#xff0c;这些都是公司的核心竞争力。一旦这些信息被泄露&#xff0c;可能会对公司的生存和发展产生重大影响。本文将探讨如何通过使用洞察…

Cortex-M3/M4堆栈

一、Cortex-M3/M4堆栈操作 Cortex-M3/M4 使用的是“向下生长的满栈”模型。堆栈指针 SP 指向最后一个被压入堆栈的 32 位数值。在下一次压栈时&#xff0c; SP 先自减 4&#xff0c; 再存入新的数值&#xff0c;如图所示为堆栈的PUSH操作。 POP 操作刚好相反&#xff1a;先从 …

针对 SAP 的增强现实技术

增强现实技术是对现实世界的一种交互式模拟。这种功能受到各种企业和制造商的欢迎&#xff0c;因为它可以减少生产停机时间、快速发现问题并维护流程&#xff0c;从而提高运营效率。许多安卓应用都在探索增强现实技术。 使用增强现实技术&#xff08;AR&#xff09;的Liquid U…

获取文件上次访问时间

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

Windows安装cuda和cudnn教程最新版(2023年9月)

文章目录 cudacudnn cuda 查看电脑的cuda最高驱动版本&#xff08;适用于N卡电脑-Nvidia&#xff09; winR打开命令行&#xff0c;输入nvidia-smi 右上角cuda -version就是目前支持的最高cuda版本&#xff0c;目前是12.2 nvidia官网下载cuda 下载地址&#xff1a;https://d…

VHOST-SCSI代码分析(1)VHOST SCSI设备模拟

VHOST SCSI设备的模拟是由QEMU和HOST共同实现的&#xff0c;QEMU模拟VHOST SCSI设备配置空间等&#xff0c;而对于虚拟机通知HOST和HOST通知虚拟机机制由HOST内核实现。 在QEMU中VHOST SCSI设备继承关系如下&#xff1a; 其它设备以及对应class_init函数和realize具现化实现与V…

uni-app 之 picker选择器

uni-app 之 picker选择器 同步滚动&#xff1a;开 uni-app 之 picker选择器 一、普通选择器 二、多列选择器 三、时间选择器 四、日期选择器 一、普通选择器 <template><view><picker change"bindPickerChange" :value"index" :range&q…

基于Docker_Nginx+LVS+Flask+MySQL的高可用Web集群

一.项目介绍 1.拓扑图 2.详细介绍 项目名称&#xff1a;基于Docker_NginxLVSFlaskMySQL的高可用Web集群 项目环境&#xff1a;centos7.9&#xff0c;docker24.0.5&#xff0c;mysql5.7.30&#xff0c;nginx1.25.2,mysqlrouter8.0.21&#xff0c;keepalived 1.3.5&#xff0c;…

Pikachu XSS(跨站脚本攻击)

文章目录 Cross-Site ScriptingXSS&#xff08;跨站脚本&#xff09;概述反射型[xss](https://so.csdn.net/so/search?qxss&spm1001.2101.3001.7020)(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss-盲打xss-过滤xss之htmlspecialcharsxss之href输出xss之js输出 Cros…

网络安全——黑客(自学)

想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01;&#xff01;&#xff01; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队…

MediaPipe+OpenCV 实现实时手势识别(附Python源码)

MediaPipe官网&#xff1a;https://developers.google.com/mediapipe MediaPipe仓库&#xff1a;https://github.com/google/mediapipe 一、MediaPipe介绍 MediaPipe 是一个由 Google 开发的开源跨平台机器学习框架&#xff0c;用于构建视觉和感知应用程序。它提供了一系列预训…

Otter改造 增加springboot模块和HTTP调用功能

环境搭建 & 打包 环境搭建&#xff1a; 进入 $otter_home/lib 目录执行&#xff1a;bash install.sh 打包&#xff1a; 进入$otter_home目录执行&#xff1a;mvn clean install -Dmaven.test.skip -Denvrelease发布包位置&#xff1a;$otter_home/target 项目背景 阿里…

R语言柱状图直方图 histogram

柱状图简介 柱状图也叫直方图&#xff0c;是展示连续性数值的分布状况。在x轴上将连续型数值分为一定数量的组&#xff0c;y轴显示对应值的频数。 R基本的柱状图 hist 我们用R自带的Orange数据来画图。 > head(Orange)Tree age circumference(圆周长) 1 1 118 …

Aqs独占/共享模式

独占锁和共享锁的概念 独占锁也叫排他锁&#xff0c;是指该锁一次只能被一个线程所持有。如果线程T对数据A加上排他锁后&#xff0c;则其他线程不能再对A加任何类型的锁。获得排它锁的线程即能读数据又能修改数据。 共享锁是指该锁可被多个线程所持有。如果线程T对数据A加上共…

应用程序转换工具Unite mac中文版软件特点

Unite mac是一款Mac平台上的应用程序转换工具&#xff0c;它可以将任何网站或Web应用程序转换成本地应用程序&#xff0c;以便更方便地访问和使用。 Unite mac软件特点 网站转应用程序&#xff1a;该软件可以将任何网站或Web应用程序转换成本地应用程序&#xff0c;方便用户更…

技术贴 | 深度解析 PostgreSQL Protocol v3.0(二)— 扩展查询

引言 PostgreSQL 使用基于消息的协议在前端&#xff08;客户端&#xff09;和后端&#xff08;服务器&#xff09;之间进行通信。该协议通过 TCP/IP 和 Unix 域套接字支持。 《深度解析 PostgreSQL Protocol v3.0》系列技术贴&#xff0c;将带大家深度了解 PostgreSQL Protoc…