]> jspc29.x-matter.uni-frankfurt.de Git - mvd_epics.git/commitdiff
OPUS20: strict 5s interval for scanning
authorPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Thu, 10 Aug 2017 11:59:33 +0000 (13:59 +0200)
committerPhilipp Klaus <klaus@physik.uni-frankfurt.de>
Thu, 10 Aug 2017 11:59:33 +0000 (13:59 +0200)
LUFFT_OPUS20/lufft_opus20_driver.py

index 546faacaa0d1764ff575fc40e450214fea5c7018..56a21d8b48e1e3637ded409257dbf8c8fbf1b74a 100644 (file)
@@ -27,8 +27,8 @@ class Opus20Driver(Driver):
             self.tid.start()
 
     def scan_all(self):
+        last_time = time.time()
         while True:
-            start = time.time()
 
             mapping = [
                 ('Temperature',       0x0064),
@@ -51,4 +51,9 @@ class Opus20Driver(Driver):
                 else:
                     self.setParamStatus(reason, Alarm.COMM_ALARM, Severity.MINOR_ALARM)
 
-            time.sleep(self.scan_period - (time.time() - start))
+            # if the process was suspended, reset last_time:
+            if time.time() - last_time > self.scan_period:
+                last_time = time.time()
+
+            time.sleep(max(0.0, self.scan_period - (time.time() - last_time)))
+            last_time += self.scan_period