// host/src/MainWindow.h #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #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; };