diff --git a/script/test/DemoCscanPseudo4.py b/script/test/DemoCscanPseudo4.py new file mode 100644 index 00000000..6832de7c --- /dev/null +++ b/script/test/DemoCscanPseudo4.py @@ -0,0 +1,30 @@ +class PseudoMotor(PositionerBase, Speedable): + def __init__(self): + PositionerBase.__init__(self) + self.readback = 0.0 + self.setpoint = 0.0 + self.settime = time.time() + + def doRead(self): + self.setpoint + + def doWrite(self, val): + self.settime = time.time() + self.setpoint = val + + def doReadReadback(self, val): + offset = self.setpoint - self.readback + d = (self.speed * (time.time() - self.settime)) + d = min(d, abs(offset)) + self.position = self.readback + d if offset>0 else self.readback -d + return self.position + + def getSpeed(self): + return 3.0 + +positioner = PseudoMotor() +add_device(positioner, True); + +show_panel("PseudoMotor") +cscan(positioner, MachineCurrent, 0, 10, 1.0) +