EIS/host/src/MainWindow.h

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;
};