需求

  1.0-7通道压力采集,采集频率1~100Khz(1,10,20,30…1000Khz);
  2.0-7通道压力,可设置补偿值,测量范围;
  3.编码器0,1脉冲采集,计算位移,速度,加速度;
  4.所有通道可设置别名,隐藏/显示状态;
  5.支持定时采集,指定距离采集(以编码器周长,分辨率与脉冲计算);
  6.支持分组,可将通道0-7分为2组,并且可以分别采集和停止;
  7.对设置设置界面和主界面的所有相关配置参数进行保存,并在下次启动时恢复最后一次启动的配置数据
  8.支持日志系统,对相关操作和数据进行日志输出
  9.支持坐标轴缩放;
  10.支持不同y坐标进行加权操作,使其显示在同一个图中;
  11.使用udp重传控制机制,保障传输大量数据时,数据传输速度快,稳定,可靠。
  12.支持需要的数据可打印;

 

相关博客

  《案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出exce、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
  《案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)
  《案例分享:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、支持大量实时显示下位机数据)
  《案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)
  《Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
  《Qt开发笔记之Qwt(一):Qwt介绍、编译与Demo

 

体验下载地址

  特别注意:发布用的模拟数据方式,过程中的演示Demo,模拟数据方式与数据处理相关的功能不可用。
  CSDN(免积分):https://download.csdn.net/download/qq21497936/23361384
  QQ群:1047134658(点击“文件”搜索“highFreq”,群内与博文同步更新)

 

Demo演示

  
  

 

Demo v1.20.1

  

 

Demo v1.7.1(提供模拟采集演示版本)

  
  
  
  
  回放,可查看之前采集的数据(回放之后,可导出当前回放的数据到excel表)
  

  数据导出为excel表,查看数据:
  

相关头文件源码

#ifndef HIGHFREQCOLLECTMAINWINDOW_H
#define HIGHFREQCOLLECTMAINWINDOW_H #include <QMainWindow>
#include <QLabel>
#include <QPushButton>
#include <QAbstractButton>
#include <QCheckBox>
#include <QFrame>
#include <QElapsedTimer>
#include <QTimer> #define SIMULATION (1) // 是否模拟 namespace Ui {
class HighFreqCollectMainWindow;
} class HighFreqCollectMainWindow : public QMainWindow
{
Q_OBJECT public:
explicit HighFreqCollectMainWindow(QWidget *parent = 0);
~HighFreqCollectMainWindow(); protected:
void loadCfg();
void saveCfg();
void updateEncodeStep(); protected:
void initControls();
void updateControls();
void updateControlsPlayback(); // 更新控件回放控件
void initCustomPlot(); protected slots:
void slot_initControls(); protected slots:
void slot_lineVisibleButtonClicked(bool checked); // 是否显示通道槽函数
void slot_startCollect(); // 开始采集槽函数
void slot_startCollect2(); // 开始采集槽函数
void slot_timeOutCollectEnd(); // 定时器停止
void slot_timeOutCollectEnd2(); // 定时器停止
void slot_startPlayback(); // 开始回放
void slot_stopPlayback(); // 停止回放 private slots:
void on_pushButton_apply_clicked(); #if SIMULATION
void on_pushButton_startSimulationAll_clicked(); // 开始采集所有
void on_pushButton_startSimulation_clicked(); // 开始采集组1
void on_pushButton_startSimulation2_clicked(); // 开始采集组2
#endif
void on_pushButton_stopAll_clicked(); // 停止所有
void on_pushButton_stop_clicked(); // 停止组1
void on_pushButton_stop2_clicked(); // 停止组2 void on_pushButton_group_clicked();
void on_pushButton_channelSet_clicked();
void on_pushButton_paramSet_clicked();
void on_pushButton_playback_clicked();
void on_pushButton_export_clicked();
void on_pushButton_exit_clicked(); private:
Ui::HighFreqCollectMainWindow *ui; #if SIMULATION
public: // 模拟
void startSimulation();
void startSimulation2();
void stopSimulation();
void stopSimulation2(); protected slots:
void slot_timeOutSimulation();
#endif protected slots:
void slot_playback(); private:
bool _collecting;
bool _collecting2;
bool _collectFinished;
bool _collectFinished2; private:
QList<QString> _listChannelName;
QList<QColor> _listChannelColor;
QList<double> _listChannelOffset;
QList<double> _listChannelMin;
QList<double> _listChannelMax; int _c;
int _c2;
int _n;
int _n2;
int _freq;
int _mode;
QString _saveDir; QList<QLabel *> _listLabelName;
QList<QPushButton *> _listPushButton; QString _cfgFile; QList<QCheckBox *> _listCheckedBox; private:
QElapsedTimer _elapsedTimer; #if SIMULATION
private:
double _nowX; // 当前X值,即当前采集时间,从0开始
double _nowMinY; // 最小Y值
double _nowMaxY; // 最大Y值
QTimer *_pTimerSimulation; // 模拟采集时使用的定时器
int _intervalSimulation; // 模拟采集间隔
#endif private:
QTimer *_pTimerCollectEnd; // 采集固定式时间时使用
QTimer *_pTimerCollectEnd2; // 采集固定式时间时使用
double _distanceEnd; // 采集固定距离时使用
double _distanceEnd2; // 采集固定距离时使用
double _encoder0Count; // 当前采集位移0脉冲数
double _encoder1Count; // 当前采集位移1脉冲数
double _encoder0Step; // 编码器0的脉冲位移
double _encoder1Step; // 编码器1的脉冲位移 private:
QList<int> _listGroup1; // 组1组成
QList<int> _listGroup2; // 组2组成 private:
bool _playback; // 当前是否回放
QString _record; // 回放的记录名称(文件夹名称,yyyy-MM-dd hh-mm-ss)
QTimer *_pTimerPlayback; // 回放读取数据定时器
bool _firstPlayback;
}; #endif // HIGHFREQCOLLECTMAINWINDOW_H
 

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/120345072

案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出exce、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)的更多相关文章

  1. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...

  2. 项目实战:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出exel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

    需求   1.通道使能.选择.更改通道名称.设置显示颜色  2.采样率可设置(Sa/s/chj)  3.单位换算,按照给定的进行换算  4.对通道可进行设置补偿值  5.通道取消可动态显示和隐藏,并可 ...

  3. 案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/118685521 长期持续带来更多项目与技术分享 ...

  4. 案例分享:Qt+Arm基于RV1126平台的内窥镜软硬整套解决方案(实时影像、冻结、拍照、录像、背光调整、硬件光源调整,其他产品也可使用该平台,如视频监控,物联网产品等等)

    自研产品系列方案   1. 基于瑞芯微的 RV1126 芯片平台:  2. 外接 USB 摄像头(OV9734. OV6946.OV2740 等 UVC 模块)作为图像输入源:  3. 可通过 LED ...

  5. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  6. Arduino UNO +ESP8266采集数据上传到贝壳网

    集成电路设计大赛赛程将至,我现在还是毫无头绪,然后又报了一个互联网+,比赛报了,东西就必须出来,时间很紧的情况下,所以选择了开源的arduino的进行完成.从开始接触Arduino到完成工程,前前后后 ...

  7. mysql的"双1设置"-数据安全的关键参数(案例分享)

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  8. MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  9. C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 VC中进程与进程之间共享内存 .net环境下跨进程、高频率读写数据 使用C#开发Android应用之WebApp 分布式事务之消息补偿解决方案

    C# .Net 多进程同步 通信 共享内存 内存映射文件 Memory Mapped 转 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). ...

  10. 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例

    前言 自著名华人物理学家高锟先生提出"光传输理论",实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程.本世纪初期,ASON/OADM ...

随机推荐

  1. [转帖]paramiko简介

    https://www.cnblogs.com/qiujichu/p/12048763.html 一.什么是paramiko 要想明白什么是paramiko,要先明白ssh协议. 二.什么是ssh协议 ...

  2. 对于Vue3和Ts的心得和思考

    作者:京东物流 吴云阔 1 前言 Vue3已经正式发布了一段时间了,各种生态已经成熟.最近使用taro+vue3重构冷链的小程序,经过了一段时间的开发和使用,有了一些自己的思考. 总的来说,Vue3无 ...

  3. node使用nodemailer发送邮件

    安装模块 npm install nodemailer 代码 const nodemailer = require('nodemailer'); // 查找到有关QQ邮箱的相关信息在 /node_mo ...

  4. 【验证码逆向专栏】最新某度旋转验证码 v2 逆向分析

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容.敏感网址.数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许 ...

  5. CCFLOW源码解读系列01-----发起流程

    1.发起流程 发起流程时主要做了两件事:一是写入业务数据表,二是新建一条审批流程记录. 发起流程的方法 public static Int64 Node_CreateStartNodeWork(str ...

  6. Mysql 为现有数据生成Guid

    GUID 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中. ...

  7. Walrus 实用教程|Walrus + Gitlab,打通CI/CD 自动化交付!

    Walrus file 是 Walrus 0.5 版本推出的新功能,用户可以通过一个非常简洁的 YAML 描述应用或基础设施资源的部署配置,然后通过 Walrus CLI 执行 walrus appl ...

  8. 26岁的超经典音乐播放器Winamp归来!UI彻底重构:支持iOS/安卓

    快科技4月18日讯,还记得Winamp吗? 这款1997年首发的媒体播放器,已经走过了26年的历史.它凭借高度简洁.大量的皮肤.丰富的定制性.多元的格式支持等成为有史以来最好的音乐播放器之一. 当年的 ...

  9. VS Code 使用

    Tips 总结 1. VSCode显示空格和tab符号 1.打开setting,在搜索框中输入renderControlCharacters,选中勾选框,即可显示tab 2.在搜索框中输入render ...

  10. 【Sensor有点意思】之重要参数理解

    1.sensor 通过CMOS图像传感器感受环境光,输出图像供我们分析,通过sensor宣传册了解一下sensor性能和情况.下图以斯特威SC8238为例. 2. 跟sensor相关的重要参数: 2. ...