added delay stages, fixed spec convenience bugs

This commit is contained in:
2019-05-25 22:22:37 +02:00
parent db2d083ab3
commit 0e58d93e0b
3 changed files with 38 additions and 21 deletions
+13 -10
View File
@@ -31,15 +31,20 @@ def spec_convenience(Adj):
# spec-inspired convenience methods
def mv(self,value):
self._currentChange = self.changeTo(value)
return self._currentChange
def wm(self,*args,**kwargs):
return self.get_current_value(*args,**kwargs)
def mvr(self,value,*args,**kwargs):
if(self.get_moveDone == 1):
startvalue = self.get_current_value(readback=True,*args,**kwargs)
if hasattr(self,'_currentChange'):
if not self._currentChange.status() == 'done':
startvalue = self._currentChange.target
elif hasattr(self,'get_moveDone'):
if (self.get_moveDone == 1):
startvalue = self.get_current_value(readback=True,*args,**kwargs)
else:
startvalue = self.get_current_value(readback=False,*args,**kwargs)
startvalue = self.get_current_value(*args,**kwargs)
self._currentChange = self.changeTo(value+startvalue,*args,**kwargs)
return self._currentChange
def wait(self):
self._currentChange.wait()
@@ -210,6 +215,8 @@ class AdjustableVirtual:
def changeTo(self,value,hold=False):
vals = self._foo_set_target_value(value)
if not hasattr(vals,'__iter__'):
vals = (vals,)
def changer(value):
self._active_changers = [adj.changeTo(val,hold=False) for val,adj in zip(vals,self._adjustables)]
for tc in self._active_changers:
@@ -217,12 +224,8 @@ class AdjustableVirtual:
def stopper():
for tc in self._active_changers:
tc.stop()
return Changer(
target=value,
parent=self,
changer=changer,
hold=hold,
stopper=stopper)
self._currentChange = Changer(target=value,parent=self,changer=changer,hold=hold,stopper=stopper)
return self._currentChange
def get_current_value(self):
return self._foo_get_current_value(*[adj.get_current_value() for adj in self._adjustables])
+1 -1
View File
@@ -207,7 +207,7 @@ class ChangerOld:
if self._thread.ident is None:
return "waiting"
else:
if self._isAlive:
if self._thread.isAlive:
return "changing"
else:
return "done"
+24 -10
View File
@@ -60,17 +60,31 @@ class Laser_Exp:
print("No eos delay stage")
pass
addMotorRecordToSelf(
self, Id=self.Id + "-M523:MOTOR_1", name="delay_glob_stg"
)
self.delay_glob = DelayTime(self.delay_glob_stg,name="delay_glob")
self.alias.append(self.delay_glob.alias)
# addDelayStageToSelf(self,self.__dict__["_thz_delaystg"], name="thz_delay")
# except:
# print("Problems initializing global delay stage")
# pass
try:
addMotorRecordToSelf(
self, Id=self.Id + "-M521:MOTOR_1", name="delay_eos_stg"
)
self.delay_eos = DelayTime(self.delay_eos_stg,name="delay_eos")
self.alias.append(self.delay_eos.alias)
except:
print("Problems initializing global delay stage")
try:
addMotorRecordToSelf(
self, Id=self.Id + "-M522:MOTOR_1", name="delay_tt_stg"
)
self.delay_tt = DelayTime(self.delay_tt_stg,name="delay_tt")
self.alias.append(self.delay_tt.alias)
except:
print("Problems initializing global delay stage")
try:
addMotorRecordToSelf(
self, Id=self.Id + "-M523:MOTOR_1", name="delay_glob_stg"
)
self.delay_glob = DelayTime(self.delay_glob_stg,name="delay_glob")
self.alias.append(self.delay_glob.alias)
except:
print("Problems initializing global delay stage")
try:
addMotorRecordToSelf(
self, Id=self.Id + "-M522:MOTOR_1", name="_tt_delaystg"