Add preset persistence and startup default.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
18
src/main.py
18
src/main.py
@@ -10,6 +10,11 @@ settings = Settings()
|
||||
print(settings)
|
||||
|
||||
presets = Presets(settings["led_pin"], settings["num_leds"])
|
||||
presets.load()
|
||||
startup_preset = settings.get("startup_preset")
|
||||
if startup_preset:
|
||||
presets.select(startup_preset)
|
||||
print(f"Selected startup preset: {startup_preset}")
|
||||
|
||||
wdt = WDT(timeout=10000)
|
||||
wdt.feed()
|
||||
@@ -31,7 +36,7 @@ while True:
|
||||
# Only handle messages with the expected version.
|
||||
if data.get("v") != "1":
|
||||
continue
|
||||
print(data)
|
||||
# print(data)
|
||||
# Global brightness (0–255) for this device
|
||||
if "b" in data:
|
||||
try:
|
||||
@@ -39,11 +44,12 @@ while True:
|
||||
except (TypeError, ValueError):
|
||||
pass
|
||||
if "presets" in data:
|
||||
for name, preset_data in data["presets"].items():
|
||||
for id, 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)
|
||||
presets.edit(name, preset_data)
|
||||
presets.edit(id, preset_data)
|
||||
print(f"Edited preset {id}: {preset_data.get('name', '')}")
|
||||
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]
|
||||
@@ -51,3 +57,9 @@ while True:
|
||||
preset_name = select_list[0]
|
||||
step = select_list[1] if len(select_list) > 1 else None
|
||||
presets.select(preset_name, step=step)
|
||||
if "default" in data:
|
||||
settings["startup_preset"] = data["default"]
|
||||
print(f"Set startup preset to: {data['default']}")
|
||||
settings.save()
|
||||
if "save" in data:
|
||||
presets.save()
|
||||
|
||||
Reference in New Issue
Block a user