65 lines
1.4 KiB
C++
65 lines
1.4 KiB
C++
// host/src/MainWindow.h
|
|
#pragma once
|
|
|
|
#include <QMainWindow>
|
|
#include <QSerialPort>
|
|
#include <QTabWidget>
|
|
#include <QTextEdit>
|
|
#include <QToolBar>
|
|
#include <QComboBox>
|
|
#include <QPushButton>
|
|
#include <QSerialPortInfo>
|
|
#include <QMessageBox>
|
|
#include <QEvent>
|
|
#include <QGestureEvent>
|
|
#include <QSwipeGesture>
|
|
#include <QTimer>
|
|
#include "GraphWidget.h"
|
|
|
|
class MainWindow : public QMainWindow {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWindow(QWidget *parent = nullptr);
|
|
~MainWindow();
|
|
|
|
protected:
|
|
bool event(QEvent *event) override;
|
|
|
|
private slots:
|
|
void handleSerialData();
|
|
void connectToPort();
|
|
void refreshPorts();
|
|
void onPortError(QSerialPort::SerialPortError error);
|
|
|
|
// Action Slots
|
|
void checkDeviceId();
|
|
void runCalibration();
|
|
void startSweep();
|
|
void toggleMeasurement();
|
|
|
|
private:
|
|
void setupUi();
|
|
void parseData(const QString &data);
|
|
void handleSwipe(QSwipeGesture *gesture);
|
|
|
|
QSerialPort *serial;
|
|
|
|
// Views
|
|
GraphWidget *finalGraph; // Bode Plot
|
|
GraphWidget *rawGraph; // Raw Data
|
|
QTextEdit *logWidget; // Serial Log
|
|
|
|
// Layout
|
|
QTabWidget *tabWidget;
|
|
QToolBar *toolbar;
|
|
QComboBox *portSelector;
|
|
QPushButton *connectBtn;
|
|
QPushButton *checkIdBtn;
|
|
QPushButton *calibrateBtn;
|
|
QPushButton *sweepBtn;
|
|
QPushButton *measureBtn;
|
|
QDoubleSpinBox *spinFreq;
|
|
|
|
bool isMeasuring = false;
|
|
}; |