需求
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(免积分):download.csdn.net/download/qq… 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
若该文为原创文章,转载请注明原文出处 本文章博客地址:hpzwl.blog.csdn.net/article/det…