added hexapod adjustables

This commit is contained in:
2019-07-17 06:17:51 +02:00
parent 8f99c1c9ca
commit 222ea032ff
3 changed files with 111 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
from ..aliases import Alias,append_object_to_object
from .adjustable import PvRecord,PvEnum
class CameraBasler:
def __init__(self,pvname,name=None):
self.pvname = pvname
self.name = name
self.alias = Alias(name)
append_object_to_object(self,PvEnum,self.pvname+':INIT',name='initialize')
append_object_to_object(self,PvEnum,self.pvname+':CAMERA',name='running')
append_object_to_object(self,PvRecord,self.pvname+':BOARD',name='board_no')
append_object_to_object(self,PvRecord,self.pvname+':SERIALNR',name='serial_no')
append_object_to_object(self,PvRecord,self.pvname+':EXPOSURE',name='_exposure_time')
append_object_to_object(self,PvEnum,self.pvname+':ACQMODE',name='_acq_mode')
append_object_to_object(self,PvEnum,self.pvname+':RECMODE',name='_req_mode')
append_object_to_object(self,PvEnum,self.pvname+':STOREMODE',name='_store_mode')
append_object_to_object(self,PvRecord,self.pvname+':BINY',name='_binx')
append_object_to_object(self,PvRecord,self.pvname+':BINY',name='_biny')
append_object_to_object(self,PvRecord,self.pvname+':REGIONX_START',name='_roixmin')
append_object_to_object(self,PvRecord,self.pvname+':REGIONX_END',name='_roixmax')
append_object_to_object(self,PvRecord,self.pvname+':REGIONY_START',name='_roiymin')
append_object_to_object(self,PvRecord,self.pvname+':REGIONY_END',name='_roiymax')
append_object_to_object(self,PvEnum,self.pvname+':SET_PARAM',name='_set_parameters')
append_object_to_object(self,PvEnum,self.pvname+':TRIGGER',name='trigger_on')
append_object_to_object(self,PvEnum,self.pvname+':TRIGGERSOURCE',name='trigger_source')
#append_object_to_object(self,PvEnum,self.pvname+':TRIGGEREDGE',name='trigger_edge')
+24
View File
@@ -0,0 +1,24 @@
from time import sleep
import sys, select
_wait_strs = '\|/-\|/-'
class WaitInput:
def __init__(self,text,wait_time=5,update_interval=1):
self.text = text
self.wait_time=wait_time
def start
resttime = self.wait_time
while resttime>0:
print(f"You have {resttime} seconds to answer!")
i, o, e = select.select( [sys.stdin], [], [], 2 )
if (i):
print("You said", sys.stdin.readline().strip())
else:
print("You said nothing!")
+54
View File
@@ -0,0 +1,54 @@
from ..devices_general.motors import MotorRecord
from epics import PV
from ..aliases import Alias, append_object_to_object
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.alias = Alias(name)
append_object_to_object(self,
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) < 0.2:
isin = True
elif abs(v - self._outpos) < 0.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__()