+2
-2
@@ -150,11 +150,11 @@ class Scans:
|
||||
print('Warning: dscan will be deprecated for rscan unless someone explains what it stands for in spec!')
|
||||
return self.rscan(*args,**kwargs)
|
||||
|
||||
def ascanList(self,adjustable,posList,N_pulses,file_name=None,start_immediately=True):
|
||||
def ascanList(self,adjustable,posList,N_pulses,file_name=None,start_immediately=True, step_info = None):
|
||||
positions = posList
|
||||
values = [[tp] for tp in positions]
|
||||
s = ScanSimple([adjustable],values,self._default_counters,file_name,Npulses=N_pulses,basepath=self.data_base_dir,scan_info_dir=self.scan_info_dir,checker=self.checker,scan_directories=self._scan_directories)
|
||||
if start_immediately:
|
||||
s.scanAll()
|
||||
s.scanAll(step_info=step_info)
|
||||
return s
|
||||
|
||||
|
||||
@@ -32,6 +32,31 @@ class EnumWrapper:
|
||||
|
||||
|
||||
|
||||
class MonitorAccumulator:
|
||||
def __init__(self,pv,attr=None,keywords=['value','timestamp']):
|
||||
self.pv = pv
|
||||
self.attr = attr
|
||||
self.values = []
|
||||
self.keywords = keywords
|
||||
|
||||
def _accumulate(self,**kwargs):
|
||||
self.values.append([kwargs[kw] for kw in self.keywords])
|
||||
|
||||
def accumulate(self):
|
||||
self.pv.add_callback(self._accumulate,self.attr)
|
||||
|
||||
def stop(self):
|
||||
self.pv.remove_callbacks(self.attr)
|
||||
|
||||
def cycle(self):
|
||||
self.stop()
|
||||
d = self.values.copy()
|
||||
self.values = []
|
||||
self.accumulate()
|
||||
return d
|
||||
|
||||
|
||||
|
||||
|
||||
class Positioner:
|
||||
def __init__(self,list_of_name_func_tuples):
|
||||
|
||||
+14
-1
@@ -15,11 +15,24 @@ class KBhor:
|
||||
|
||||
self.mode = PV(Id[:11]+':MODE').enum_strs[PV(Id[:11]+':MODE').value]
|
||||
|
||||
|
||||
#### actual motors ###
|
||||
self._Y1 = MotorRecord(Id+':TY1')
|
||||
self._Y2 = MotorRecord(Id+':TY2')
|
||||
self._Y3 = MotorRecord(Id+':TY3')
|
||||
self._X1 = MotorRecord(Id+':TX1')
|
||||
self._X2 = MotorRecord(Id+':TX2')
|
||||
|
||||
|
||||
def __str__(self):
|
||||
s = "**Horizontal KB mirror**\n\n"
|
||||
s = "**Horizontal KB mirror**\n"
|
||||
motors = "bend1 bend2 pitch roll yaw x y".split()
|
||||
for motor in motors:
|
||||
s+= " - %s = %.4f\n" %(motor, getattr(self,motor).wm())
|
||||
s += "\n**Stages**\n"
|
||||
stages = "_Y1 _Y2 _Y3 _X1 _X2".split()
|
||||
for stage in stages:
|
||||
s+= " - %s = %.4f\n" %(stage, getattr(self,stage).wm())
|
||||
return s
|
||||
|
||||
def __repr__(self):
|
||||
|
||||
+12
-1
@@ -15,11 +15,22 @@ class KBver:
|
||||
|
||||
self.mode = PV(Id[:11]+':MODE').enum_strs[PV(Id[:11]+':MODE').value]
|
||||
|
||||
#### actual motors ###
|
||||
self._Y1 = MotorRecord(Id+':TY1')
|
||||
self._Y2 = MotorRecord(Id+':TY2')
|
||||
self._Y3 = MotorRecord(Id+':TY3')
|
||||
self._X1 = MotorRecord(Id+':TX1')
|
||||
self._X2 = MotorRecord(Id+':TX2')
|
||||
|
||||
def __str__(self):
|
||||
s = "**Vertical KB mirror**\n\n"
|
||||
s = "**Vertical KB mirror**\n"
|
||||
motors = "bend1 bend2 pitch roll yaw x y".split()
|
||||
for motor in motors:
|
||||
s+= " - %s = %.4f\n" %(motor, getattr(self,motor).wm())
|
||||
s += "\n**Stages**\n"
|
||||
stages = "_Y1 _Y2 _Y3 _X1 _X2".split()
|
||||
for stage in stages:
|
||||
s+= " - %s = %.4f\n" %(stage, getattr(self,stage).wm())
|
||||
return s
|
||||
|
||||
def __repr__(self):
|
||||
|
||||
Reference in New Issue
Block a user