Files
led-driver-8/src/main.py
jimmy 337e8c9906 Use shortened preset fields in driver
Switch led-driver patterns and main loop to use compact preset keys (p, d, b, c, a, n1..n6) and remove unused settings defaults.
2026-01-28 23:28:54 +13:00

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)