kopia lustrzana https://github.com/peterhinch/micropython-nano-gui
64 wiersze
1.7 KiB
Python
64 wiersze
1.7 KiB
Python
![]() |
# eclock_test.py Unusual clock display for nanogui
|
||
|
# see micropython-epaper/epd-clock
|
||
|
|
||
|
# Released under the MIT License (MIT). See LICENSE.
|
||
|
# Copyright (c) 2023 Peter Hinch
|
||
|
|
||
|
"""
|
||
|
# color_setup.py:
|
||
|
import gc
|
||
|
from drivers.epaper.pico_epaper_42 import EPD as SSD
|
||
|
gc.collect() # Precaution before instantiating framebuf
|
||
|
ssd = SSD() #asyn=True) # Create a display instance
|
||
|
"""
|
||
|
|
||
|
from color_setup import ssd
|
||
|
import time
|
||
|
from machine import lightsleep, RTC
|
||
|
from gui.core.writer import CWriter
|
||
|
from gui.core.nanogui import refresh
|
||
|
import gui.fonts.font10 as font
|
||
|
from gui.core.colors import *
|
||
|
from extras.widgets.eclock import EClock
|
||
|
|
||
|
epaper = hasattr(ssd, "wait_until_ready")
|
||
|
if epaper and not hasattr(ssd, "set_partial"):
|
||
|
raise OSError("ePaper display does not support partial update.")
|
||
|
|
||
|
def test():
|
||
|
rtc = RTC()
|
||
|
#rtc.datetime((2023, 3, 18, 5, 10, 0, 0, 0))
|
||
|
wri = CWriter(ssd, font, verbose=False)
|
||
|
wri.set_clip(True, True, False) # Clip to screen, no wrap
|
||
|
refresh(ssd, True)
|
||
|
if epaper:
|
||
|
ssd.wait_until_ready()
|
||
|
ec = EClock(wri, 10, 10, 200, fgcolor=WHITE, bgcolor=BLACK)
|
||
|
ec.value(t := time.localtime()) # Initial drawing
|
||
|
refresh(ssd)
|
||
|
if epaper:
|
||
|
ssd.wait_until_ready()
|
||
|
mins = t[4]
|
||
|
|
||
|
while True:
|
||
|
t = time.localtime()
|
||
|
if t[4] != mins: # Minute has changed
|
||
|
mins = t[4]
|
||
|
if epaper:
|
||
|
if mins == 30:
|
||
|
ssd.set_full()
|
||
|
else:
|
||
|
ssd.set_partial()
|
||
|
ec.value(t)
|
||
|
refresh(ssd)
|
||
|
if epaper:
|
||
|
ssd.wait_until_ready()
|
||
|
#lightsleep(10_000)
|
||
|
time.sleep(10)
|
||
|
|
||
|
try:
|
||
|
test()
|
||
|
finally:
|
||
|
if epaper:
|
||
|
ssd.sleep()
|