若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/120345072
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)

需求

  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采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)》
  《案例分享:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、支持大量实时显示下位机数据)》
  《案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)》
  《案例分享: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_OBJECTpublic: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 SIMULATIONvoid on_pushButton_startSimulationAll_clicked();                // 开始采集所有void on_pushButton_startSimulation_clicked();                   // 开始采集组1void on_pushButton_startSimulation2_clicked();                  // 开始采集组2
#endifvoid on_pushButton_stopAll_clicked();                           // 停止所有void on_pushButton_stop_clicked();                              // 停止组1void on_pushButton_stop2_clicked();                             // 停止组2void 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();
#endifprotected 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;            // 模拟采集间隔
#endifprivate: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采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)相关推荐

  1. mysql Excel导出文件损坏_phpexcel 导出excel无法打开,提示文件格式或文件名无效,文件损毁,解决办法...

    require_once ('inc/PHPExcel-1.8/Classes/PHPExcel.php'); $objPHPExcel = new PHPExcel(); $objSheet = $ ...

  2. 案例分享|国内某大行数据平台案例

    1.项目背景 近年来,随着大数据时代的到来,中行的数据规模增长迅速,数据来源.形态也呈多样化趋势,对于海量数据的多层次.高时效分析挖掘需求日益增加. 当前,国内银行业采用基于开放X86的MPP架构数据 ...

  3. jqgrid实现客户端导出Excel、txt、word、json等数据格式的文件

    jqgrid插件貌似没有提供导出数据功能,项目以前有用bootstrap-table,有个相应的导出表格数据插件bootstrap-table-export,后面项目将所有的bootstrap-tab ...

  4. excel导出java不完整_有关Java POI导出excel表格中,单元格合并之后显示不全的解决方法。...

    我在table变换excel之后发现合并的单元格不能显示全部边框,在网上找了半天解决方案,终于解决了.具体解决代码如下; /** * 设置合并单元格的边框样式 * * @param sheet 当前表 ...

  5. java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示

    用户需要导出自定义表格,其中合并单元格样式遇到的问题,合并后只显示第一行第一列的边框,其他边框不显示,于是遍查百度,寻到一点思路 ①了解Excel绘制原理 ②了解绘制Excel顺序 ③绘制Excel单 ...

  6. oracle 数据 导出 excel 自动分多个文件,从oracle数据库中导出大量数据到excel中为什么自动分成了好几个excel文件《excel表格新手入门》...

    EXCEL中一个单元格中多行文本如何导入或复制到SQL SERVER 数据库表中? 保留换行符保存进数据表啊,读取出来显示的时候根据需要进行转换就行了,比如要在网页上显示,可以把换行符转换成HTML的 ...

  7. layui导出excel动态拆分单元格一个单元格显示多行数据合并单元格

    需求如图 首先说明是不能拆分单元格的,因为单元格是最小单位.只能通过合并单元格来实现. 实现思路:点击导出按钮,去请求后端数据.data数据如下: [{OrderNo: 'No637829645038 ...

  8. 【案例分享】华为防火墙出接口方式的单服务器智能DNS配置

    介绍出接口方式的单服务器智能DNS的配置举例. 组网需求 如图1所示,企业部署了一台ISP1服务器对外提供Web服务,域名为www.example.com.ISP1服务器的私网IP地址为10.1.1. ...

  9. 案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

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

最新文章

  1. VB6基本数据库应用(五):数据的查找与筛选
  2. Burpsuite学习(4)
  3. 2003配置php环境,2003配置PHP环境(有利于升级)
  4. 趣学python3(46)--求素数
  5. Drools DMN最新开源引擎性能改进
  6. Farthest points Sampling on 3D meshes with mesh kept based on diffusion distance
  7. 7.3数据类型及内置方法(一)
  8. SAP soamanager发布的Webservice服务,调用时出现http500报错
  9. VS C# 中使用番茄助手
  10. css中pc和pt,css中px和pt的区别是什么
  11. 数据安全之数据分类分级系统建设
  12. 女人,百花千红你最美
  13. 汉语言文学专业需要学计算机吗,读个汉语言文学专业,学了有什么鬼用?
  14. Ubuntu18.04搭建本地RTMP服务器librtmp+nginx,推送flv文件播放
  15. jqgrid冻结前后列
  16. 报表同比环比sql笔记
  17. js 移动端阻止下拉滑动、刷新
  18. android专项测试题,Android期末测考试试题(附带答案).doc
  19. postfix邮件服务器main.cf文件配置说明
  20. 从0到1搭建电商营销数据分析平台(六)——聊聊反作弊

热门文章

  1. c语言此项目已过期是什么意思,Visual Studio 2017 许可证已过期解决方案
  2. 2020年三月计算机二级甘肃报名官网,2020年3月甘肃计算机二级考试报名时间
  3. crout分解计算例题_如何计算有理函数的不定积分
  4. 把软件装进U盘,真正做到即插即用
  5. 怎么解决网页中播放视频没有声音?
  6. ps导出的gif图片不能动,或是只能动一次的解决办法
  7. 漫威电影宇宙的正确观影顺序
  8. 盘点业务流程的SAP操作调整
  9. matlab智能体运动轨迹,智能车辆运动轨迹规划方法的研究
  10. 爬取上交所公司信息,根据公司股票代码获取公司注册地址以及地址的经纬度