Adjust defaults and preset handling
- Switch startup_preset to default key - Add built-in on/off presets and tweak device defaults Made-with: Cursor
This commit is contained in:
12
src/main.py
12
src/main.py
@@ -13,10 +13,11 @@ print(settings)
|
||||
presets = Presets(settings["led_pin"], settings["num_leds"])
|
||||
presets.load()
|
||||
presets.b = settings.get("brightness", 255)
|
||||
startup_preset = settings.get("startup_preset")
|
||||
if startup_preset:
|
||||
presets.select(startup_preset)
|
||||
print(f"Selected startup preset: {startup_preset}")
|
||||
# Use the default preset name from settings (set via controller or defaults)
|
||||
default_preset = settings.get("default")
|
||||
if default_preset:
|
||||
presets.select(default_preset)
|
||||
print(f"Selected startup preset: {default_preset}")
|
||||
|
||||
wdt = WDT(timeout=10000)
|
||||
wdt.feed()
|
||||
@@ -35,6 +36,7 @@ while True:
|
||||
presets.tick()
|
||||
if e.any():
|
||||
host, msg = e.recv()
|
||||
print(msg)
|
||||
data = json.loads(msg)
|
||||
# Only handle messages with the expected version.
|
||||
if data.get("v") != "1":
|
||||
@@ -66,7 +68,7 @@ while True:
|
||||
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"]
|
||||
settings["default"] = data["default"]
|
||||
print(f"Set startup preset to: {data['default']}")
|
||||
settings.save()
|
||||
if "save" in data:
|
||||
|
||||
1
src/presets.json
Normal file
1
src/presets.json
Normal file
@@ -0,0 +1 @@
|
||||
{"14": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 102, 0]], "b": 255, "n2": 1000, "n1": 2000, "p": "pulse", "n3": 2000, "d": 800}, "15": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 0, 0], [0, 255, 0]], "b": 255, "n2": 0, "n1": 0, "p": "blink", "n3": 0, "d": 500}, "5": {"n5": 0, "n4": 1, "a": true, "n6": 0, "c": [[255, 0, 0], [0, 0, 255]], "b": 255, "n2": 5, "n1": 5, "p": "chase", "n3": 1, "d": 200}, "4": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 0, 0], [0, 255, 0], [0, 0, 255]], "b": 255, "n2": 0, "n1": 0, "p": "transition", "n3": 0, "d": 500}, "7": {"n5": 0, "n4": 5, "a": true, "n6": 0, "c": [[255, 165, 0], [128, 0, 128]], "b": 255, "n2": 10, "n1": 2, "p": "circle", "n3": 2, "d": 200}, "11": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 0, 0]], "b": 255, "n2": 0, "n1": 0, "p": "on", "n3": 0, "d": 100}, "12": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[0, 0, 255]], "b": 255, "n2": 0, "n1": 0, "p": "on", "n3": 0, "d": 100}, "6": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[0, 255, 0]], "b": 255, "n2": 500, "n1": 1000, "p": "pulse", "n3": 1000, "d": 500}, "3": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 255, 255]], "b": 255, "n2": 0, "n1": 2, "p": "rainbow", "n3": 0, "d": 100}, "2": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 255, 255]], "b": 0, "n2": 0, "n1": 0, "p": "off", "n3": 0, "d": 100}, "1": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 255, 255]], "b": 255, "n2": 0, "n1": 0, "p": "on", "n3": 0, "d": 100}, "10": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[230, 242, 255]], "b": 200, "n2": 0, "n1": 0, "p": "on", "n3": 0, "d": 100}, "13": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 255, 255]], "b": 255, "n2": 0, "n1": 1, "p": "rainbow", "n3": 0, "d": 150}, "9": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 245, 230]], "b": 200, "n2": 0, "n1": 0, "p": "on", "n3": 0, "d": 100}, "8": {"n5": 0, "n4": 0, "a": true, "n6": 0, "c": [[255, 0, 0], [0, 255, 0], [0, 0, 255], [255, 255, 0]], "b": 255, "n2": 0, "n1": 0, "p": "blink", "n3": 0, "d": 1000}}
|
||||
@@ -82,6 +82,13 @@ class Presets:
|
||||
self.generator = None
|
||||
|
||||
def select(self, preset_name, step=None):
|
||||
# Auto-create simple built-in presets for common names on first use
|
||||
if preset_name not in self.presets and preset_name in ("on", "off"):
|
||||
if preset_name == "on":
|
||||
self.presets[preset_name] = Preset({"p": "on"})
|
||||
else:
|
||||
self.presets[preset_name] = Preset({"p": "off"})
|
||||
|
||||
if preset_name in self.presets:
|
||||
preset = self.presets[preset_name]
|
||||
if preset.p in self.patterns:
|
||||
@@ -93,7 +100,7 @@ class Presets:
|
||||
self.generator = self.patterns[preset.p](preset)
|
||||
self.selected = preset_name # Store the preset name, not the object
|
||||
return True
|
||||
# If preset doesn't exist or pattern not found, default to "off"
|
||||
# If preset doesn't exist or pattern not found, indicate failure
|
||||
return False
|
||||
|
||||
def update_num_leds(self, pin, num_leds):
|
||||
|
||||
@@ -13,14 +13,14 @@ class Settings(dict):
|
||||
|
||||
def set_defaults(self):
|
||||
self["led_pin"] = 10
|
||||
self["num_leds"] = 50
|
||||
self["num_leds"] = 119
|
||||
|
||||
self["color_order"] = "rgb"
|
||||
self["name"] = f"led-{ubinascii.hexlify(network.WLAN(network.AP_IF).config('mac')).decode()}"
|
||||
self["name"] = "a"
|
||||
|
||||
self["debug"] = False
|
||||
self["default"] = None
|
||||
self["brightness"] = 255
|
||||
self["default"] = "on"
|
||||
self["brightness"] = 32
|
||||
|
||||
def save(self):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user