mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Add wait_for_input and add_callback methods to InputDevice
This commit is contained in:
@@ -6,13 +6,36 @@ GPIO.setwarnings(False)
|
|||||||
|
|
||||||
|
|
||||||
class InputDevice(object):
|
class InputDevice(object):
|
||||||
def __init__(self, pin):
|
def __init__(self, pin=None):
|
||||||
self.pin = pin
|
if pin is None:
|
||||||
GPIO.setup(pin, GPIO.IN, GPIO.PUD_UP)
|
raise InputDeviceError('No GPIO pin number given')
|
||||||
|
|
||||||
def is_pressed(self):
|
self.pin = pin
|
||||||
return GPIO.input(self.pin) == 0
|
self.pull = GPIO.PUD_UP
|
||||||
|
self.edge = GPIO.FALLING
|
||||||
|
self.active = 0
|
||||||
|
self.inactive = 1
|
||||||
|
GPIO.setup(pin, GPIO.IN, self.pull)
|
||||||
|
|
||||||
|
def is_active(self):
|
||||||
|
return GPIO.input(self.pin) == self.active
|
||||||
|
|
||||||
|
def wait_for_input(self):
|
||||||
|
GPIO.wait_for_edge(self.pin, self.edge)
|
||||||
|
|
||||||
|
def add_callback(self, callback=None, bouncetime=1000):
|
||||||
|
if callback is None:
|
||||||
|
raise InputDeviceError('No callback function given')
|
||||||
|
|
||||||
|
GPIO.add_event_detect(self.pin, self.edge, callback, bouncetime)
|
||||||
|
|
||||||
|
def remove_callback(self):
|
||||||
|
GPIO.remove_event_detect(self.pin)
|
||||||
|
|
||||||
|
|
||||||
class Button(InputDevice):
|
class Button(InputDevice):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class InputDeviceError(Exception):
|
||||||
|
pass
|
||||||
|
|||||||
Reference in New Issue
Block a user