jfrusciantello
jfrusciantello

Reputation: 29

I want to asyncronous blink a led during wifi connection micropython board

I have two co-routines. I start led blinking and wifi connection, but after wifi connection is complete i want to stop led blinking function.

Led blinking function:

async def blink: 
  while True:
   led.on()
   await uasyncio.sleep(seconds) 
   led.off()
   await uasyncio.sleep(seconds) 

Upvotes: 2

Views: 998

Answers (1)

avi
avi

Reputation: 531

use an asyncio.Event e.g.

async def main():
    wifi_connected = asyncio.Event()

    async def connect_to_wifi():
        led.on()
        await ...  # do connection stuff
        wifi_connected.set()

    async def wait_for_connection():
        await wifi_connected.wait()
        led.off()

    await asyncio.gather(connect_to_wifi(), wait_for_connection())

asyncio.run(main())

Upvotes: 1

Related Questions