Update settings.py
This commit is contained in:
parent
825ae1f637
commit
4c3337a232
|
@ -1,4 +1,7 @@
|
||||||
import json
|
import json
|
||||||
|
import wifi
|
||||||
|
import ubinascii
|
||||||
|
import machine
|
||||||
|
|
||||||
class Settings(dict):
|
class Settings(dict):
|
||||||
SETTINGS_FILE = "/settings.json"
|
SETTINGS_FILE = "/settings.json"
|
||||||
|
@ -9,12 +12,13 @@ class Settings(dict):
|
||||||
|
|
||||||
def set_defaults(self):
|
def set_defaults(self):
|
||||||
self["num_leds"] = 50
|
self["num_leds"] = 50
|
||||||
self["selected_pattern"] = "blink"
|
self["pattern"] = "on"
|
||||||
self["color1"] = "#000f00"
|
self["color1"] = "#00ff00"
|
||||||
self["color2"] = "#0f0000"
|
self["color2"] = "#ff0000"
|
||||||
self["delay"] = 100
|
self["delay"] = 100
|
||||||
self["brightness"] = 100
|
self["brightness"] = 10
|
||||||
self["wifi"] = {"ssid": "", "password": ""}
|
self["name"] = "led-controller"
|
||||||
|
self["ap_password"] = ""
|
||||||
|
|
||||||
def save(self):
|
def save(self):
|
||||||
try:
|
try:
|
||||||
|
@ -34,6 +38,7 @@ class Settings(dict):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error loading settings")
|
print(f"Error loading settings")
|
||||||
self.set_defaults()
|
self.set_defaults()
|
||||||
|
self.save()
|
||||||
|
|
||||||
# Example usage
|
# Example usage
|
||||||
def main():
|
def main():
|
||||||
|
@ -42,12 +47,49 @@ def main():
|
||||||
settings['num_leds'] = 100
|
settings['num_leds'] = 100
|
||||||
print(f"Updated number of LEDs: {settings['num_leds']}")
|
print(f"Updated number of LEDs: {settings['num_leds']}")
|
||||||
settings.save()
|
settings.save()
|
||||||
|
|
||||||
# Create a new Settings object to test loading
|
# Create a new Settings object to test loading
|
||||||
new_settings = Settings()
|
new_settings = Settings()
|
||||||
print(f"Loaded number of LEDs: {new_settings['num_leds']}")
|
print(f"Loaded number of LEDs: {new_settings['num_leds']}")
|
||||||
print(settings)
|
print(settings)
|
||||||
|
|
||||||
|
def set_settings(raw_json, settings, patterns):
|
||||||
|
try:
|
||||||
|
data = json.loads(raw_json)
|
||||||
|
print(data)
|
||||||
|
for key, value in data.items():
|
||||||
|
print(key, value)
|
||||||
|
if key == "color1":
|
||||||
|
patterns.set_color1(tuple(int(value[i:i+2], 16) for i in (1, 3, 5))) # Convert hex to RGB
|
||||||
|
elif key == "color2":
|
||||||
|
patterns.set_color2(tuple(int(value[i:i+2], 16) for i in (1, 3, 5))) # Convert hex to RGB
|
||||||
|
elif key == "num_leds":
|
||||||
|
patterns.update_num_leds(4, value)
|
||||||
|
elif key == "pattern":
|
||||||
|
if not patterns.select(value):
|
||||||
|
return "Pattern doesn't exist", 400
|
||||||
|
elif key == "delay":
|
||||||
|
delay = int(data["delay"])
|
||||||
|
patterns.set_delay(delay)
|
||||||
|
elif key == "brightness":
|
||||||
|
brightness = int(data["brightness"])
|
||||||
|
patterns.set_brightness(brightness)
|
||||||
|
elif key == "name":
|
||||||
|
settings[key] = value
|
||||||
|
settings.save()
|
||||||
|
machine.reset()
|
||||||
|
elif key == "sync":
|
||||||
|
patterns.sync()
|
||||||
|
return "OK", 200
|
||||||
|
else:
|
||||||
|
return "Invalid key", 400
|
||||||
|
settings[key] = value
|
||||||
|
settings.save()
|
||||||
|
return "OK", 200
|
||||||
|
|
||||||
|
except (KeyError, ValueError):
|
||||||
|
return "Bad request", 400
|
||||||
|
|
||||||
# Run the example
|
# Run the example
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in New Issue