需求
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();