Implement re-connection on error
This commit is contained in:
parent
4546c6c5d0
commit
1132335ea8
@ -70,13 +70,23 @@ async def ensure_network():
|
||||
nic = network.WLAN(network.STA_IF)
|
||||
print("[net] setting up WLAN interface...")
|
||||
nic.active(True)
|
||||
while not nic.active():
|
||||
await asyncio.sleep(0.1)
|
||||
print("[net] connecting...")
|
||||
nic.connect(SSID, PASSWORD)
|
||||
|
||||
logged = False
|
||||
|
||||
status_name = {
|
||||
network.STAT_CONNECT_FAIL: "CONNECT_FAIL",
|
||||
network.STAT_CONNECTING: "CONNECTING",
|
||||
network.STAT_IDLE: "IDLE",
|
||||
network.STAT_NO_AP_FOUND: "NO_AP_FOUND",
|
||||
network.STAT_WRONG_PASSWORD: "WRONG_PASSWORD"
|
||||
}
|
||||
|
||||
while True:
|
||||
if nic.status() == network.STAT_GOT_IP:
|
||||
if (status := nic.status()) == network.STAT_GOT_IP: # pyright: ignore[reportAny]
|
||||
STATUS_LED.status(2)
|
||||
if not logged:
|
||||
logged = True
|
||||
@ -85,6 +95,11 @@ async def ensure_network():
|
||||
print(f"[net] {rssi=}")
|
||||
else:
|
||||
STATUS_LED.status(1)
|
||||
print("[net] status={}".format(status_name.get(status, f"UNKNOWN ({status})"))) # pyright: ignore[reportAny]
|
||||
if status == network.STAT_CONNECT_FAIL or status == network.STAT_NO_AP_FOUND:
|
||||
print("[net] retrying in 3s...")
|
||||
await asyncio.sleep(3)
|
||||
nic.connect(SSID, PASSWORD)
|
||||
|
||||
await asyncio.sleep(1)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user