summaryrefslogtreecommitdiff
path: root/wasp/clock.py
diff options
context:
space:
mode:
authorDaniel Thompson <daniel@redfelineninja.org.uk>2020-03-08 17:37:43 (GMT)
committerDaniel Thompson <daniel@redfelineninja.org.uk>2020-03-08 17:39:39 (GMT)
commit799a66c9b95a1f95eba8b3412c45b6290ec68a73 (patch)
treefb731f2a97acda16c95887a1a1ae52f392abfb48 /wasp/clock.py
parentb5b96bd7760f76d9bb476eb835f49b3c9586ca5c (diff)
wasp: Move the apps into their own directory.
Diffstat (limited to 'wasp/clock.py')
-rw-r--r--wasp/clock.py96
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