From 5e890e8fa1a0e8349dd2cc0cf2d9fef87d452173 Mon Sep 17 00:00:00 2001 From: Martin <martin.hogstedt@hotmail.com> Date: Mon, 8 Jul 2024 14:19:52 +0200 Subject: [PATCH] fixed broken gui by replacing get_state with get_gui_state where needed --- src/simudator/core/modules/register.py | 2 +- .../module_graphics_item/integer_memory_graphic.py | 2 +- .../gui/module_graphics_item/memory_graphic.py | 4 ++-- .../module_graphics_item/module_graphics_item.py | 2 +- .../gui/module_graphics_item/register_graphic.py | 4 ++-- .../processor/mia/gui/mia_micro_memory_graphic.py | 2 +- src/simudator/processor/mia/gui/pc_graphic.py | 2 +- src/simudator/processor/mia/gui/upc_graphic.py | 14 +++++++++----- src/simudator/processor/mia/modules/lc.py | 5 +++++ .../processor/mia/modules/micro_memory.py | 4 +++- 10 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/simudator/core/modules/register.py b/src/simudator/core/modules/register.py index 1d066ed..4f15d9d 100644 --- a/src/simudator/core/modules/register.py +++ b/src/simudator/core/modules/register.py @@ -71,7 +71,7 @@ class Register(Module): return state def get_gui_state(self) -> dict[str, Any]: - state = self.get_state() + state = {"name": self.name, "value": self._value} return state def set_state(self, state: dict[str, Any]) -> None: diff --git a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py index a177b62..c746c08 100644 --- a/src/simudator/gui/module_graphics_item/integer_memory_graphic.py +++ b/src/simudator/gui/module_graphics_item/integer_memory_graphic.py @@ -248,6 +248,6 @@ class IntegerMemoryTable(MemoryTable): # -7 + 16 % 16 = 9 = 1001 = -7 value = (value + max_value) % max_value - index = row * 4 + col + index = row * self._column_size + col state['memory'][index] = value self._memory.set_state(state) diff --git a/src/simudator/gui/module_graphics_item/memory_graphic.py b/src/simudator/gui/module_graphics_item/memory_graphic.py index 5cf08f5..26c95fe 100644 --- a/src/simudator/gui/module_graphics_item/memory_graphic.py +++ b/src/simudator/gui/module_graphics_item/memory_graphic.py @@ -191,12 +191,12 @@ class MemoryTable(QTableWidget): return def _on_cell_changed(self, row, col): - state = self._memory.get_state() + state = self._memory.get_gui_state() item = self.item(row, col) value = item.text() if value == "": return - index = row * 4 + col + index = row * self._column_size + col state['memory'][index] = value self._memory.set_state(state) diff --git a/src/simudator/gui/module_graphics_item/module_graphics_item.py b/src/simudator/gui/module_graphics_item/module_graphics_item.py index 89d8e9a..b676114 100644 --- a/src/simudator/gui/module_graphics_item/module_graphics_item.py +++ b/src/simudator/gui/module_graphics_item/module_graphics_item.py @@ -57,7 +57,7 @@ class ModuleGraphicsItem(QGraphicsObject, QGraphicsItem): # Get information about module # Get inputs/outputs is not always implemented so might not show all ports - self.state = module.get_state() + self.state = module.get_gui_state() self.input_signals = module.get_input_signals() self.output_signals = module.get_output_signals() diff --git a/src/simudator/gui/module_graphics_item/register_graphic.py b/src/simudator/gui/module_graphics_item/register_graphic.py index b84f141..5f27cbd 100644 --- a/src/simudator/gui/module_graphics_item/register_graphic.py +++ b/src/simudator/gui/module_graphics_item/register_graphic.py @@ -38,7 +38,7 @@ class RegisterGraphicsItem(ModuleGraphicsItem): ) def update(self): - state = self.module.get_state() + state = self.module.get_gui_state() full_text = f"{state['name']}: {state['value']}" self.text.setText(full_text) @@ -52,6 +52,6 @@ class IntegerRegisterGraphicsItem(RegisterGraphicsItem): def update(self): parameter = self.module.get_parameter() hex_length = math.ceil(parameter["bit_length"] / 4) - state = self.module.get_state() + state = self.module.get_gui_state() full_text = f"{state['name']}: {state['value']:0{hex_length}x}" self.text.setText(full_text) diff --git a/src/simudator/processor/mia/gui/mia_micro_memory_graphic.py b/src/simudator/processor/mia/gui/mia_micro_memory_graphic.py index aedf31b..6910d2b 100644 --- a/src/simudator/processor/mia/gui/mia_micro_memory_graphic.py +++ b/src/simudator/processor/mia/gui/mia_micro_memory_graphic.py @@ -35,7 +35,7 @@ class MicroMemoryGraphicsItem(MiaMemoryGraphicsItem): def update(self): # get instruction field - uM_state = self.module.get_state() + uM_state = self.module.get_gui_state() instr = uM_state["curr_instr"] diff --git a/src/simudator/processor/mia/gui/pc_graphic.py b/src/simudator/processor/mia/gui/pc_graphic.py index 34ed5fc..3542505 100644 --- a/src/simudator/processor/mia/gui/pc_graphic.py +++ b/src/simudator/processor/mia/gui/pc_graphic.py @@ -10,7 +10,7 @@ class PcGraphicsItem(IntegerRegisterGraphicsItem): """ def update(self): - self.state = self.module.get_state() + self.state = self.module.get_gui_state() name = self.state["name"] value = self.state["value"] diff --git a/src/simudator/processor/mia/gui/upc_graphic.py b/src/simudator/processor/mia/gui/upc_graphic.py index 85d27b9..453a1e1 100644 --- a/src/simudator/processor/mia/gui/upc_graphic.py +++ b/src/simudator/processor/mia/gui/upc_graphic.py @@ -11,9 +11,9 @@ class uPcGraphicsItem(IntegerRegisterGraphicsItem): """ def update(self): - self.state = self.module.get_state() - name = self.state["name"] - value = self.state["value"] + self.gui_state = self.module.get_gui_state() + name = self.gui_state["name"] + value = self.gui_state["value"] full_text = f"{name}: {value:02x}" @@ -27,12 +27,16 @@ class uPcGraphicsItem(IntegerRegisterGraphicsItem): ) # Draw from K1 port - from_k1 = PortGraphicsItem(self.module.signals["in_k1"], Orientation.UP, parent=self) + from_k1 = PortGraphicsItem( + self.module.signals["in_k1"], Orientation.UP, parent=self + ) from_k1.setPos(width * 2 / 8, 0) self.ports.append(from_k1) # Draw from K2 port - from_k2 = PortGraphicsItem(self.module.signals["in_k2"], Orientation.UP, parent=self) + from_k2 = PortGraphicsItem( + self.module.signals["in_k2"], Orientation.UP, parent=self + ) from_k2.setPos(width * 6 / 8, 0) self.ports.append(from_k2) diff --git a/src/simudator/processor/mia/modules/lc.py b/src/simudator/processor/mia/modules/lc.py index 6f815a3..bf5b89d 100644 --- a/src/simudator/processor/mia/modules/lc.py +++ b/src/simudator/processor/mia/modules/lc.py @@ -158,6 +158,11 @@ class LC(Module): state["decrement_by_one"] = self._decrement_by_one return state + def get_gui_state(self) -> dict[str, Any]: + state = super().get_gui_state() + state["value"] = self._value + return state + def get_parameter(self) -> dict[str, Any]: """Return a dictionary of the parameters of the loop counter, i.e. the bit length of the counter. diff --git a/src/simudator/processor/mia/modules/micro_memory.py b/src/simudator/processor/mia/modules/micro_memory.py index 4109d9b..9ffe889 100644 --- a/src/simudator/processor/mia/modules/micro_memory.py +++ b/src/simudator/processor/mia/modules/micro_memory.py @@ -284,8 +284,10 @@ class MicroMemory(Module): return state def get_gui_state(self) -> dict[str, Any]: - state = super().get_state() + state = super().get_gui_state() state["memory"] = self._memory[:] + state["halt"] = self._halt + state["curr_instr"] = self._curr_instr return state def set_state(self, state: dict) -> None: -- GitLab