From fc698153bfa4a83ed18f23579080e0d01c840938 Mon Sep 17 00:00:00 2001 From: gac-x03da Date: Tue, 10 Mar 2020 11:55:29 +0100 Subject: [PATCH] Script execution --- script/test/DemoCscanPseudo1.py | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 script/test/DemoCscanPseudo1.py diff --git a/script/test/DemoCscanPseudo1.py b/script/test/DemoCscanPseudo1.py new file mode 100644 index 00000000..2fa88400 --- /dev/null +++ b/script/test/DemoCscanPseudo1.py @@ -0,0 +1,40 @@ +import ch.psi.pshell.device.ControlledSpeedable as ControlledSpeedable + + +class PseudoMotor(RegisterBase, ControlledSpeedable): + def __init__(self): + self.velocity = self.getDefaultSpeed() + self.readback = 0.0 + self.setpoint = 0.0 + self.settime = time.time() + + def doRead(self): + 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 doWrite(self, val): + self.settime = time.time() + self.setpoint = val + + def getSpeed(self): + return self.velocity + + def setSpeed(self, speed): + self.velocity=speed + + def getDefaultSpeed(self): + return 1.0 + + def getMinSpeed(self): + return 0.1 + + def getMaxSpeed(self): + return 10.0 + +positioner = PseudoMotor() +add_device(positioner, True); + +cscan(positioner, MachineCurrent, 0, 10, 1.0, time=5.0)