27 lines
631 B
Python
27 lines
631 B
Python
class Buzzer:
|
|
def __init__(self, pin=None):
|
|
self.pin = pin
|
|
self.enabled = False
|
|
self.pattern = None
|
|
|
|
def on(self):
|
|
self.enabled = True
|
|
if self.pin:
|
|
self.pin.value(1)
|
|
|
|
def off(self):
|
|
self.enabled = False
|
|
self.pattern = None
|
|
if self.pin:
|
|
self.pin.value(0)
|
|
|
|
def set_pattern(self, pattern):
|
|
self.pattern = pattern
|
|
self.enabled = pattern is not None
|
|
|
|
def update_from_alarm_view(self, alarm_view):
|
|
if alarm_view.should_buzz():
|
|
self.set_pattern("critical")
|
|
else:
|
|
self.off()
|