Compare commits
1 Commits
3e718f7432
...
1fdb2c9441
| Author | SHA1 | Date | |
|---|---|---|---|
| 1fdb2c9441 |
46
src/main.py
46
src/main.py
@@ -3,14 +3,13 @@ from settings import Settings
|
|||||||
import machine
|
import machine
|
||||||
import asyncio
|
import asyncio
|
||||||
import gc
|
import gc
|
||||||
|
import json
|
||||||
import network
|
import network
|
||||||
import espnow
|
import espnow
|
||||||
from presets import Presets
|
from presets import Presets
|
||||||
from controller_messages import apply_startup_pattern
|
from controller_messages import apply_startup_pattern, process_data
|
||||||
from background_tasks import presets_loop
|
from espnow_transport import _handle_packet, init_espnow
|
||||||
from espnow_transport import espnow_receive_loop, init_espnow, send_boot_announce
|
from espnow_wire import BROADCAST_MAC, WIRE_MAGIC
|
||||||
from mem_stats import print_mem
|
|
||||||
import json
|
|
||||||
|
|
||||||
wdt = machine.WDT(timeout=10000)
|
wdt = machine.WDT(timeout=10000)
|
||||||
wdt.feed()
|
wdt.feed()
|
||||||
@@ -28,22 +27,29 @@ gc.collect()
|
|||||||
|
|
||||||
apply_startup_pattern(settings, presets)
|
apply_startup_pattern(settings, presets)
|
||||||
|
|
||||||
sta_if = network.WLAN(network.STA_IF)
|
esp = init_espnow(settings)
|
||||||
sta_if.active(True)
|
print(network.WLAN(network.STA_IF).config("channel"))
|
||||||
print(sta_if.ifconfig())
|
|
||||||
print(sta_if.config("channel"))
|
|
||||||
|
|
||||||
esp = espnow.ESPNow()
|
|
||||||
esp.active(True)
|
|
||||||
esp.add_peer(b"\xff\xff\xff\xff\xff\xff")
|
|
||||||
|
|
||||||
hello = json.dumps({
|
hello = json.dumps({
|
||||||
"v": "1",
|
"v": "1",
|
||||||
"settings": settings,
|
"name": settings.get("name", "led"),
|
||||||
"type": "led",
|
"type": "led",
|
||||||
})
|
})
|
||||||
esp.send(b"\xff\xff\xff\xff\xff\xff", hello)
|
try:
|
||||||
print(hello)
|
esp.send(BROADCAST_MAC, hello)
|
||||||
|
print("espnow hello", len(hello), "B")
|
||||||
|
except Exception as e:
|
||||||
|
print("espnow hello failed:", e)
|
||||||
|
|
||||||
|
|
||||||
|
def _on_espnow_message(msg):
|
||||||
|
if not msg:
|
||||||
|
return
|
||||||
|
if msg[0] == WIRE_MAGIC:
|
||||||
|
_handle_packet(msg, settings, presets)
|
||||||
|
return
|
||||||
|
if msg[0:1] == b"{":
|
||||||
|
process_data(msg, settings, presets)
|
||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
@@ -52,8 +58,14 @@ async def main():
|
|||||||
wdt.feed()
|
wdt.feed()
|
||||||
if esp.any():
|
if esp.any():
|
||||||
host, msg = esp.recv(0)
|
host, msg = esp.recv(0)
|
||||||
print(host, msg)
|
if host and msg:
|
||||||
|
print(host, len(msg), "B")
|
||||||
|
try:
|
||||||
|
_on_espnow_message(msg)
|
||||||
|
except Exception as e:
|
||||||
|
print("espnow rx error:", e)
|
||||||
await asyncio.sleep(0)
|
await asyncio.sleep(0)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
|||||||
Reference in New Issue
Block a user