代码拉取完成,页面将自动刷新
同步操作将从 Walkline/MicroPython WS2812 Led Clock 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""
Copyright © 2021 Walkline Wang (https://walkline.wang)
Gitee: https://gitee.com/walkline/micropython-ws2812-research
"""
from utime import sleep
from utils.utilities import Utilities
from utils.wifihandler import WifiHandler
from matrix.matrix_clock import MatrixClock
from drivers.button import Button
from dispatcher import Dispatcher
Config = Utilities.import_config()
clock = None
buttons = None
tasks = None
def buttons_click_cb(pin):
print(f'Key {Config.KEYS.KEY_MAP[pin]} clicked')
if not clock: return
if pin == Config.KEYS.KEY_1:
clock.switch_mode()
elif pin == Config.KEYS.KEY_2:
clock.show_blink()
elif pin == Config.KEYS.KEY_3:
bright = clock.brightness - 20
clock.set_brightness(100 if bright < 1 else bright)
clock.show_time()
elif pin == Config.KEYS.KEY_4:
clock.switch_power()
def buttons_press_cb(time, pin):
print(f'Key {Config.KEYS.KEY_MAP[pin]} pressed {time} ms')
if pin == Config.KEYS.KEY_1:
Utilities.delete_sta_config_file()
Utilities.hard_reset()
if __name__ == '__main__':
try:
buttons = Button(
Config.KEYS.KEY_LIST,
click_cb=buttons_click_cb,
press_cb=buttons_press_cb
)
tasks = Dispatcher(adjusting_rate=2 if Utilities.is_esp32c3() else 1)
clock = MatrixClock(Config.MATRIX.WIDTH, Config.MATRIX.HEIGHT)
clock.set_bright_max(Config.BRIGHTNESS.MAX)
tasks.add_work(clock.show_connecting, 50)
if WifiHandler.STATION_CONNECTED == WifiHandler.set_sta_mode(timeout_sec=120):
clock.mode = MatrixClock.MODE_TIME
clock.start()
tasks.del_works()
clock.clean()
clock.auto_brightness()
tasks.add_work(clock.refresh_time, Config.PERIOD.CLOCK_MS)
tasks.add_work(clock.auto_brightness, Config.PERIOD.ADC_MS)
while True:
sleep(1)
else:
Utilities.hard_reset()
except KeyboardInterrupt:
if tasks: tasks.deinit()
if clock: clock.stop()
if buttons: buttons.deinit()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。