diff options
| author | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-03-08 17:37:43 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-03-08 17:39:39 (GMT) |
| commit | 799a66c9b95a1f95eba8b3412c45b6290ec68a73 (patch) | |
| tree | fb731f2a97acda16c95887a1a1ae52f392abfb48 /wasp/clock.py | |
| parent | b5b96bd7760f76d9bb476eb835f49b3c9586ca5c (diff) | |
wasp: Move the apps into their own directory.
Diffstat (limited to 'wasp/clock.py')
| -rw-r--r-- | wasp/clock.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/wasp/clock.py b/wasp/clock.py deleted file mode 100644 index 5de6271..0000000 --- a/wasp/clock.py +++ /dev/null @@ -1,96 +0,0 @@ -import fonts.clock as digits -import watch -import widgets -import manager - -from draw565 import Draw565 - -DIGITS = ( - digits.clock_0, - digits.clock_1, - digits.clock_2, - digits.clock_3, - digits.clock_4, - digits.clock_5, - digits.clock_6, - digits.clock_7, - digits.clock_8, - digits.clock_9 -) - -MONTH = 'JanFebMarAprMayJunJulAugSepOctNovDec' - -class ClockApp(object): - """Simple digital clock application. - - Shows a time (as HH:MM) together with a battery meter and the date. - """ - - def __init__(self): - self.meter = widgets.BatteryMeter() - - def handle_event(self, event_view): - """Process events that the app is subscribed to.""" - if event_view[0] == manager.EVENT_TICK: - self.update() - else: - # TODO: Raise an unexpected event exception - pass - - def foreground(self, manager, effect=None): - """Activate the application.""" - self.on_screen = ( -1, -1, -1, -1, -1, -1 ) - self.draw(effect) - manager.request_tick(1000) - - def tick(self, ticks): - self.update() - - def background(self): - """De-activate the application (without losing state).""" - pass - - def sleep(self): - return True - - def wake(self): - self.update() - - def draw(self, effect=None): - """Redraw the display from scratch.""" - display = watch.display - - display.fill(0) - display.rleblit(digits.clock_colon, pos=(2*48, 80), fg=0xb5b6) - self.on_screen = ( -1, -1, -1, -1, -1, -1 ) - self.update() - self.meter.draw() - - def update(self): - """Update the display (if needed). - - The updates are a lazy as possible and rely on an prior call to - draw() to ensure the screen is suitably prepared. - """ - now = watch.rtc.get_localtime() - if now[3] == self.on_screen[3] and now[4] == self.on_screen[4]: - if now[5] != self.on_screen[5]: - self.meter.update() - self.on_screen = now - return False - - display = watch.display - display.rleblit(DIGITS[now[4] % 10], pos=(4*48, 80)) - display.rleblit(DIGITS[now[4] // 10], pos=(3*48, 80), fg=0xbdb6) - display.rleblit(DIGITS[now[3] % 10], pos=(1*48, 80)) - display.rleblit(DIGITS[now[3] // 10], pos=(0*48, 80), fg=0xbdb6) - self.on_screen = now - - draw = Draw565(display) - month = now[1] - 1 - month = MONTH[month*3:(month+1)*3] - draw.string('{} {} {}'.format(now[2], month, now[0]), - 0, 180, width=240) - - self.meter.update() - return True |
