需求

  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. 【转帖】SmartNIC — TSO、GSO、LRO、GRO 技术

    目录 文章目录 目录 TSO(TCP Segmentation Offload) GSO(Generic Segmentation Offload) LRO(Large Receive Offload ...

  2. [转帖]Linux下进程管理知识(详细)总结

    一.简介 本文主要详细介绍进程相关的命令的使用.进程管理及调度策略的知识. 二.常用的命令解析 1.ps命令 命令选项 解析 -a 显示一个终端所有的进程 -u 显示进程的归属用户和内存占用情况 -x ...

  3. ChatGPT 中,G、P、T 分别是什么意思?

    流行的技术名词按发音难度排序,ChatGPT 肯定排在前面. 到底它为什么叫做 ChatGPT 呢? 先说 GPT:Generative Pre-Training Transformer Genera ...

  4. pycharm像vs那样进行代码折叠

    在visual studio中可以使用#region和#endregion来进行代码折叠,我尝试在pycharm中也可以使用相同的指令来折叠代码. 但是如果#endregion是在方法的最后面或者类的 ...

  5. PostgreSQL中的B-TREE索引

    分析了解pgsql中的索引 前言 索引 B-tree B-Tree和B+Tree的区别: pgsql中B-Tree 实现 如果该节点不是最右节点 如果该节点是最右节点 参考 分析了解pgsql中的索引 ...

  6. 【Mysql】复合主键和联合主键的区别

    复合主键: create table index_test ( a int not null, b int not null, c int not null, d int null, primary ...

  7. 从零开始构建一个电影知识图谱,实现KBQA智能问答[下篇]:Apache jena SPARQL endpoint及推理、KBQA问答Demo超详细教学

    从零开始构建一个电影知识图谱,实现KBQA智能问答[下篇]:Apache jena SPARQL endpoint及推理.KBQA问答Demo超详细教学 效果展示: 1.Apache jena SPA ...

  8. Github搜索代码技巧

    ↵相关链接: 码云(gitee)配置SSH密钥 码云gitee创建仓库并用git上传文件 git 上传错误This oplation equires one of the flowi vrsionso ...

  9. Python 实现 WebSocket 通信

    WebSocket 协议主要用于解决Web前端与后台数据交互问题,在WebSocket技术没有被定义之前,前台与后端通信需要使用轮询的方式实现,WebSocket则是通过握手机制让客户端与服务端建立全 ...

  10. [zookeeper] 集群搭建及启动后查询服务器状态异常解决

    一.集群搭建 1.每台服务器上部署zookeeper 1.将zookeeper压缩包解压到指定位置,在zookeeper解压后目录下创建数据目录zkData 2.在zkData下创建myid文件,内容 ...