settings: adjust defaults and color order handling

This commit is contained in:
2025-09-15 12:58:39 +12:00
parent 4ec48b9f8f
commit df838dc4d6

View File

@@ -14,14 +14,19 @@ class Settings(dict):
def set_defaults(self):
self["led_pin"] = 10
self["num_leds"] = 50
self["num_leds"] = 100
self["pattern"] = "on"
self["color1"] = "#00ff00"
self["color1"] = "#080000"
self["color2"] = "#ff0000"
self["delay"] = 100
self["brightness"] = 10
self["brightness"] = 100
self["on_width"] = 1 # Default on width for theater chase
self["off_width"] = 2 # Default off width for theater chase
self["n1"] = 0 # Default start of fill range
self["n2"] = 58 # Default end of fill range (assuming 59 leds for now)
self["oneshot"] = False # Default one-shot setting
self["color_order"] = "rgb"
self["name"] = f"led-{ubinascii.hexlify(wifi.get_mac()).decode()}"
self["name"] = f"5"
self["ap_password"] = ""
self["id"] = 0
@@ -47,7 +52,6 @@ class Settings(dict):
def set_settings(self, data, patterns, save):
try:
print(data)
for key, value in data.items():
print(key, value)
if key == "colors":
@@ -70,6 +74,24 @@ class Settings(dict):
elif key == "brightness":
brightness = int(data["brightness"])
patterns.set_brightness(brightness)
elif key == "on_width":
on_width = int(data["on_width"])
patterns.set_on_width(on_width)
elif key == "off_width":
off_width = int(data["off_width"])
on_width = int(data.get("on_width", self["on_width"]))
patterns.set_on_off_width(on_width, off_width)
elif key == "n1":
n1 = int(data["n1"])
n2 = int(data.get("n2", patterns.n2))
patterns.set_fill_range(n1, n2)
elif key == "n2":
n2 = int(data["n2"])
n1 = int(data.get("n1", patterns.n1))
patterns.set_fill_range(n1, n2)
elif key == "oneshot":
oneshot_value = bool(data["oneshot"])
patterns.set_oneshot(oneshot_value)
elif key == "name":
self[key] = value
self.save()
@@ -90,7 +112,8 @@ class Settings(dict):
if save:
self.save()
return "OK", 200
except (KeyError, ValueError):
except Exception as e:
print(f"An unexpected error occurred in set_settings: {e}")
return "Bad request", 400
# Example usage