需求
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介绍、编译与使用》
特别注意:发布用的模拟数据方式,过程中的演示Demo,模拟数据方式与数据处理相关的功能不可用。
CSDN(免积分):https://download.csdn.net/download/qq21497936/23361384
QQ群:1047134658(点击“文件”搜索“highFreq”,群内与博文同步更新)


回放,可查看之前采集的数据(回放之后,可导出当前回放的数据到excel表)
数据导出为excel表,查看数据:
#ifndefHIGHFREQCOLLECTMAINWINDOW_H#defineHIGHFREQCOLLECTMAINWINDOW_H#include<QMainWindow>#include<QLabel>#include<QPushButton>#include<QAbstractButton>#include<QCheckBox>#include<QFrame>#include<QElapsedTimer>#include<QTimer>#defineSIMULATION(1)// 是否模拟namespaceUi{classHighFreqCollectMainWindow;}classHighFreqCollectMainWindow:publicQMainWindow{Q_OBJECTpublic:explicitHighFreqCollectMainWindow(QWidget*parent=0);~HighFreqCollectMainWindow();protected:voidloadCfg();voidsaveCfg();voidupdateEncodeStep();protected:voidinitControls();voidupdateControls();voidupdateControlsPlayback();// 更新控件回放控件voidinitCustomPlot();protectedslots:voidslot_initControls();protectedslots:voidslot_lineVisibleButtonClicked(boolchecked);// 是否显示通道槽函数voidslot_startCollect();// 开始采集槽函数voidslot_startCollect2();// 开始采集槽函数voidslot_timeOutCollectEnd();// 定时器停止voidslot_timeOutCollectEnd2();// 定时器停止voidslot_startPlayback();// 开始回放voidslot_stopPlayback();// 停止回放privateslots:voidon_pushButton_apply_clicked();#ifSIMULATIONvoidon_pushButton_startSimulationAll_clicked();// 开始采集所有voidon_pushButton_startSimulation_clicked();// 开始采集组1voidon_pushButton_startSimulation2_clicked();// 开始采集组2#endifvoidon_pushButton_stopAll_clicked();// 停止所有voidon_pushButton_stop_clicked();// 停止组1voidon_pushButton_stop2_clicked();// 停止组2voidon_pushButton_group_clicked();voidon_pushButton_channelSet_clicked();voidon_pushButton_paramSet_clicked();voidon_pushButton_playback_clicked();voidon_pushButton_export_clicked();voidon_pushButton_exit_clicked();private:Ui::HighFreqCollectMainWindow*ui;#ifSIMULATIONpublic:// 模拟voidstartSimulation();voidstartSimulation2();voidstopSimulation();voidstopSimulation2();protectedslots:voidslot_timeOutSimulation();#endifprotectedslots:voidslot_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;#ifSIMULATIONprivate: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
网友评论