From 94d2899d5cabb93638f882a0b118fad678e15c69 Mon Sep 17 00:00:00 2001 From: Philipp Klaus Date: Thu, 10 Aug 2017 13:59:33 +0200 Subject: [PATCH] OPUS20: strict 5s interval for scanning --- LUFFT_OPUS20/lufft_opus20_driver.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/LUFFT_OPUS20/lufft_opus20_driver.py b/LUFFT_OPUS20/lufft_opus20_driver.py index 546faac..56a21d8 100644 --- a/LUFFT_OPUS20/lufft_opus20_driver.py +++ b/LUFFT_OPUS20/lufft_opus20_driver.py @@ -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 -- 2.51.0