playground: give sequencermixin a loopcounter (per step)
Change-Id: Ibb300d426aa0a8191a08f4b1599965ca06731a02 Reviewed-on: https://forge.frm2.tum.de/review/16894 Tested-by: JenkinsCodeReview <bjoern_pedersen@frm2.tum.de> Reviewed-by: Enrico Faulhaber <enrico.faulhaber@frm2.tum.de>
This commit is contained in:
@ -24,7 +24,6 @@
|
|||||||
"""Utilities for devices that require sequenced actions on value change."""
|
"""Utilities for devices that require sequenced actions on value change."""
|
||||||
|
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from threading import Thread
|
|
||||||
|
|
||||||
from secop.lib import mkthread
|
from secop.lib import mkthread
|
||||||
from secop.protocol import status
|
from secop.protocol import status
|
||||||
@ -140,7 +139,7 @@ class SequencerMixin(object):
|
|||||||
return status.WARN, self._seq_stopped
|
return status.WARN, self._seq_stopped
|
||||||
if hasattr(self, 'read_hw_status'):
|
if hasattr(self, 'read_hw_status'):
|
||||||
return self.read_hw_status(maxage)
|
return self.read_hw_status(maxage)
|
||||||
return OK, ''
|
return status.OK, ''
|
||||||
|
|
||||||
def do_stop(self):
|
def do_stop(self):
|
||||||
if self.seq_is_alive():
|
if self.seq_is_alive():
|
||||||
@ -165,7 +164,9 @@ class SequencerMixin(object):
|
|||||||
self._seq_phase = step.desc
|
self._seq_phase = step.desc
|
||||||
self.log.debug('sequence: entering phase: %s', step.desc)
|
self.log.debug('sequence: entering phase: %s', step.desc)
|
||||||
try:
|
try:
|
||||||
|
i = 0
|
||||||
while True:
|
while True:
|
||||||
|
store.i = i
|
||||||
result = step.func(store, *step.args)
|
result = step.func(store, *step.args)
|
||||||
if self._seq_stopflag:
|
if self._seq_stopflag:
|
||||||
if result:
|
if result:
|
||||||
@ -183,6 +184,7 @@ class SequencerMixin(object):
|
|||||||
sleep(step.waittime)
|
sleep(step.waittime)
|
||||||
if not result:
|
if not result:
|
||||||
break
|
break
|
||||||
|
i += 1
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log.exception(
|
self.log.exception(
|
||||||
'error in sequence step %r: %s', step.desc, e)
|
'error in sequence step %r: %s', step.desc, e)
|
||||||
|
Reference in New Issue
Block a user