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:
Enrico Faulhaber
2017-12-08 14:01:17 +01:00
parent 69e77749fb
commit fd0f0ea961

View File

@ -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)