Allow declaring encoders without a button

This commit is contained in:
tonasz 2022-01-15 01:07:33 +01:00 committed by Josh Klar
parent ef3d38f8ec
commit 10f8c74ad9

View File

@ -15,7 +15,7 @@ class Encoder:
def __init__(self, pin_a, pin_b, pin_button=None, is_inverted=False): def __init__(self, pin_a, pin_b, pin_button=None, is_inverted=False):
self.pin_a = EncoderPin(pin_a) self.pin_a = EncoderPin(pin_a)
self.pin_b = EncoderPin(pin_b) self.pin_b = EncoderPin(pin_b)
self.pin_button = EncoderPin(pin_button, button_type=True) self.pin_button = EncoderPin(pin_button, button_type=True) if pin_button is not None else None
self.is_inverted = is_inverted self.is_inverted = is_inverted
self._state = (self.pin_a.get_value(), self.pin_b.get_value()) self._state = (self.pin_a.get_value(), self.pin_b.get_value())
@ -80,6 +80,7 @@ class Encoder:
self._timestamp = new_timestamp self._timestamp = new_timestamp
# Button events # Button events
if self.pin_button:
new_button_state = self.pin_button.get_value() new_button_state = self.pin_button.get_value()
if new_button_state != self._button_state: if new_button_state != self._button_state:
self._button_state = new_button_state self._button_state = new_button_state