Script execution
This commit is contained in:
40
script/test/DemoCscanPseudo1.py
Normal file
40
script/test/DemoCscanPseudo1.py
Normal file
@@ -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)
|
||||
Reference in New Issue
Block a user