Files
x03da/script/test/DemoCscanPseudo2.py
2020-03-10 12:39:41 +01:00

31 lines
863 B
Python

import ch.psi.pshell.device.Speedable as Speedable
class PseudoMotor(RegisterBase, Speedable):
def __init__(self, name):
RegisterBase.__init__(self, name)
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.readback = self.readback + d if offset>0 else self.readback -d
self.settime = time.time()
return self.readback
def doWrite(self, val):
self.settime = time.time()
self.setpoint = val
def getSpeed(self):
return 3.0
positioner = PseudoMotor("PseudoMotor")
add_device(positioner, True);
cscan(positioner, MachineCurrent, 0, 10, 1.0)