Files
eco/xoptics/reflaser.py
T
2017-11-25 14:25:17 +01:00

52 lines
1.4 KiB
Python
Executable File

from ..devices_general.motors import MotorRecord
from epics import PV
class RefLaser_Aramis:
def __init__(self, Id, elog=None, name=None, inpos=-18.818, outpos=-5):
self.Id = Id
self.elog = elog
self.name = name
self._inpos = inpos
self._outpos = outpos
self.mirrmotor = MotorRecord(self.Id+':MOTOR_1')
def __call__(self,*args,**kwargs):
self.set(*args,**kwargs)
def __str__(self):
status = self.get_status()
if status:
return "Reflaser is In."
elif status==False:
return "Reflaser is Out."
elif status==None:
return "Reflaser status not defined."
def get_status(self):
v = self.mirrmotor.get_current_value()
if abs(v - self._inpos) < .2:
isin = True
elif abs(v - self._outpos) < .2:
isin = False
else:
isin = None
return isin
def set(self,value):
if type(value) is str:
if value.lower()=='in':
value = True
elif value.lower()=='out':
value = False
else:
print('String %s not recognized!'%value)
if value:
self.mirrmotor.changeTo(self._inpos)
else:
self.mirrmotor.changeTo(self._outpos)
def __repr__(self):
return self.__str__()