From 1ab75d54cfb11e39e742f4c9dff650d34f09c9b3 Mon Sep 17 00:00:00 2001 From: lady ada Date: Sun, 6 Mar 2022 11:17:39 -0500 Subject: [PATCH 1/2] allow manually pushing state, back compatible --- adafruit_debouncer.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/adafruit_debouncer.py b/adafruit_debouncer.py index 6944819..5b933cf 100644 --- a/adafruit_debouncer.py +++ b/adafruit_debouncer.py @@ -73,11 +73,14 @@ def _toggle_state(self, bits): def _get_state(self, bits): return (self.state & bits) != 0 - def update(self): + def update(self, new_state=None): """Update the debouncer state. MUST be called frequently""" now_ticks = ticks_ms() self._unset_state(_CHANGED_STATE) - current_state = self.function() + if new_state is None: + current_state = self.function() + else: + current_state = bool(new_state) if current_state != self._get_state(_UNSTABLE_STATE): self._last_bounce_ticks = now_ticks self._toggle_state(_UNSTABLE_STATE) From 3be36e4d8664e0c5f55b5a2641ef15a264582b37 Mon Sep 17 00:00:00 2001 From: lady ada Date: Sun, 6 Mar 2022 11:38:05 -0500 Subject: [PATCH 2/2] fix subclass --- adafruit_debouncer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adafruit_debouncer.py b/adafruit_debouncer.py index 5b933cf..5182e5f 100644 --- a/adafruit_debouncer.py +++ b/adafruit_debouncer.py @@ -163,8 +163,8 @@ def _released(self): not self.active_down and super().fell ) - def update(self): - super().update() + def update(self, new_state=None): + super().update(new_state) if self._pushed(): self.last_change_ms = ticks_ms() self.short_counter = self.short_counter + 1