第一代光电小工具(一)

简介: 欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资

头图

第一代光电小工具(一)

[toc]

关键字: 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

相关文章
|
7月前
|
存储 算法 数据处理
FPGA:可编程逻辑设备的领军者及其在数字信号处理中的应用
FPGA:可编程逻辑设备的领军者及其在数字信号处理中的应用
119 2
|
7月前
|
传感器 算法 机器人
在实用化人形机器人控制系统中深入应用FPGA的框架设计(基于特斯拉Optimus-Gen2的硬件系统)
针对实用化人形机器人的控制系统,以深入应用FPGA技术为指导思想做了一个框架设计,提供一个具象化的设计实例、参考技术方案,协助各研发团队及相关决策者了解这一技术思路的价值。 进而,笔者希望读者将这个框架设计与《在实用化人形机器人研发流程中深入应用FPGA技术的流程图》结合起来进行分析、思考,希望: 进一步降低将FPGA深入应用于人形机器人在纯粹技术维度上的门槛; 助力更多正在人形机器人领域参与竞争的团队 -- 及时做出实质性决策,及时将更多资源分配到深入应用FPGA技术这一竞争维度。
314 4
在实用化人形机器人控制系统中深入应用FPGA的框架设计(基于特斯拉Optimus-Gen2的硬件系统)
|
算法 数据可视化 前端开发
第一代光电小工具(二)
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
存储
能在-40℃到50℃范围满血工作,新型锂电池问世
以后在北方开电车也不是问题了?
145 0
能在-40℃到50℃范围满血工作,新型锂电池问世
|
5G 芯片
专注射频集成电路设计,「米乐为微电子」提供高集成度芯片解决方案
其产品覆盖了全频段(DC -110GHz)以及全品类,具有超宽频、跨多个工艺线的技术优势。
专注射频集成电路设计,「米乐为微电子」提供高集成度芯片解决方案
|
传感器 供应链 自动驾驶
为导航系统而生的惯量传感器,博世推出 MEMS 传感器技术集大成者 SMI230
SMI230 一定程度上是博世惯量传感器的集大成之作,所以博世的相关专家将其称为惯量传感器中的“New Star”,也期待其未来会有闪耀的表现。
723 0
|
传感器 前端开发 自动驾驶
加特兰 77GHz CMOS 毫米波雷达芯片从研发到量产的背后故事
这款被命名为 ALPS 的全新一代 CMOS 毫米波雷达芯片即将于 3 月 21 日问世。
973 0