diff --git a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/EPS_STATUS_DESIGN.md b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/EPS_STATUS_DESIGN.md index 5f46f655..395c00e0 100644 --- a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/EPS_STATUS_DESIGN.md +++ b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/EPS_STATUS_DESIGN.md @@ -294,7 +294,7 @@ IP-whitelisted upload all apply unchanged. - **`--verify` on a running beamline** (this was done during shutdown). Re-run when the machine is up to confirm the FE photon-shutter PVs - (`X12SA-EPS-PH:SYSTEM`, `X12SA-FE-PH1:OPEN_EPS/CLOSE_EPS`) come back. + (`X12SA-EPS-PH:SYSTEM`) comes back (the FE-PH1 OPEN/CLOSE_EPS PVs were dropped; FE shutter state now comes from `X12SA-FE-PSH1-EMLS:STATE`). - **Cryocooler detail.** The card shows run/alarm/inhibit/heartbeat. Full temperature/pressure detail needs `XDS_CRYOCOOLER_OVERVIEW.ui` (a sub-template not yet supplied). diff --git a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_pv_manifest.py b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_pv_manifest.py index e0491ec1..acbaae68 100644 --- a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_pv_manifest.py +++ b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_pv_manifest.py @@ -28,8 +28,6 @@ HOT_PVS = [ ("X12SA-EH1-PSYS:SH-A-OK", "sh_eh1_a_ok", "EH1 shutter A OK"), ("X12SA-OP-PSYS:ALARM-COLLECTIVE", "psys_op_alarm", "OP PSYS collective alarm"), ("X12SA-EH1-PSYS:ALARM-COLLECTIVE", "psys_eh1_alarm", "EH1 PSYS collective alarm"), - ("X12SA-FE-PH1:OPEN_EPS", "fe_ph1_open", "FE photon shutter open"), - ("X12SA-FE-PH1:CLOSE_EPS", "fe_ph1_closed", "FE photon shutter closed"), ("AGEBD-PARAMS:CURRENT", "ring_current", "SLS ring current"), ("AGEBD-PARAMS:LIFETIME", "lifetime", "Beam lifetime"), ("AGEOP-STATUS:LIGHT-DELIVERY", "light_delivery", "Light delivery state"), diff --git a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_status_generator.py b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_status_generator.py index 88530f65..cb19e8ba 100644 --- a/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_status_generator.py +++ b/csaxs_bec/bec_ipython_client/plugins/OMNY_shared/eps/eps_status_generator.py @@ -875,9 +875,15 @@ class EpsStatusGenerator: "b_closed": hv("X12SA-OP-PSYS:SH-B-CLOSE"), "b_ok": hv("X12SA-OP-PSYS:SH-B-OK"), }) + # The old X12SA-FE-PH1:OPEN_EPS/CLOSE_EPS PVs no longer exist; derive + # open/closed from the front-end shutter end-switch state (enum + # MOVING/OPEN/CLOSED, may arrive as index or string). + fe_state = (self._bulk_cache.get("X12SA-FE-PSH1-EMLS:STATE") or {}).get("value") + fe_state = {1: "OPEN", 2: "CLOSED"}.get(fe_state, fe_state) + fe_known = isinstance(fe_state, str) and fe_state.upper() in ("OPEN", "CLOSED", "MOVING") shutters["FE"] = { - "a_open": hv("X12SA-FE-PH1:OPEN_EPS"), - "a_closed": hv("X12SA-FE-PH1:CLOSE_EPS"), + "a_open": (fe_state.upper() == "OPEN") if fe_known else None, + "a_closed": (fe_state.upper() == "CLOSED") if fe_known else None, "a_ok": None, "collective_alarm": None, }