spo/ass2/simulator/mainwindow.h
2025-12-10 17:57:28 +01:00

49 lines
967 B
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QThread>
#include "machine.h"
#include "loader.h"
#include "executor.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_readButton_clicked();
void onLoadTriggered();
void on_runButton_clicked();
void on_stepButton_clicked();
void on_stopButton_clicked();
void updateRegisters();
void updateUI();
void setStatusLightRunning();
void setStatusLightStopped();
void setStatusLightEnded();
signals:
void startExecutor();
void stopExecutor();
void stepExecutor();
private:
Ui::MainWindow *ui;
Loader loader;
Machine machine;
Executor executor{ &machine };
QThread* executorThread;
QTimer* uiUpdateTimer;
};
#endif // MAINWINDOW_H