From 94de23df31f239d48c5f41d630440e8e92c71d0e Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 11 Sep 2020 16:35:44 +0200 Subject: [PATCH] commented fake PID calc and raise Errors instead --- slic/core/acquisition/broker_tools.py | 40 +++++++++++++++++---------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/slic/core/acquisition/broker_tools.py b/slic/core/acquisition/broker_tools.py index 4e8d065f..d675e1d9 100644 --- a/slic/core/acquisition/broker_tools.py +++ b/slic/core/acquisition/broker_tools.py @@ -24,16 +24,16 @@ def get_beamline(): return IP_TO_BEAMLINE.get(key) -def get_fake_current_pulseid(): - # 2020-05-08 08:29:52.742737 : 11718049010 - # 2020-05-28 - checked compared to "real" pulse-id: 2380 pulses difference - reference_date = datetime(2020, 5, 8, 8, 29, 52) - now = datetime.utcnow() - delta_t = now - reference_date - delta_p = delta_t.total_seconds() * 100 - delta_p = int(delta_p) - pid = delta_p + 11718049010 + 2361 - return pid +#def get_fake_current_pulseid(): +# # 2020-05-08 08:29:52.742737 : 11718049010 +# # 2020-05-28 - checked compared to "real" pulse-id: 2380 pulses difference +# reference_date = datetime(2020, 5, 8, 8, 29, 52) +# now = datetime.utcnow() +# delta_t = now - reference_date +# delta_p = delta_t.total_seconds() * 100 +# delta_p = int(delta_p) +# pid = delta_p + 11718049010 + 2361 +# return pid @@ -45,14 +45,24 @@ class get_current_pulseid(): The implementation only does/needs one connection check at the start """ +# def __init__(self): +# self.get = get_fake_current_pulseid +# beamline = get_beamline() +# pulseid_pv = PULSEID_PVS.get(beamline) +# if pulseid_pv: +# pv = epics.PV(pulseid_pv) +# if pv.wait_for_connection(): +# self.get = pv.get + def __init__(self): - self.get = get_fake_current_pulseid beamline = get_beamline() pulseid_pv = PULSEID_PVS.get(beamline) - if pulseid_pv: - pv = epics.PV(pulseid_pv) - if pv.wait_for_connection(): - self.get = pv.get + if not pulseid_pv: + raise ValueError(f"no Pulse ID PV known for beamline \"{beamline}\"") + pv = epics.PV(pulseid_pv) + if not pv.wait_for_connection(): + raise RuntimeError(f"could not connect to Pulse ID PV \"{pulseid_pv}\"") + self.get = pv.get def __call__(self): return int(self.get())