class Timer: def __init__(self, interval_s): self._interval_s = interval_s self._last_time = 0 self._last_utc = (0,0,0) def set_interval(self, new_interval_s): self._interval_s = new_interval_s def check_timer(self, utc): ns = utc[3] * 0.000000001 timestamp = utc[0] * 3600 + utc[1] * 60 + utc[2] + ns shifted_timestamp = timestamp if self._last_utc[0] == 23 and utc[0] == 0: shifted_timestamp += 24*3600 if (shifted_timestamp - self._last_time) >= self._interval_s: self._last_time = timestamp self._last_utc = (utc[0], utc[1], utc[2]) return True return False def reset(self, utc): ns = utc[3] * 0.000000001 self._last_time = utc[0] * 3600 + utc[1] * 60 + utc[2] + ns self._last_utc = (utc[0], utc[1], utc[2])