blob: 2c9ab8c1816ee1b5352c85c7a02d3a62e82849be (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import clock
import gc
import machine
class Manager(object):
def __init__(self, watch):
self.watch = watch
self.switch(clock.ClockApp())
self.sleep_at = watch.rtc.uptime + 90
self.charging = True
def switch(self, app):
self.app = app
app.draw(self.watch)
def tick(self):
if self.sleep_at:
if self.watch.rtc.update():
self.app.update(self.watch)
if self.watch.button.value():
self.sleep_at = self.watch.rtc.uptime + 15
if self.watch.rtc.uptime > self.sleep_at:
self.watch.backlight.set(0)
self.watch.display.poweroff()
self.charging = self.watch.battery.charging()
self.sleep_at = None
gc.collect()
else:
self.watch.rtc.update()
charging = self.watch.battery.charging()
if self.watch.button.value() or self.charging != charging:
self.watch.display.poweron()
self.app.update(self.watch)
self.watch.backlight.set(2)
self.sleep_at = self.watch.rtc.uptime + 15
def run(self):
while True:
self.tick()
machine.deepsleep()
|