diff --git a/eco/devices_general/vacuum/prepump.py b/eco/devices_general/vacuum/prepump.py
index 6310fcb..eca2186 100644
--- a/eco/devices_general/vacuum/prepump.py
+++ b/eco/devices_general/vacuum/prepump.py
@@ -202,9 +202,12 @@ class PrepumpSystem(Assembly):
def vent(self, line, timeout=300.0, poll=1.0):
"""Vent one channel to atmosphere through the GN2 vent line.
- Close its pump valve, open its vent valve, and wait for its own
- gauge to reach ``p_vent_target``, then close the vent valve again.
- Returns ``True`` on success, ``False`` if `timeout` elapses first.
+ Make sure every *other* channel's vent valve is closed (only one
+ channel should ever be feeding atmosphere into the shared vent line
+ at a time), then close this channel's pump valve, open its vent
+ valve, and wait for its own gauge to reach ``p_vent_target``, then
+ close the vent valve again. Returns ``True`` on success, ``False``
+ if `timeout` elapses first.
# planned, once the vent line's flow meter Fv exists: open at full
# flow first, then throttle down as the channel nears atmosphere
@@ -212,8 +215,12 @@ class PrepumpSystem(Assembly):
# for now the vent valve is simply open, then closed.
"""
line = self._get_line(line)
+ others = [l for l in self.lines if l is not line]
+
+ print(f"[prepump] venting '{line.name}': making sure other channels' vent valves are closed")
+ for other in others:
+ other.valve_vent.close()
- print(f"[prepump] venting '{line.name}'")
line.valve_prevac.close()
line.valve_vent.open()
@@ -468,11 +475,14 @@ def build_prepump_svg(system, live=False):
if getattr(system, "gp", None) is not None:
gx = x_end + 30
gp_label = _fmt_pressure(system.gp_pressure()) if live else "Gp"
+ # connector drawn *before* the gauge symbol, so the symbol's opaque
+ # disc (appended after, i.e. painted on top) hides the line ending
+ # underneath it rather than the line cutting across the disc
+ P.append(f'')
P.append(f'gpgp (Gp)')
P.append(_opaque_symbol("gauge", gx, pump_y, 13, "#9467bd", _gauge_ok_state(system.gp) if live else None))
P.append(f'{_esc(gp_label)}')
P.append('')
- P.append(f'')
def clickable(cmd, title, inner, cx, label, ly):
s = [f'{_esc(cmd)}{_esc(title)}']