uPyLibs/boot.py

39 lines
1.4 KiB
Python

from network import WLAN as wlan, STA_IF as staif, AP_IF as apif
from time import sleep_ms
from wifi_cfg import wlan_nets
sleep_ms(100)
#make sure AP mode is off and station mode is on
if wlan(apif).active() == True:
wlan(apif).active(False)
if wlan(staif).active() != True:
wlan(staif).active(True)
#we don't want to go through all this crap if stored network details are available
#this is inside an if statement because this file gets executed after deepsleep
# so we may still be connected(?)
if wlan(staif).isconnected() != True:
nets=wlan(staif).scan()
found_net=False
for net in nets:
for cfg_net in wlan_nets.keys():
if net[0] == b'%s' % cfg_net:
wlan(staif).connect(cfg_net, wlan_nets[cfg_net])
found_net=True
break
if found_net == False:
print("couldn't connect to wifi, nets found: %s" % nets)
print("to fix temporarily, run: wlan(staif).connect('yournet','yourpass'), followed shortly after by wlan(staif).ifconfig()")
#exit
else:
#Loop until wifi is connected and passes DHCP, or until 30 seconds have elapsed.
slept=0
while wlan(staif).ifconfig()[0] == '0.0.0.0' or wlan(staif).isconnected() == False:
if slept > 300:
break
sleep_ms(100)
slept+=1
#import webrepl
#webrepl.start()