Make alarm sleep.
This commit is contained in:
parent
2824211898
commit
7327828136
32
src/alarm.py
32
src/alarm.py
@ -1,8 +1,9 @@
|
|||||||
import time
|
import time
|
||||||
from machine import Pin
|
from machine import Pin, Timer
|
||||||
import buzzer
|
import buzzer
|
||||||
from display import Display
|
from display import Display
|
||||||
import constants
|
import constants
|
||||||
|
import parameters
|
||||||
|
|
||||||
|
|
||||||
SATURATED_MESSAGE = """Filtro saturado."""
|
SATURATED_MESSAGE = """Filtro saturado."""
|
||||||
@ -10,21 +11,28 @@ HOLE_MESSAGE = """Filtro ou linha \nfurado."""
|
|||||||
|
|
||||||
class Alarm:
|
class Alarm:
|
||||||
reset_btnn = Pin(constants.RESET_BUTTON_PIN, mode=Pin.IN)
|
reset_btnn = Pin(constants.RESET_BUTTON_PIN, mode=Pin.IN)
|
||||||
|
led = Pin(constants.ALARM_LED_PIN, mode=Pin.OUT)
|
||||||
|
interrupt_timer = None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def trigger_saturated_alarm():
|
def trigger_saturated_alarm():
|
||||||
Display.print(SATURATED_MESSAGE)
|
Display.print(SATURATED_MESSAGE)
|
||||||
buzzer.sing_alarm()
|
Alarm.blink_led_and_wait_for_reset()
|
||||||
while Alarm.reset_button_not_pressed():
|
|
||||||
time.sleep(0.05)
|
|
||||||
Alarm.stop_alarm()
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def trigger_hole_alarm():
|
def trigger_hole_alarm():
|
||||||
Display.print(HOLE_MESSAGE)
|
Display.print(HOLE_MESSAGE)
|
||||||
|
Alarm.blink_led_and_wait_for_reset()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def blink_led_and_wait_for_reset():
|
||||||
buzzer.sing_alarm()
|
buzzer.sing_alarm()
|
||||||
|
Alarm.led.on()
|
||||||
while Alarm.reset_button_not_pressed():
|
while Alarm.reset_button_not_pressed():
|
||||||
time.sleep(0.05)
|
time.sleep(0.05)
|
||||||
Alarm.stop_alarm()
|
Alarm.stop_alarm()
|
||||||
|
Alarm.led.off()
|
||||||
|
Alarm.sleep_alarm()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def stop_alarm():
|
def stop_alarm():
|
||||||
@ -35,3 +43,17 @@ class Alarm:
|
|||||||
def reset_button_not_pressed():
|
def reset_button_not_pressed():
|
||||||
was_not_pressed = Alarm.reset_btnn.value() < 1
|
was_not_pressed = Alarm.reset_btnn.value() < 1
|
||||||
return was_not_pressed
|
return was_not_pressed
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def sleep_alarm():
|
||||||
|
interrupt_timer = Timer(
|
||||||
|
period=int(parameters.ALARM_PAUSE_PERIOD * 1e3),
|
||||||
|
mode=Timer.ONE_SHOT,
|
||||||
|
callback=Alarm.__wake_up_alarm
|
||||||
|
)
|
||||||
|
Alarm.interrupt_timer = interrupt_timer
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def __wake_up_alarm(*args, **kargs):
|
||||||
|
Alarm.interrupt_timer.deinit()
|
||||||
|
Alarm.blink_led_and_wait_for_reset()
|
||||||
|
@ -15,3 +15,6 @@ ANNOYING_BUZZER_ENABLED = False
|
|||||||
|
|
||||||
"""How many samples of pressure should be used in smoother."""
|
"""How many samples of pressure should be used in smoother."""
|
||||||
PRESSURE_SMOOTH_LENGTH = 25
|
PRESSURE_SMOOTH_LENGTH = 25
|
||||||
|
|
||||||
|
"""Period in seconds to wait when alarm reset button is presset until it starts again."""
|
||||||
|
ALARM_PAUSE_PERIOD = 5
|
||||||
|
Loading…
x
Reference in New Issue
Block a user