From ffb8c375e1676d5dbff17c4ed761ec221f8d89f9 Mon Sep 17 00:00:00 2001 From: Henrik Lemke Date: Sat, 4 Nov 2017 21:42:49 +0100 Subject: [PATCH] fist working instrument module --- eco_epics/utilities_epics.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 eco_epics/utilities_epics.py diff --git a/eco_epics/utilities_epics.py b/eco_epics/utilities_epics.py new file mode 100644 index 0000000..71e9efd --- /dev/null +++ b/eco_epics/utilities_epics.py @@ -0,0 +1,30 @@ +from epics import PV + +class EnumWrapper: + def __init__(self,pvname): + self._pv = PV(pvname) + self.names = self.pv.enum_strs + self.setters = \ + Positioner(\ + [(nam,lambda:self.set(nam)) + for nam in self.names]) + + def set(self,target): + if type(target) is str: + assert target in self.names,\ + "set value need to be one of \n %s"%self.names + self._pv.put(self.names.index(target)) + elif type(target) is int: + assert target>0, 'set integer needs to be greater equal zero' + assert target