Improve generator control and status displays
This commit is contained in:
@@ -56,6 +56,7 @@ class ReactorDashboard:
|
||||
DashboardKey("k", "Toggle secondary pump 2"),
|
||||
DashboardKey("b", "Toggle generator 1"),
|
||||
DashboardKey("v", "Toggle generator 2"),
|
||||
DashboardKey("x", "Toggle generator auto"),
|
||||
DashboardKey("t", "Toggle turbine"),
|
||||
DashboardKey("1/2/3", "Toggle turbine units 1-3"),
|
||||
DashboardKey("y/u/i", "Maintain turbine 1/2/3"),
|
||||
@@ -146,6 +147,8 @@ class ReactorDashboard:
|
||||
self._toggle_generator_unit(0)
|
||||
elif ch in (ord("v"), ord("V")):
|
||||
self._toggle_generator_unit(1)
|
||||
elif ch in (ord("x"), ord("X")):
|
||||
self._queue_command(ReactorCommand(generator_auto=not self.reactor.generator_auto))
|
||||
elif ch in (ord("t"), ord("T")):
|
||||
self._queue_command(ReactorCommand(turbine_on=not self.reactor.turbine_active))
|
||||
elif ord("1") <= ch <= ord("9"):
|
||||
@@ -259,6 +262,7 @@ class ReactorDashboard:
|
||||
self.reactor = Reactor.default()
|
||||
self.start_state = None
|
||||
self.pending_command = None
|
||||
self._last_state = None
|
||||
self.reset_requested = False
|
||||
self.log_buffer.clear()
|
||||
|
||||
@@ -468,9 +472,15 @@ class ReactorDashboard:
|
||||
def _turbine_status_lines(self) -> list[str]:
|
||||
if not self.reactor.turbine_unit_active:
|
||||
return ["n/a"]
|
||||
return [
|
||||
f"{idx + 1}:{'ON' if active else 'OFF'}" for idx, active in enumerate(self.reactor.turbine_unit_active)
|
||||
]
|
||||
lines: list[str] = []
|
||||
for idx, active in enumerate(self.reactor.turbine_unit_active):
|
||||
label = f"{idx + 1}:"
|
||||
status = "ON" if active else "OFF"
|
||||
if idx < len(getattr(self._last_state, "turbines", [])):
|
||||
t_state = self._last_state.turbines[idx]
|
||||
status = getattr(t_state, "status", status)
|
||||
lines.append(f"{label}{status}")
|
||||
return lines
|
||||
|
||||
def _total_load_supplied(self, state: PlantState) -> float:
|
||||
return sum(t.load_supplied_mw for t in state.turbines)
|
||||
@@ -551,7 +561,8 @@ class ReactorDashboard:
|
||||
if index >= len(pumps):
|
||||
return "n/a"
|
||||
state = pumps[index]
|
||||
return f"{'ON ' if state.active else 'OFF'} {state.flow_rate:6.0f} kg/s"
|
||||
status = getattr(state, "status", "ON" if state.active else "OFF")
|
||||
return f"{status:<8} {state.flow_rate:6.0f} kg/s"
|
||||
|
||||
def _current_demand(self) -> float:
|
||||
if self.reactor.consumer:
|
||||
|
||||
Reference in New Issue
Block a user