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.mzph.cn/news/81840.shtml

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

相关文章

MySQL修改时间添加时间自动更新

第一种: database.php设置 false改为true;然后看是使用的什么框架 如果是tp5需要数据库是create_time和update_time字段 laravel的话,需要的是created_at和updated_at字段 如果想自定义的话,就在model文件里加上 protected $createTime create_at;// 默认的字段为create_t…

LED智能家居灯 开关调光 台灯落地灯控制驱动 降压恒流IC AP5191

产品描述 AP5191是一款PWM工作模式,高效率、外围简单、内置功率MOS管&#xff0c;适用于4.5-150V输入的高精度降压LED恒流驱动芯片。输出最大功率150W&#xff0c;最大电流6A。AP5191可实现线性调光和PWM调光&#xff0c;线性调光脚有效电压范围0.55-2.6V.AP5191 工作频率可以…

sketch for Mac快捷键大全

你可以在sketch中使用键盘快捷键来加快你的设计过程。要使用键盘快捷键&#xff0c;请同时按下下列列表的所有键。有些命令只能根据你在做什么或者你选择了什么才启用&#xff0c;所有把命令分成了下列不同的部分。 sketch下载地址&#xff1a;sketch 破解-Sketch for mac(专业…

# (1462. 课程表 IV leetcode)广搜+拓扑-------------------Java实现

&#xff08;1462. 课程表 IV leetcode&#xff09;广搜拓扑-------------------Java实现 题目表述 你总共需要上 numCourses 门课&#xff0c;课程编号依次为 0 到 numCourses-1 。你会得到一个数组 prerequisite &#xff0c;其中 prerequisites[i] [ai, bi] 表示如果你想…

【Unity程序技巧】Unity中的单例模式的运用

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

iptables 防火墙配置

文章目录 iptables 防火墙配置规则链的分类–五链处理的动作iptables 常用参数和作用iptables 防火墙配置查看规则链清空规则链设置默认规则将流入的流量丢弃允许ICMP协议流量通过删除默认策略允许所以流量通过设置将所有流入22端口的流量全部拒绝允许指定网段的22端口通过设置…

selenium学习

selenium模块和爬虫之间的关联 便捷的获取网站中动态加载的数据便捷实现模拟登录 什么是selenium模块 基于浏览器自动化的一个模块 selenium使用流程&#xff1a; - 环境安装&#xff1a;pip install selenium - 下载一个浏览器的驱动程序&#xff08;谷歌浏览器&#xff…

【数据分享】2000-2022年全球范围500m分辨率类NPP-VIIRS夜间灯光数据

夜间灯光数据是我们在各项研究中经常使用的数据&#xff01;我们平时使用的夜间灯光数据主要来源于NPP/VIIRS和DMSP/OLS两种渠道&#xff0c;这两种数据由于分辨率、数据年份、传感器等不同存在不兼容的情况限制了长时序夜间灯光数据的使用&#xff0c;针对该问题我们之前分享过…

已解决 Kotlin Error: Type mismatch: inferred type is String but Int was expected

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

【AI视野·今日Robot 机器人论文速览 第三十五期】Mon, 18 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Mon, 18 Sep 2023 Totally 44 papers &#x1f449;上期速览✈更多精彩请移步主页 Interesting: &#x1f4da;GelSplitter, 基于近红外与可见光融合实现高精度surfaceNormal重建的触觉传感器。(from 华中科技大学) 基于分光镜的紧凑型…

nginx代理socket链接集群后,频繁断开重连

目录 一、场景二、具体表现如下三、nginx代理配置四、nginx报错信息1、nginx错误日志2、nginx访问日志 五、服务端socket链接日志六、原因七、解决 一、场景 nginx使用集群模式代理多个socket链接&#xff0c;socket链接频繁断开重连 二、具体表现如下 三、nginx代理配置 ## …

Truenas Scale 安装 Official NextCloud

参考 Lawrence Systems 的 Youtube,频道有教程。 安装 安装 Collabora&#xff0c;只需要修改 账户&#xff0c;密码&#xff0c;及证书。 新增 dataset&#xff0c;名称 “NextCloud_Database”&#xff0c;其他默认新增 dataset&#xff0c;名称 “NextCloud_Data”&#…

什么是边缘计算网关?

边缘计算网关&#xff08;简称 边缘网关&#xff09;将云端功能扩展到本地的边缘设备&#xff0c;使边缘设备能够快速自主地响应本地事件&#xff0c;提供低延时、低成本、隐私安全、本地自治的本地计算服务。 同时所有服务都以 Docker 镜像方式安装&#xff0c;真正做到了跨平…

vue-grid-layout移动卡片到页面底部时页面滚动条跟随滚动

问题描述&#xff1a;默认情况下 vue-grid-layout 移动卡片到页面底部时页面滚动条并不会跟随卡片滚动。 问题解决&#xff1a; 在 grid-item中的move事件中&#xff0c;获取到当前移动的元素&#xff0c;并使用scrollIntoView方法来实现滚动条跟随。 代码如下&#xff1a; c…

安卓系列机型 另类体验第三方系统 DSU操作步骤解析 不影响主系统开启第二系统

dsu loader即 动态系统更新&#xff0c;可以在使用动态分区的安卓设备上&#xff0c;不影响原来系统的同时安装一个副系统&#xff0c;用于体验最新的原生安卓系统。可以不影响主系统的基础上体验其他gsi第三方。DSU 依赖于 Android 动态分区功能&#xff0c;并要求 GSI 作为可…

python爬虫爬取电影数据并做可视化

思路&#xff1a; 1、发送请求&#xff0c;解析html里面的数据 2、保存到csv文件 3、数据处理 4、数据可视化 需要用到的库&#xff1a; import requests,csv #请求库和保存库 import pandas as pd #读取csv文件以及操作数据 from lxml import etree #解析html库 from …

山西电力市场日前价格预测【2023-09-19】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-19&#xff09;山西电力市场全天平均日前电价为358.08元/MWh。其中&#xff0c;最高日前电价为417.72元/MWh&#xff0c;预计出现在19: 00。最低日前电价为325.97元/MWh&#xff0c;预计…

十四、流式编程(2)

本章概要 中间操作 跟踪和调试流元素排序移除元素应用函数到元素在 map() 中组合流 中间操作 中间操作用于从一个流中获取对象&#xff0c;并将对象作为另一个流从后端输出&#xff0c;以连接到其他操作。 跟踪和调试 peek() 操作的目的是帮助调试。它允许你无修改地查看…

为何网站一定要使用SSL证书

当您在浏览器中输入网址并按下回车键时&#xff0c;您是否曾想过您的个人信息和隐私是否会被窃取&#xff1f;在当今数字化的时代&#xff0c;网络安全问题越来越受到人们的关注。而SSL证书正是保护您的网站和用户信息安全的重要工具。 SSL证书是一种数字证书&#xff0c;它使用…

Qt Quick 之 QML 与 C++ 混合编程详解

Qt Quick 之 QML 与 C 混合编程详解 一、Qt Quick 之 QML 与 C 混合编程详解在 QML 中使用 C 类和对象实现可以导出的 C 类Q_INVOKABLE 宏Q_ENUMSQ_PROPERTY注册一个 QML 中可用的类型注册 QML 类型在 QML 中导入 C 注册的类型完整的 colorMaker 实例导出一个 C 对象为 QML 的属…