From fd0f0ea9610de6a72257cdf5f7adc9472d6b7cc7 Mon Sep 17 00:00:00 2001 From: Enrico Faulhaber Date: Fri, 8 Dec 2017 14:01:17 +0100 Subject: [PATCH] playground: give sequencermixin a loopcounter (per step) Change-Id: Ibb300d426aa0a8191a08f4b1599965ca06731a02 Reviewed-on: https://forge.frm2.tum.de/review/16894 Tested-by: JenkinsCodeReview Reviewed-by: Enrico Faulhaber --- secop/lib/sequence.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/secop/lib/sequence.py b/secop/lib/sequence.py index a5b6efd..126eac9 100644 --- a/secop/lib/sequence.py +++ b/secop/lib/sequence.py @@ -24,7 +24,6 @@ """Utilities for devices that require sequenced actions on value change.""" from time import sleep -from threading import Thread from secop.lib import mkthread from secop.protocol import status @@ -140,7 +139,7 @@ class SequencerMixin(object): return status.WARN, self._seq_stopped if hasattr(self, 'read_hw_status'): return self.read_hw_status(maxage) - return OK, '' + return status.OK, '' def do_stop(self): if self.seq_is_alive(): @@ -165,7 +164,9 @@ class SequencerMixin(object): self._seq_phase = step.desc self.log.debug('sequence: entering phase: %s', step.desc) try: + i = 0 while True: + store.i = i result = step.func(store, *step.args) if self._seq_stopflag: if result: @@ -183,6 +184,7 @@ class SequencerMixin(object): sleep(step.waittime) if not result: break + i += 1 except Exception as e: self.log.exception( 'error in sequence step %r: %s', step.desc, e)