Show per-pump status and per-turbine output
This commit is contained in:
@@ -275,7 +275,8 @@ class ReactorDashboard:
|
||||
y,
|
||||
"Primary Loop",
|
||||
[
|
||||
("Pump", "ON" if self.reactor.primary_pump_active else "OFF"),
|
||||
("Pump1", self._pump_status(state.primary_pumps, 0)),
|
||||
("Pump2", self._pump_status(state.primary_pumps, 1)),
|
||||
("Flow", f"{state.primary_loop.mass_flow_rate:7.0f} kg/s"),
|
||||
("Inlet Temp", f"{state.primary_loop.temperature_in:7.1f} K"),
|
||||
("Outlet Temp", f"{state.primary_loop.temperature_out:7.1f} K"),
|
||||
@@ -287,7 +288,8 @@ class ReactorDashboard:
|
||||
y,
|
||||
"Secondary Loop",
|
||||
[
|
||||
("Pump", "ON" if self.reactor.secondary_pump_active else "OFF"),
|
||||
("Pump1", self._pump_status(state.secondary_pumps, 0)),
|
||||
("Pump2", self._pump_status(state.secondary_pumps, 1)),
|
||||
("Flow", f"{state.secondary_loop.mass_flow_rate:7.0f} kg/s"),
|
||||
("Inlet Temp", f"{state.secondary_loop.temperature_in:7.1f} K"),
|
||||
("Pressure", f"{state.secondary_loop.pressure:5.2f} MPa"),
|
||||
@@ -305,6 +307,15 @@ class ReactorDashboard:
|
||||
"Turbine / Grid",
|
||||
[
|
||||
("Turbines", " ".join(self._turbine_status_lines())),
|
||||
("Unit1 Elec", f"{state.turbines[0].electrical_output_mw:7.1f} MW" if state.turbines else "n/a"),
|
||||
(
|
||||
"Unit2 Elec",
|
||||
f"{state.turbines[1].electrical_output_mw:7.1f} MW" if len(state.turbines) > 1 else "n/a",
|
||||
),
|
||||
(
|
||||
"Unit3 Elec",
|
||||
f"{state.turbines[2].electrical_output_mw:7.1f} MW" if len(state.turbines) > 2 else "n/a",
|
||||
),
|
||||
("Electrical", f"{state.total_electrical_output():7.1f} MW"),
|
||||
("Load", f"{self._total_load_supplied(state):7.1f}/{self._total_load_demand(state):7.1f} MW"),
|
||||
("Consumer", f"{consumer_status}"),
|
||||
@@ -421,6 +432,12 @@ class ReactorDashboard:
|
||||
return [("Active", "None")]
|
||||
return [(comp, "IN PROGRESS") for comp in sorted(self.reactor.maintenance_active)]
|
||||
|
||||
def _pump_status(self, pumps: list, index: int) -> str:
|
||||
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"
|
||||
|
||||
def _draw_health_bar(self, win: "curses._CursesWindow", start_y: int) -> None:
|
||||
height, width = win.getmaxyx()
|
||||
if start_y >= height - 2:
|
||||
|
||||
Reference in New Issue
Block a user