From 9fc8db577a1e9cf48a4e3fc686bd7a89bde74ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= Date: Mon, 8 Nov 2021 21:39:21 +0100 Subject: [PATCH] Improved periodical to forgive skipped beats --- solar_ble.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/solar_ble.py b/solar_ble.py index 5d6707d..ee27ba2 100755 --- a/solar_ble.py +++ b/solar_ble.py @@ -307,8 +307,13 @@ class Periodical: now = time.time() if (now - self.prev) >= self.interval: - self.prev += self.interval + skipped, overshoot = divmod(now - self.prev, self.interval) + skipped -= 1 + if skipped: + log("Skipped:", skipped, overshoot, now - self.prev, self.interval) + self.prev = now - overshoot return True + return False