From bb3d940fb4ce0dd3efc56b934a7b4ea8ffab4b13 Mon Sep 17 00:00:00 2001 From: bd Date: Sat, 19 Apr 2025 03:37:43 -0400 Subject: GUI validate program --- gui/gui.h | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'gui/gui.h') diff --git a/gui/gui.h b/gui/gui.h index 09fe0d9..97f131a 100644 --- a/gui/gui.h +++ b/gui/gui.h @@ -5,8 +5,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -42,6 +42,7 @@ class GUI : public QMainWindow void sendRefreshCache(); void sendRefreshRegisters(); void sendRunSteps(int steps); + void sendConfigure(std::vector ways, bool is_pipelined); private slots: void onWorkerClockCycles(int value, int pc); @@ -77,9 +78,22 @@ class GUI : public QMainWindow void on_save_program_state_btn_clicked(); + /** + * Validates that the user has provided a valid program and cache. + * If so, `this->ready' is set and the user options are passed to the + * worker. + * If not, rudely complains. + */ + void on_config_clicked(); + private: Ui::GUI *ui; + /** + * Indicates if the program has been initialized. + */ + bool ready; + /** * The message displayed on the status bar. */ @@ -91,21 +105,19 @@ class GUI : public QMainWindow std::vector p; /** - * The current cache configurations. + * If this stage is pipelined or not. */ - std::vector c; + bool is_pipelined = false; /** - * If this stage is pipelined or not. + * The possible step slider values. */ - bool is_pipelined = false; + QVector step_values = {1, 5, 20, 50, 250, 1000, 10000}; QThread workerThread; Worker *worker; - QVector step_values = {1, 5, 20, 50, 250, 1000, 10000}; - const std::map mnemonicNameMap = { {Mnemonic::ADD, "ADD"}, {Mnemonic::SUB, "SUB"}, {Mnemonic::MUL, "MUL"}, {Mnemonic::QUOT, "QUOT"}, @@ -132,6 +144,5 @@ class GUI : public QMainWindow auto it = mnemonicNameMap.find(mnemonic); return (it != mnemonicNameMap.end()) ? it->second : "Unknown"; } - }; #endif // GUI_H -- cgit v1.2.3