Files
x03da/script/test/DemoCscanPseudo4.py
2020-03-10 12:35:18 +01:00

36 lines
1004 B
Python

import ch.psi.pshell.device.PositionerConfig as PositionerConfig
import ch.psi.pshell.device.Speedable as Speedable
class PseudoMotor(PositionerBase, Speedable):
def __init__(self, name):
PositionerBase.__init__(self, name, PositionerConfig())
self.rbck = 0.0
self.setp = 0.0
self.settime = time.time()
def doRead(self):
return self.setp
def doWrite(self, val):
self.setp = val
self.settime = time.time()
def doReadReadback(self):
offset = self.setp - self.rbck
d = (self.speed * (time.time() - self.settime))
d = min(d, abs(offset))
self.rbck = self.rbck + d if offset>0 else self.rbck -d
self.settime = time.time()
return self.rbck
def getSpeed(self):
return 3.0
positioner = PseudoMotor("PseudoMotor")
add_device(positioner, True);
show_panel(PseudoMotor)
cscan(positioner, MachineCurrent, 0, 10, 1.0)