Commit fce36f5a authored by Constantin's avatar Constantin
Browse files

Fallback mode works now (software side)

parent b4ca24f8
......@@ -23,7 +23,6 @@ CLOSE_REPEAT_TIMEOUT = 7
CLOSE_REPEAT_NUMBER = 3
# StateFallback constants
FALLBACK_BLINK_SPEED = 0.5 # seconds
FALLBACK_LEAVE_DELAY_LOCK = 5 # seconds
# StateAboutToOpen constants
......@@ -180,7 +179,6 @@ class StateMachine():
def handle_wakeup_event(self):
# blink red LED
now = time.time()
if now - self._last_blink_time < FALLBACK_BLINK_SPEED:
if self._red_state:
self.actor().act(Actor.CMD_RED_OFF)
self._red_state = False
......
from libtuer import ThreadRepeater
from collections import namedtuple
from threading import Lock
SLEEP_TIME = 0.5
ToBeWoken = namedtuple('ToBeWoken','f period time_since_call one_shot')
class ToBeWoken:
'''a simple struct storing information about a to-be-woken function'''
def __init__(self, f, period, one_shot):
self.f = f
self.period = period
self.time_since_call = 0
self.one_shot = one_shot
class Waker():
def __init__(self):
......@@ -16,7 +21,7 @@ class Waker():
'''Register a function which is called approximately every <time> seconds (or just once, if one_shot is True). f should return quickly, or it will delay the waker!'''
time = max(time//SLEEP_TIME, 1)
with self._tobewokens_lock:
self._tobewokens.append(ToBeWoken(f, time, 0, one_shot))
self._tobewokens.append(ToBeWoken(f, time, one_shot))
def _wake(self):
with self._tobewokens_lock:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment