diff --git a/phases/full_polarization.py b/phases/full_polarization.py index 0f53975..48e1b96 100644 --- a/phases/full_polarization.py +++ b/phases/full_polarization.py @@ -129,21 +129,24 @@ class UndRadial(UndShiftRadialBase): -class UndShiftQuadrants(SimpleDevice): +class UndShiftQuadrants(Adjustable): def __init__(self, ID, accuracy=0.001): ID += "SHIFT" + super().__init__(ID) names = ["TL", "BL", "TR", "BR"] pvnames = [f"{ID}-{n}" for n in names] adjs = {n.lower(): PVAdjustable(pvn + "-SET", pvn, accuracy=accuracy) for n, pvn in zip(names, pvnames)} - - super().__init__(ID, **adjs) + self.adjs = SimpleDevice(ID, **adjs) self.pv_on = PV(ID + "-ON") self.pv_go = PV(ID + "-GO") - def set(self, tl, bl, tr, br): + def set_target_value(self, value): + tl = value + br = -tl + bl = tr = bl = 0 vals = (tl, bl, tr, br) tasks = [a.set_target_value(v) for a, v in zip(self.adjs, vals)] @@ -156,6 +159,13 @@ class UndShiftQuadrants(SimpleDevice): t.wait() + def get_current_value(self): + return self.adjs.tl.get_current_value() + + def is_moving(self): + return any(a.is_moving() for a in self.adjs) + + class UndTotalK: """