feat: use PV external in shifttool
Deploy / deploy (push) Successful in 14s

This commit is contained in:
Benjamin Labrecque
2026-07-17 11:48:11 +02:00
parent 470c4a22ff
commit 4c92cdd667
@@ -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]):