diff --git a/client/brewpi_gui.py b/client/brewpi_gui.py index e68ffc8..7f2c1d7 100755 --- a/client/brewpi_gui.py +++ b/client/brewpi_gui.py @@ -284,6 +284,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow): self.sud_elapsed_seconds = None self.sud_name = '' self.sud_schedule = [] + self.sud_pot_mass = 0 self.sud_step_index = None self.sud_step_descr = None self.sud_step_type = None @@ -486,6 +487,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow): self.sud_elapsed_seconds = None self.sud_name = '' self.sud_schedule = [] + self.sud_pot_mass = 0 self.sud_step_index = None self.sud_step_descr = None self.sud_step_type = None @@ -852,15 +854,28 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow): if self.sud_step_type == 'hold': remaining = max(self.sud_hold_remaining, 0.0) text += " ({:.0f}:{:02.0f} remaining)".format(remaining // 60, remaining % 60) + # sud_step_index is the same 0-based index Sud.index uses into its + # own schedule list (see components/sud.py) - self.sud_schedule is + # built from the very same doc, so it lines up directly; grain_mass/ + # water_mass are already resolved against default.step there (see + # components/sud.py's _build_step()). + if self.sud_step_index is not None and 0 <= self.sud_step_index < len(self.sud_schedule): + step = self.sud_schedule[self.sud_step_index] + pot = self.sud_pot_mass + water = step.get('water_mass', 0) + grain = step.get('grain_mass', 0) + text += " Pot: {:.2f} kg, Water: {:.2f} kg, Grain {:.2f} kg, total {:.2f} kg".format( + pot, water, grain, pot + water + grain) self.statusBar().showMessage(text) def update_sud_forecast(self, doc): try: - name, _, schedule, _, _, _, _ = Sud._parse_data(doc) + name, _, schedule, pot_mass, _, _, _ = Sud._parse_data(doc) except (KeyError, TypeError): return self.sud_name = name self.sud_schedule = schedule + self.sud_pot_mass = pot_mass self.sud_empty = len(schedule) == 0 self.update_sud_actions() if self.sud_empty: