- docs/did_you_know/: one short tip per feature added since May 2026 (<date>-<slug>.md, YAML front matter: added/tags/details), listed newest first; index.md describes the format for adding more. - New pages for features that had none: launching, command_history, tab_completion, live_gui, tweak, scanning, status_server, channel_access, shared_files, schematic_panels. Wired into index.rst together with the existing queues page. - Fix archiver_stripchart/listening_monitor: the method is archiver.strip_plot (strip_chart does not exist on DataHub); document the per-device .strip_plot(). - NAMESPACE_MONITOR_FORMAT.md: scan monitoring is wired into Daq's scan callbacks since 2026-09-09. - scripts/eco-docs (+ -install-user-service): build the docs from an own clone and serve them over HTTP as user systemd units, rebuilt by a timer; a failed build never replaces the served site.
2.4 KiB
Live schematic panels: prepump, alarms, beamline
Some assemblies can draw themselves as a clickable SVG schematic that updates
live from the control system. These are a scriptable, in-session version of
the corresponding caQtDM panels. Open one with .show():
prepump.show() # prepump P&ID: valves, gauges, pumps, per-line state
alarms.show(live=True) # Bernina alarm overview, green/red per channel
beamline.svg_panel(live=True) # X-ray beamline layout
Where the panel appears is chosen automatically: a native Qt window in a
terminal session, inline in a notebook, docked in the desktop. Force it with
backend="window"|"inline"|"sidecar". Clicking a symbol acts on that
component in your live session (e.g. toggling a valve).
Prepump system
prepump holds the beamline's pre-vacuum lines (line1_usd, line2_lic,
line3, line4) together with the roots pump and the gp gauge. Pump-down
and vent are scripted sequences with the interlocking done for you:
prepump.pump_down("line1_usd") # or prepump.line1_usd.pump_down()
prepump.vent("line2_lic")
prepump.isolate_all()
prepump.check() # lists missing or failed components at every depth
pump_down closes the line's vent valve and isolates the other lines (so
they are not pumped against a rising gp). It then opens the line's pump
valve and waits until both gp and the line's own gauge reach the target
pressure. Afterwards each other line is restored to what it was doing before.
It returns True on success and False on timeout (timeout=700 s by
default).
The building blocks (VacuumGauge, Valve, TurboPump, IonPump, ...)
are described in eco/devices_general/vacuum/README.md in the repository.
Alarm panels
alarms (the Bernina overview), papamoll_alarms_35fs and
papamoll_alarms_100fs model the caQtDM alarm overviews. Each channel
reports OK, WARNING or ALARM:
alarms.worst_severity() # one value for the whole panel
alarms.show(live=True)
Build your own panel from a list of channels with
eco.elements.alarm.AlarmPanel. See eco/devices_general/alarms/README.md in
the repository.
Your own assembly
Any Assembly that implements _widget_svg_panel(self, live=False, **kwargs)
gets this .show() behaviour for free. See {doc}widget_containers for
composing panels from existing widgets instead.