From 4c92cdd667304347948d303f202b6a23390930d5 Mon Sep 17 00:00:00 2001 From: Benjamin Labrecque Date: Fri, 17 Jul 2026 11:48:11 +0200 Subject: [PATCH] feat: use PV external in shifttool --- .../app/src/agebd_shifttool/service.py | 136 +++++++++--------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/services/shifttool/current/app/src/agebd_shifttool/service.py b/services/shifttool/current/app/src/agebd_shifttool/service.py index 78b6503..bbdf909 100644 --- a/services/shifttool/current/app/src/agebd_shifttool/service.py +++ b/services/shifttool/current/app/src/agebd_shifttool/service.py @@ -5,7 +5,7 @@ from time import time import elog -from agebd.pv import get_pv_class +from agebd.pv import get_pv_class, get_pv_external_class from agebd.service.base import BaseService from agebd.service.pvs import BasePVs from agebd.utils import printgetversion @@ -15,151 +15,151 @@ locale.setlocale(locale.LC_TIME, "de_CH.UTF-8") # oder 'de_CH.UTF-8' __version__ = printgetversion(__file__) -PV = get_pv_class() +PV_EXTERNAL = get_pv_external_class() class PVs(BasePVs): - req_MakeElog = PV("AGEOP-SHIFTTOOL:REQ-SHIFT-ENTRY.VAL") - req_UpdateTeam = PV("AGEOP-SHIFTTOOL:REQ-UPDATE-TEAM.VAL") + req_MakeElog = PV_EXTERNAL("AGEOP-SHIFTTOOL:REQ-SHIFT-ENTRY.VAL") + req_UpdateTeam = PV_EXTERNAL("AGEOP-SHIFTTOOL:REQ-UPDATE-TEAM.VAL") - shift = PV("AGEOP-SHIFTTOOL:TXT-SHIFT.VAL") - crew = PV("AGEOP-SHIFTTOOL:TXT-SHIFT-CREW.VAL") + shift = PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-SHIFT.VAL") + crew = PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-SHIFT-CREW.VAL") operators = [ - PV("AGEOP-SHIFTTOOL:TXT-OPERATOR-01.VAL"), - PV("AGEOP-SHIFTTOOL:TXT-OPERATOR-02.VAL"), - PV("AGEOP-SHIFTTOOL:TXT-OPERATOR-03.VAL"), - PV("AGEOP-SHIFTTOOL:TXT-OPERATOR-04.VAL"), - PV("AGEOP-SHIFTTOOL:TXT-OPERATOR-05.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-OPERATOR-01.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-OPERATOR-02.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-OPERATOR-03.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-OPERATOR-04.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:TXT-OPERATOR-05.VAL"), ] links = { "Problem-01": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-01.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-01.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=Downtime", ], "Problem-02": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-02.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-02.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=Beamdrop", ], "Problem-03": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-03.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-03.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=Lifetime", ], "Problem-04": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-04.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-04.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=Beamsize", ], "Problem-05": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-05.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-05.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=keiner", ], "Problem-06": [ - PV("AGEOP-SHIFTTOOL:LINK-Problem-06.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Problem-06.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Problem&pAutor=Rast%2C%20Streich%2C%20Weber&pEffekt=anderer", ], "Optimierung-01": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-01.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-01.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung%20Transfer", ], "Optimierung-02": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-02.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-02.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung%20Tau%2FYsig", ], "Optimierung-03": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-03.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-03.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung", ], "Optimierung-04": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-04.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-04.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung", ], "Optimierung-05": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-05.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-05.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung", ], "Optimierung-06": [ - PV("AGEOP-SHIFTTOOL:LINK-Optimierung-06.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Optimierung-06.VAL"), "https://elog-gfa.psi.ch/sls/?cmd=Neu&pEintrag=Tuning&pAutor=Rast%2C%20Streich%2C%20Weber&pTitel=Optimierung", ], "Piquet": [ - PV("AGEOP-SHIFTTOOL:LINK-Piquet.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Piquet.VAL"), ], "Info": [ - PV("AGEOP-SHIFTTOOL:LINK-Info.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-Info.VAL"), ], "AktuellesProtokoll": [ - PV("AGEOP-SHIFTTOOL:LINK-AktuellesProtokoll.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-AktuellesProtokoll.VAL"), ], "AndereEintraege-01": [ - PV("AGEOP-SHIFTTOOL:LINK-AndereEintraege-01.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-AndereEintraege-01.VAL"), ], "AndereEintraege-02": [ - PV("AGEOP-SHIFTTOOL:LINK-AndereEintraege-02.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-AndereEintraege-02.VAL"), ], "AndereEintraege-03": [ - PV("AGEOP-SHIFTTOOL:LINK-AndereEintraege-03.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-AndereEintraege-03.VAL"), ], "ListenAnzeigen-01": [ - PV("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-01.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-01.VAL"), ], "ListenAnzeigen-02": [ - PV("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-02.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-02.VAL"), ], "ListenAnzeigen-03": [ - PV("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-03.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-03.VAL"), ], "ListenAnzeigen-04": [ - PV("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-04.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-ListenAnzeigen-04.VAL"), ], "PiquetWoche": [ - PV("AGEOP-SHIFTTOOL:LINK-PiquetWoche.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-PiquetWoche.VAL"), ], "OffeneAuftraege": [ - PV("AGEOP-SHIFTTOOL:LINK-OffeneAuftraege.VAL"), + PV_EXTERNAL("AGEOP-SHIFTTOOL:LINK-OffeneAuftraege.VAL"), ], } minisave = [ - PV("AGEBD-PARAMS:LIFETIME.VAL"), - PV("AGEBD-DBPM3CURR:CURRENT-AVG.VAL"), - PV("AGEBD-PARAMS:INJECTION-RATE.VAL"), - PV("AGEBD-DBPM3CURR:ACCUMULATED-BEAM-DOSE.VAL"), - PV("AGEOP-CPCL-TRANSMISSION:ICT-BRTL_2_BPM-RING.VAL"), - PV("ARSGE-CECL-FOFB1:X-RMS-UM.VAL"), - PV("ARSGE-CECL-FOFB1:Y-RMS-UM.VAL"), - PV("X01DD-FE-ABS1:STATUS.VAL"), - PV("X08DB-FE-ABS1:STATUS.VAL"), - PV("X01DA-FE-ABS1:STATUS.VAL"), - PV("X01DA-OP-PSYS:SH-A-OPEN.VAL"), - PV("X02DA-FE-ABS1:STATUS.VAL"), - PV("X02DA-OP-PSYS:SH-A-OPEN.VAL"), - PV("X06DA-FE-ABS1:STATUS.VAL"), - PV("X06DA-OP-PSYS:SH-A-OPEN.VAL"), - PV("X07DA-FE-ABS1:STATUS.VAL"), - PV("X07D-OP-PSYS:SH-A-OPEN.VAL"), - PV("X07DB-FE-ABS1:STATUS.VAL"), - PV("X07D-OP-PSYS:SH-B-OPEN.VAL"), - PV("X10DA-FE-ABS1:STATUS.VAL"), - PV("X10DA-OP-PSYS:SH-A-OPEN.VAL"), - PV("X04SA-UIND:GAP-READ.VAL"), - PV("X04SA-UIND:SCTRL.VAL"), - PV("X06SA-UIND:GAP-READ.VAL"), - PV("X06SA-UIND:SCTRL.VAL"), - PV("X09LB-UIND:GAP-READ.VAL"), - PV("X09LB-UIND:SCTRL.VAL"), - PV("X10SA-UIND:GAP-READ.VAL"), - PV("X10SA-UIND:SCTRL.VAL"), - PV("X12SA-UIND:GAP-READ.VAL"), - PV("X12SA-UIND:SCTRL.VAL"), + PV_EXTERNAL("AGEBD-PARAMS:LIFETIME.VAL"), + PV_EXTERNAL("AGEBD-DBPM3CURR:CURRENT-AVG.VAL"), + PV_EXTERNAL("AGEBD-PARAMS:INJECTION-RATE.VAL"), + PV_EXTERNAL("AGEBD-DBPM3CURR:ACCUMULATED-BEAM-DOSE.VAL"), + PV_EXTERNAL("AGEOP-CPCL-TRANSMISSION:ICT-BRTL_2_BPM-RING.VAL"), + PV_EXTERNAL("ARSGE-CECL-FOFB1:X-RMS-UM.VAL"), + PV_EXTERNAL("ARSGE-CECL-FOFB1:Y-RMS-UM.VAL"), + PV_EXTERNAL("X01DD-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X08DB-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X01DA-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X01DA-OP-PSYS:SH-A-OPEN.VAL"), + PV_EXTERNAL("X02DA-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X02DA-OP-PSYS:SH-A-OPEN.VAL"), + PV_EXTERNAL("X06DA-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X06DA-OP-PSYS:SH-A-OPEN.VAL"), + PV_EXTERNAL("X07DA-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X07D-OP-PSYS:SH-A-OPEN.VAL"), + PV_EXTERNAL("X07DB-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X07D-OP-PSYS:SH-B-OPEN.VAL"), + PV_EXTERNAL("X10DA-FE-ABS1:STATUS.VAL"), + PV_EXTERNAL("X10DA-OP-PSYS:SH-A-OPEN.VAL"), + PV_EXTERNAL("X04SA-UIND:GAP-READ.VAL"), + PV_EXTERNAL("X04SA-UIND:SCTRL.VAL"), + PV_EXTERNAL("X06SA-UIND:GAP-READ.VAL"), + PV_EXTERNAL("X06SA-UIND:SCTRL.VAL"), + PV_EXTERNAL("X09LB-UIND:GAP-READ.VAL"), + PV_EXTERNAL("X09LB-UIND:SCTRL.VAL"), + PV_EXTERNAL("X10SA-UIND:GAP-READ.VAL"), + PV_EXTERNAL("X10SA-UIND:SCTRL.VAL"), + PV_EXTERNAL("X12SA-UIND:GAP-READ.VAL"), + PV_EXTERNAL("X12SA-UIND:SCTRL.VAL"), ] - NShiftTasks = PV("AGEOP-SHIFTTOOL:CNT-TODO.VAL") + NShiftTasks = PV_EXTERNAL("AGEOP-SHIFTTOOL:CNT-TODO.VAL") def __init__(self, service_name: str, pv_factory=PV): super().__init__(service_name, pv_factory) PV = pv_factory - self.CallbackPV = PV("AGEOP-SHIFTTOOL:REQ-CALC.VAL") + self.CallbackPV = PV_EXTERNAL("AGEOP-SHIFTTOOL:REQ-CALC.VAL") class Service(BaseService[PVs]):