diff --git a/src/main.py b/src/main.py index 4e8b7ff..01e81fb 100644 --- a/src/main.py +++ b/src/main.py @@ -1,55 +1,63 @@ import asyncio +import aioespnow from settings import Settings -from web import web from patterns import Patterns +from web import web import gc import utime import machine import ntptime import time import wifi +import json +import network + async def main(): - - settings = Settings() + patterns = Patterns(10, settings["num_leds"], selected=settings["pattern"]) + network.WLAN(network.WLAN.IF_STA).active(True) - patterns = Patterns(4, settings["num_leds"], selected=settings["selected_pattern"]) - patterns.set_color1(tuple(int(settings["color1"][i:i+2], 16) for i in (1, 5, 3))) - patterns.set_color2(tuple(int(settings["color2"][i:i+2], 16) for i in (1, 5, 3))) - patterns.set_brightness(int(settings["brightness"])) - patterns.set_delay(int(settings["delay"])) - + e = aioespnow.AIOESPNow() # Returns AIOESPNow enhanced with async support + e.active(True) 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)) + + async def send(): + peer = bytes.fromhex("e4b323c5411d") + perr = b'\xbb\xbb\xbb\xbb\xbb\xbb' + e.add_peer(peer) + print(peer) + msg = {"delay": 1000} + while True: + if not await e.asend(peer, json.dumps(msg).encode()): + print("Heartbeat: peer not responding:", peer) + else: + print("Heartbeat: ping", peer) + await asyncio.sleep(1) + #asyncio.create_task(send()) + + wdt = machine.WDT(timeout=10000) wdt.feed() - async def tick(): - while True: - patterns.tick() - await asyncio.sleep_ms(1) - - asyncio.create_task(tick()) - - first = True - while True: #print(time.localtime()) - + # gc.collect() for i in range(60): - wdt.feed() + wdt.feed() await asyncio.sleep_ms(500) + # cleanup before ending the application await server + + asyncio.run(main()) - -