mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Make buzzer blink, close #19
This commit is contained in:
@@ -22,12 +22,20 @@ class OutputDevice(GPIODevice):
|
||||
GPIO.output(self.pin, False)
|
||||
|
||||
|
||||
class LED(OutputDevice):
|
||||
class DigitalOutputDevice(OutputDevice):
|
||||
def __init__(self, pin=None):
|
||||
super(LED, self).__init__(pin)
|
||||
super(DigitalOutputDevice, self).__init__(pin)
|
||||
self._blink_thread = None
|
||||
self._lock = Lock()
|
||||
|
||||
def on(self):
|
||||
self._stop_blink()
|
||||
super(DigitalOutputDevice, self).on()
|
||||
|
||||
def off(self):
|
||||
self._stop_blink()
|
||||
super(DigitalOutputDevice, self).off()
|
||||
|
||||
def blink(self, on_time=1, off_time=1):
|
||||
self._stop_blink()
|
||||
self._blink_thread = GPIOThread(
|
||||
@@ -42,21 +50,13 @@ class LED(OutputDevice):
|
||||
|
||||
def _blink_led(self, on_time, off_time):
|
||||
while True:
|
||||
super(LED, self).on()
|
||||
super(DigitalOutputDevice, self).on()
|
||||
if self._blink_thread.stopping.wait(on_time):
|
||||
break
|
||||
super(LED, self).off()
|
||||
super(DigitalOutputDevice, self).off()
|
||||
if self._blink_thread.stopping.wait(off_time):
|
||||
break
|
||||
|
||||
def on(self):
|
||||
self._stop_blink()
|
||||
super(LED, self).on()
|
||||
|
||||
def off(self):
|
||||
self._stop_blink()
|
||||
super(LED, self).off()
|
||||
|
||||
def toggle(self):
|
||||
with self._lock:
|
||||
if self.is_active:
|
||||
@@ -65,7 +65,11 @@ class LED(OutputDevice):
|
||||
self.on()
|
||||
|
||||
|
||||
class Buzzer(OutputDevice):
|
||||
class LED(DigitalOutputDevice):
|
||||
pass
|
||||
|
||||
|
||||
class Buzzer(DigitalOutputDevice):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user