import json import os import uasyncio as asyncio class Settings(dict): SETTINGS_FILE = "/settings.json" def __init__(self): super().__init__() self.load() # Load settings from file during initialization def set_defaults(self): self["num_leds"] = 50 self["selected_pattern"] = "blink" self["color1"] = "#000f00" self["color2"] = "#0f0000" self["delay"] = 100 self["brightness"] = 100 self["wifi"] = {"ssid": "", "password": ""} def save(self): try: j = json.dumps(self) with open(self.SETTINGS_FILE, 'w') as file: file.write(j) print("Settings saved successfully.") except Exception as e: print(f"Error saving settings: {e}") def load(self): try: with open(self.SETTINGS_FILE, 'r') as file: loaded_settings = json.load(file) self.update(loaded_settings) print("Settings loaded successfully.") except Exception as e: print(f"Error loading settings: {e}") self.set_defaults() # Example usage def main(): settings = Settings() print(f"Number of LEDs: {settings['num_leds']}") settings['num_leds'] = 100 print(f"Updated number of LEDs: {settings['num_leds']}") settings.save() # Create a new Settings object to test loading new_settings = Settings() print(f"Loaded number of LEDs: {new_settings['num_leds']}") print(settings) # Run the example if __name__ == "__main__": main()