|
@@ -20,6 +20,8 @@ _SCREEN_WIDTH, _SCREEN_HEIGHT = lcd.winsize()
|
|
|
class App:
|
|
|
|
|
|
def __init__(self):
|
|
|
+ self._rtc = None
|
|
|
+ self._clock_text_box = None
|
|
|
self._menu_position = 0
|
|
|
self._alarm_hour = None
|
|
|
self._alarm_minute = None
|
|
@@ -76,7 +78,33 @@ class App:
|
|
|
self._alarm_minute %= 60
|
|
|
micropython.schedule(self._update_alarm_time, None)
|
|
|
|
|
|
+ def _format_time(self) -> str:
|
|
|
+ return "{:02d}:{:02d}".format(*self._rtc.datetime()[4:6])
|
|
|
+
|
|
|
+ def _setup_clock(self):
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ self._rtc = machine.RTC()
|
|
|
+
|
|
|
+ self._clock_text_box = m5ui.M5TextBox(
|
|
|
+ _SCREEN_WIDTH - 1,
|
|
|
+ 0,
|
|
|
+ self._format_time(),
|
|
|
+ _FONT,
|
|
|
+ _DEFAULT_FONT_COLOR,
|
|
|
+ rotate=90,
|
|
|
+ )
|
|
|
+ machine.Timer(0).init(
|
|
|
+ period=10000,
|
|
|
+ mode=machine.Timer.PERIODIC,
|
|
|
+ callback=lambda t: self._clock_text_box.setText(self._format_time()),
|
|
|
+ )
|
|
|
+
|
|
|
def run(self):
|
|
|
+ m5ui.setScreenColor(0x000000)
|
|
|
+ print("battery:", axp.getBatVoltage(), "V")
|
|
|
+ self._setup_clock()
|
|
|
if not utils.exists(_ALARM_TIME_PATH):
|
|
|
self._alarm_hour = self._alarm_minute = 0
|
|
|
self._save_alarm_time()
|
|
@@ -105,29 +133,7 @@ class App:
|
|
|
btnB.wasPressed(self._button_b_pressed)
|
|
|
|
|
|
|
|
|
-def main():
|
|
|
- m5ui.setScreenColor(0x000000)
|
|
|
- print("battery:", axp.getBatVoltage(), "V")
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- rtc = machine.RTC()
|
|
|
-
|
|
|
- clock_text_box = m5ui.M5TextBox(
|
|
|
- _SCREEN_WIDTH - 1, 0, "HH:MM", _FONT, _DEFAULT_FONT_COLOR, rotate=90
|
|
|
- )
|
|
|
- clock_update_timer = machine.Timer(0)
|
|
|
- clock_update_timer.init(
|
|
|
- period=10000,
|
|
|
- mode=machine.Timer.PERIODIC,
|
|
|
- callback=lambda t: clock_text_box.setText(
|
|
|
- "{:02d}:{:02d}".format(*rtc.datetime()[4:6])
|
|
|
- ),
|
|
|
- )
|
|
|
- App().run()
|
|
|
-
|
|
|
-
|
|
|
-main()
|
|
|
+App().run()
|
|
|
|
|
|
|
|
|
|