Switch led-driver patterns and main loop to use compact preset keys (p, d, b, c, a, n1..n6) and remove unused settings defaults.
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
from settings import Settings
|
|
from machine import WDT
|
|
from espnow import ESPNow
|
|
import network
|
|
from patterns import Patterns
|
|
from utils import convert_and_reorder_colors
|
|
import json
|
|
|
|
settings = Settings()
|
|
print(settings)
|
|
|
|
patterns = Patterns(settings["led_pin"], settings["num_leds"])
|
|
|
|
wdt = WDT(timeout=10000)
|
|
wdt.feed()
|
|
|
|
sta_if = network.WLAN(network.STA_IF)
|
|
sta_if.active(True)
|
|
sta_if.disconnect()
|
|
sta_if.config(channel=1)
|
|
e = ESPNow()
|
|
e.active(True)
|
|
|
|
|
|
while True:
|
|
wdt.feed()
|
|
patterns.tick()
|
|
if e.any():
|
|
host, msg = e.recv()
|
|
data = json.loads(msg)
|
|
if data["v"] != "1":
|
|
continue
|
|
print(data)
|
|
if "presets" in data:
|
|
for name, preset_data in data["presets"].items():
|
|
# Convert hex color strings to RGB tuples and reorder based on device color order
|
|
if "c" in preset_data:
|
|
preset_data["c"] = convert_and_reorder_colors(preset_data["c"], settings)
|
|
patterns.edit(name, preset_data)
|
|
if settings.get("name") in data.get("select", {}):
|
|
select_list = data["select"][settings.get("name")]
|
|
# Select value is always a list: ["preset_name"] or ["preset_name", step]
|
|
if select_list:
|
|
preset_name = select_list[0]
|
|
step = select_list[1] if len(select_list) > 1 else None
|
|
patterns.select(preset_name, step=step)
|
|
|