allow interval in SimDrivable to be customized
Change-Id: Id59d263e5f54fda9388dcdaa34a3ce83b6d4a339
This commit is contained in:
@ -28,7 +28,7 @@ from time import sleep
|
|||||||
from secop.datatypes import FloatRange
|
from secop.datatypes import FloatRange
|
||||||
from secop.lib import mkthread
|
from secop.lib import mkthread
|
||||||
from secop.modules import BasicPoller, Drivable, \
|
from secop.modules import BasicPoller, Drivable, \
|
||||||
Module, Parameter, Readable, Writable
|
Module, Parameter, Readable, Writable, Command
|
||||||
|
|
||||||
|
|
||||||
class SimBase:
|
class SimBase:
|
||||||
@ -104,10 +104,11 @@ class SimWritable(SimReadable, Writable):
|
|||||||
|
|
||||||
|
|
||||||
class SimDrivable(SimReadable, Drivable):
|
class SimDrivable(SimReadable, Drivable):
|
||||||
|
interval = Parameter('simulation interval', FloatRange(0, 1), readonly=False, default=0.3)
|
||||||
|
|
||||||
def sim(self):
|
def sim(self):
|
||||||
while self._value == self.target:
|
while self._value == self.target:
|
||||||
sleep(0.3)
|
sleep(self.interval)
|
||||||
self.status = self.Status.BUSY, 'MOVING'
|
self.status = self.Status.BUSY, 'MOVING'
|
||||||
speed = 0
|
speed = 0
|
||||||
if 'ramp' in self.accessibles:
|
if 'ramp' in self.accessibles:
|
||||||
@ -116,7 +117,7 @@ class SimDrivable(SimReadable, Drivable):
|
|||||||
speed = self.speed
|
speed = self.speed
|
||||||
if speed == 0:
|
if speed == 0:
|
||||||
self._value = self.target
|
self._value = self.target
|
||||||
speed *= 0.3
|
speed *= self.interval
|
||||||
try:
|
try:
|
||||||
self.pollParams(0)
|
self.pollParams(0)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -129,7 +130,7 @@ class SimDrivable(SimReadable, Drivable):
|
|||||||
self._value -= speed
|
self._value -= speed
|
||||||
else:
|
else:
|
||||||
self._value = self.target
|
self._value = self.target
|
||||||
sleep(0.3)
|
sleep(self.interval)
|
||||||
try:
|
try:
|
||||||
self.pollParams(0)
|
self.pollParams(0)
|
||||||
except Exception:
|
except Exception:
|
||||||
@ -139,4 +140,8 @@ class SimDrivable(SimReadable, Drivable):
|
|||||||
|
|
||||||
def _hw_wait(self):
|
def _hw_wait(self):
|
||||||
while self.status[0] == self.Status.BUSY:
|
while self.status[0] == self.Status.BUSY:
|
||||||
sleep(0.3)
|
sleep(self.interval)
|
||||||
|
|
||||||
|
@Command
|
||||||
|
def stop(self):
|
||||||
|
self.target = self.value
|
||||||
|
Reference in New Issue
Block a user