Add timing properties
This commit is contained in:
parent
650c36937b
commit
0d05248312
1 changed files with 14 additions and 0 deletions
|
|
@ -70,6 +70,8 @@ class Debouncer(object):
|
|||
self._set_state(_DEBOUNCED_STATE | _UNSTABLE_STATE)
|
||||
self.previous_time = 0
|
||||
self.interval = interval
|
||||
self._previous_state_duration = 0
|
||||
self._state_changed_time = 0
|
||||
|
||||
|
||||
def _set_state(self, bits):
|
||||
|
|
@ -102,6 +104,8 @@ class Debouncer(object):
|
|||
self.previous_time = now
|
||||
self._toggle_state(_DEBOUNCED_STATE)
|
||||
self._set_state(_CHANGED_STATE)
|
||||
self._previous_state_duration = now - self._state_changed_time
|
||||
self._state_changed_time = now
|
||||
|
||||
|
||||
@property
|
||||
|
|
@ -120,3 +124,13 @@ class Debouncer(object):
|
|||
def fell(self):
|
||||
"""Return whether the debounced value went from high to low at the most recent update."""
|
||||
return (not self._get_state(_DEBOUNCED_STATE)) and self._get_state(_CHANGED_STATE)
|
||||
|
||||
@property
|
||||
def lastDuration(self):
|
||||
"""Return the amount of time the state was stable prior to the most recent transition."""
|
||||
return self._previous_state_duration
|
||||
|
||||
@property
|
||||
def currentDuration(self):
|
||||
"""Return the time since the most recent transition."""
|
||||
return time.monotonic() - self._state_changed_time
|
||||
|
|
|
|||
Loading…
Reference in a new issue