Skip to content

Commit 97a5fcb

Browse files
committed
Allow for use of "networks" keyword for tring multiple network connections
1 parent ad4d704 commit 97a5fcb

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

adafruit_portalbase/network.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,24 @@ def __init__(
9898
]
9999

100100
if secrets_data is not None:
101-
self._secrets_entries = secrets_data
101+
self._secrets = secrets_data
102102
else:
103-
self._secrets_entries = secrets
104-
105-
if not isinstance(self._secrets_entries, (list, tuple)):
106-
self._secrets_entries = [self._secrets_entries]
107-
self._secrets = self._secrets_entries[0]
103+
self._secrets = secrets
104+
105+
if "networks" in self._secrets:
106+
if isinstance(self._secrets["networks"], (list, tuple)):
107+
self._secrets_network = self._secrets["networks"]
108+
else:
109+
raise TypeError(
110+
"'networks' must be a list/tuple of dicts of 'ssid' and 'password'"
111+
)
112+
else:
113+
self._secrets_network = [
114+
{
115+
"ssid": self._secrets["ssid"],
116+
"passwprd": self._secrets["password"],
117+
}
118+
]
108119

109120
self.requests = None
110121

@@ -329,9 +340,7 @@ def connect(self, max_attempts=10):
329340
failing or use None to disable. Defaults to 10.
330341
331342
"""
332-
for secret_entry in self._secrets_entries:
333-
334-
self._secrets = secret_entry
343+
for secret_entry in self._secrets_network:
335344

336345
self._wifi.neo_status(STATUS_CONNECTING)
337346
attempt = 1
@@ -340,8 +349,8 @@ def connect(self, max_attempts=10):
340349
# secrets dictionary must contain 'ssid' and 'password' at a minimum
341350
print("Connecting to AP", self._secrets["ssid"])
342351
if (
343-
self._secrets["ssid"] == "CHANGE ME"
344-
or self._secrets["password"] == "CHANGE ME"
352+
secret_entry["ssid"] == "CHANGE ME"
353+
or secret_entry["password"] == "CHANGE ME"
345354
):
346355
change_me = "\n" + "*" * 45
347356
change_me += "\nPlease update the 'secrets.py' file on your\n"
@@ -352,7 +361,7 @@ def connect(self, max_attempts=10):
352361
raise OSError(change_me)
353362
self._wifi.neo_status(STATUS_NO_CONNECTION) # red = not connected
354363
try:
355-
self._wifi.connect(self._secrets["ssid"], self._secrets["password"])
364+
self._wifi.connect(secret_entry["ssid"], secret_entry["password"])
356365
self.requests = self._wifi.requests
357366
break
358367
except ConnectionError as error:

0 commit comments

Comments
 (0)