import asyncio import aioespnow from settings import Settings from web import web from patterns import Patterns import gc import utime import machine import time import wifi import json from p2p import p2p async def main(): settings = Settings() patterns = Patterns(settings["led_pin"], settings["num_leds"], selected=settings["pattern"]) if settings["color_order"] == "rbg": color_order = (1, 5, 3) else: color_order = (1, 3, 5) patterns.set_color1(tuple(int(settings["color1"][i:i+2], 16) for i in color_order)) patterns.set_color2(tuple(int(settings["color2"][i:i+2], 16) for i in color_order)) patterns.set_brightness(int(settings["brightness"])) patterns.set_delay(int(settings["delay"])) async def tick(): while True: patterns.tick() await asyncio.sleep_ms(1) w = web(settings, patterns) print(settings) # start the server in a bacakground task print("Starting") server = asyncio.create_task(w.start_server(host="0.0.0.0", port=80)) wdt = machine.WDT(timeout=10000) wdt.feed() asyncio.create_task(tick()) asyncio.create_task(p2p(settings, patterns)) while True: #print(time.localtime()) gc.collect() for i in range(20): wdt.feed() await asyncio.sleep_ms(1000) # cleanup before ending the application await server asyncio.run(main())