diff --git a/src/settings.py b/src/settings.py index ea51d03..e4183e2 100644 --- a/src/settings.py +++ b/src/settings.py @@ -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