This commit is contained in:
@@ -4,13 +4,14 @@ from time import perf_counter
|
||||
import numpy as np
|
||||
from epics import PV, dbr
|
||||
|
||||
from agebd.pv import LocalPVLink, get_pv_class
|
||||
from agebd.pv import LocalPVLink, get_pv_class, get_pv_external_class
|
||||
from agebd.service.pvs import BasePVs
|
||||
from agebd.utils import printgetversion
|
||||
|
||||
__version__ = printgetversion(__file__)
|
||||
|
||||
PV = get_pv_class()
|
||||
PV_EXTERNAL = get_pv_external_class()
|
||||
|
||||
|
||||
class PVs(BasePVs):
|
||||
@@ -33,35 +34,35 @@ class PVs(BasePVs):
|
||||
scrubbing = PV("AGEBD-TOPUPTOOL:CONTROL-SCRUB.VAL")
|
||||
|
||||
# Input PVs
|
||||
vac_all = PV("ARIVA-VMAVE-ALL:PRESS-MAX.VAL")
|
||||
vac_acc = PV("ARIVA-VMAVE:PRESS-MAX.VAL")
|
||||
vac_fe = PV("ARIVA-VMAVE-FE:PRESS-MAX.VAL")
|
||||
# cur = PV('AGEBD-DBPM3CURR:CURRENT-AVG.VAL')
|
||||
cur = PV("ARS07-DPCT-0000:CURR.VAL")
|
||||
injguard = PV("AGEBD-INJECTIONGUARD:CHECK-SUM.VAL")
|
||||
vac_all = PV_EXTERNAL("ARIVA-VMAVE-ALL:PRESS-MAX.VAL")
|
||||
vac_acc = PV_EXTERNAL("ARIVA-VMAVE:PRESS-MAX.VAL")
|
||||
vac_fe = PV_EXTERNAL("ARIVA-VMAVE-FE:PRESS-MAX.VAL")
|
||||
# cur = PV_EXTERNAL('AGEBD-DBPM3CURR:CURRENT-AVG.VAL')
|
||||
cur = PV_EXTERNAL("ARS07-DPCT-0000:CURR.VAL")
|
||||
injguard = PV_EXTERNAL("AGEBD-INJECTIONGUARD:CHECK-SUM.VAL")
|
||||
|
||||
injactive = PV("AGEBD-PARAMS:INJECTION-ACTIVE")
|
||||
injactive = PV_EXTERNAL("AGEBD-PARAMS:INJECTION-ACTIVE")
|
||||
|
||||
tau = PV("AGEBD-PARAMS:LIFETIME.VAL")
|
||||
tau = PV_EXTERNAL("AGEBD-PARAMS:LIFETIME.VAL")
|
||||
|
||||
fpfb_adc = PV("ARSGE-CECL-FPFB:BEAM-DUMP-ABS-ADC-DATA")
|
||||
fpfb_max = PV("ARSGE-CECL-FPFB:FPFB-BEAM-DUMP-THR")
|
||||
fpfb_adc = PV_EXTERNAL("ARSGE-CECL-FPFB:BEAM-DUMP-ABS-ADC-DATA")
|
||||
fpfb_max = PV_EXTERNAL("ARSGE-CECL-FPFB:FPFB-BEAM-DUMP-THR")
|
||||
|
||||
# Regulated PVs
|
||||
trig_master = PV("AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel.VAL")
|
||||
trig_guntxb = PV("ALIRF-VME-A-GUN:CH1-MODE.VAL")
|
||||
trig_gunevt = PV("AGETI-CVME-MASTER-TMA:Evt-LI-Gun-Ena-Sel.VAL")
|
||||
trig_booinj = PV("AGETI-CVME-MASTER-TMA:Evt-BO-Inj-Ena-Sel.VAL")
|
||||
trig_boormp = PV("AGETI-CVME-MASTER-TMA:Evt-Old-BO-HW-Ena-Sel.VAL")
|
||||
trig_booext = PV(
|
||||
trig_master = PV_EXTERNAL("AGETI-CVME-MASTER-TMA:SR-Inj-Status-Sel.VAL")
|
||||
trig_guntxb = PV_EXTERNAL("ALIRF-VME-A-GUN:CH1-MODE.VAL")
|
||||
trig_gunevt = PV_EXTERNAL("AGETI-CVME-MASTER-TMA:Evt-LI-Gun-Ena-Sel.VAL")
|
||||
trig_booinj = PV_EXTERNAL("AGETI-CVME-MASTER-TMA:Evt-BO-Inj-Ena-Sel.VAL")
|
||||
trig_boormp = PV_EXTERNAL("AGETI-CVME-MASTER-TMA:Evt-Old-BO-HW-Ena-Sel.VAL")
|
||||
trig_booext = PV_EXTERNAL(
|
||||
"AGETI-CVME-MASTER-TMA:Evt-BO-Ext-Ena-Sel.VAL"
|
||||
) # Alias AGETI-CVME-MASTER-TMA:Evt-10
|
||||
trig_rininj = PV(
|
||||
trig_rininj = PV_EXTERNAL(
|
||||
"AGETI-CVME-MASTER-TMA:Evt-SR-Inj-Ena-Sel.VAL"
|
||||
) # Alias AGETI-CVME-MASTER-TMA:Evt-26
|
||||
gun_grid = PV("ALIRF-GUN-GRID:V-SET.VAL")
|
||||
pinger_v = PV("ARS01-MKIK-0320:CTRL-ON-OFF.VAL")
|
||||
pinger_h = PV("ARS01-MKIK-0290:CTRL-ON-OFF.VAL")
|
||||
gun_grid = PV_EXTERNAL("ALIRF-GUN-GRID:V-SET.VAL")
|
||||
pinger_v = PV_EXTERNAL("ARS01-MKIK-0320:CTRL-ON-OFF.VAL")
|
||||
pinger_h = PV_EXTERNAL("ARS01-MKIK-0290:CTRL-ON-OFF.VAL")
|
||||
|
||||
topup_dt = PV("AGEBD-TOPUPTOOL:TOPUP-DELTAT.VAL")
|
||||
topup_dI = PV("AGEBD-TOPUPTOOL:TOPUP-DELTAI.VAL")
|
||||
@@ -69,23 +70,6 @@ class PVs(BasePVs):
|
||||
|
||||
def __init__(self, service_name: str, pv_factory=PV):
|
||||
super().__init__(service_name, pv_factory)
|
||||
PV = pv_factory
|
||||
|
||||
# TODO: can we do this cleaner? Maybe mechanism for
|
||||
# settings initial values in dev mode (e.g. ini file)
|
||||
if isinstance(self.onoff, LocalPVLink):
|
||||
self.onoff.value = True
|
||||
|
||||
# Option 2:
|
||||
## Service specific PVs from dedicated IOC
|
||||
self.my_pv2 = PV("AGEBD-TOPUPTOOL:BO") # TODO: is this a good PV to use?
|
||||
|
||||
## Service specific PVs from other IOCs
|
||||
# ...
|
||||
|
||||
# TODO: class attribute names usually lowercase
|
||||
# usually it is advisable to trigger the mainloop of a service on changes of certain PVs:
|
||||
self.CallbackPV = PV("AGEBD-TOPUPTOOL:CALLBACK", auto_monitor=dbr.DBE_VALUE) # TODO: ok?
|
||||
|
||||
|
||||
class Service:
|
||||
|
||||
Reference in New Issue
Block a user