Update slic/utils/hastyepics.py
Run CI Tests / test (push) Successful in 1m51s

This commit is contained in:
2025-08-08 17:20:32 +02:00
parent 411f60f760
commit a7bc55fa65
+4 -28
View File
@@ -1,30 +1,16 @@
import epics
from epics import get_pv as _get_pv
from epics import PV as _PV
import time
from epics.device import Device
from epics.motor import MotorException
################################################################ en +++++++++++
class HastyPV(_PV):
def put(self, value, *args, **kwargs):
kwargs.setdefault("wait", True)
result = super().put(value, *args, **kwargs)
time.sleep(0.1)
return result
###################################################################
'''
# speed up: do not wait for the connection to happen
def get_pv(*args, connect=False, timeout=0, **kwargs):
return _get_pv(*args, connect=connect, timeout=timeout, **kwargs)
'''
# speed up: do not wait for the connection to happen
def get_pv(*args, connect=False, timeout=0, **kwargs):
return HastyPV(*args, connect=connect, timeout=timeout, **kwargs)
# this is a copy of the epics.Motor constructor with some modifications
class Motor(epics.Motor):
@@ -34,23 +20,15 @@ class Motor(epics.Motor):
raise MotorException("must supply motor name")
if name.endswith('.VAL'):
print("Before :", name, "\n")
name = name[:-4]
print("After :", name, "\n")
if name.endswith('.'):
print("Before :", name, "\n")
name = name[:-1]
print("After :", name, "\n")
self._prefix = name
print("LATER:", getattr(self, '_prefix'), "\n")
print("Prefix :", name, "\n")
Device.__init__(self, name, delim='.',
attrs=self._init_list,
timeout=timeout)
print("LATER:", getattr(self, '_prefix'), "\n")
print("After device :", name, "\n")
# speed up: do not get any data from PVs during construction
# # make sure this is really a motor!
# rectype = self.get('RTYP')
@@ -60,10 +38,8 @@ class Motor(epics.Motor):
for key, val in self._extras.items():
pvname = "%s%s" % (name, val)
self.add_pv(pvname, attr=key)
print("After add_pv:", name, "\n")
self._callbacks = {}
print("LATER:", getattr(self, '_prefix'), "\n")
print("End :", name, "\n")
# speed up: used by Motor.get_pv() with connect=True, i.e., waiting for connection