diff --git a/eco/bernina/config.py b/eco/bernina/config.py index eec799c..0a7a06f 100755 --- a/eco/bernina/config.py +++ b/eco/bernina/config.py @@ -196,6 +196,15 @@ components = [ "desc": "Bernina beamline reference laser before KBs", "type": "eco.xoptics.reflaser:RefLaser_Aramis", }, + { + "name": "slitAtt_test", + "args": ["SAROP21-OAPU136"], + "kwargs": {}, + "z_und": 136, + "desc": "Slits behind attenuator", + "type": "eco.xoptics.slits:SlitPosWidth", + "lazy":False, + }, { "name": "slitAtt", "args": ["SAROP21-OAPU136"], @@ -244,14 +253,14 @@ components = [ "type": "eco.xoptics.KBhor:KBhor", "kwargs": {}, }, - { - "name": "slitKb", - "args": [], - "kwargs": {"Id": "SARES20"}, - "z_und": 141, - "desc": "Slits behind Kb", - "type": "eco.xoptics.slits:SlitBladesJJ_old", - }, + # { + # "name": "slitKb", + # "args": [], + # "kwargs": {"Id": "SARES20"}, + # "z_und": 141, + # "desc": "Slits behind Kb", + # "type": "eco.xoptics.slits:SlitBladesJJ_old", + # }, { "args": [], "name": "gps", diff --git a/eco/xoptics/slits.py b/eco/xoptics/slits.py index ace8743..363d26e 100755 --- a/eco/xoptics/slits.py +++ b/eco/xoptics/slits.py @@ -1,6 +1,7 @@ from ..devices_general.motors import MotorRecord from ..devices_general.adjustable import AdjustableVirtual from ..aliases import Alias, append_object_to_object +from functools import partial class SlitBlades: @@ -100,7 +101,7 @@ class SlitPosWidth: append_object_to_object(self, MotorRecord, pvname + ":MOTOR_W", name="hgap") append_object_to_object(self, MotorRecord, pvname + ":MOTOR_H", name="vgap") - def getup(pos,gap): + def getblade(pos,gap,direction=1): return pos + direction*gap/2 def setblade(bde,pos,gap,direction=1): @@ -127,38 +128,38 @@ class SlitPosWidth: append_object_to_object( self, AdjustableVirtual, - [self.right, self.left], - getgap, - setwidth, + [self.vpos, self.vgap], + partial(getblade,direction=1), + partial(setblade,direction=1), set_current_value=True, - name="hgap", + name="up" ) append_object_to_object( self, AdjustableVirtual, - [self.down, self.up], - getgap, - setheight, + [self.vpos, self.vgap], + partial(getblade,direction=-1), + partial(setblade,direction=-1), set_current_value=True, - name="vgap", + name="down" ) append_object_to_object( self, AdjustableVirtual, - [self.right, self.left], - getpos, - sethpos, + [self.hpos, self.hgap], + partial(getblade,direction=1), + partial(setblade,direction=1), set_current_value=True, - name="hpos", + name="left" ) append_object_to_object( self, AdjustableVirtual, - [self.down, self.up], - getpos, - setvpos, + [self.hpos, self.hgap], + partial(getblade,direction=-1), + partial(setblade,direction=-1), set_current_value=True, - name="vpos", + name="right" ) def __call__(self, *args):