Skip to content

Commit 98182a6

Browse files
committed
Fix ESP32SPI
1 parent 397db15 commit 98182a6

19 files changed

+118
-74
lines changed

README.rst

+2-4
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Please ensure all dependencies are available on the CircuitPython filesystem.
5858
This is easily achieved by downloading
5959
`the Adafruit library and driver bundle <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_.
6060

61-
**Board Compatibility:** The following built-in modules must be available: gc, json, ssl, time
61+
**Board Compatibility:** The following built-in modules must be available: gc, json, time
6262

6363
Usage Example
6464
=============
@@ -74,8 +74,6 @@ To create an Azure IoT Hub instance or an Azure IoT Central app, you will need a
7474
ESP32 AirLift Networking
7575
========================
7676

77-
*NOTE* currently the ESP32 AirLift is not supported due to the requirment of `ssl`, which is only on boards with native WiFi.
78-
7977
To use this library, you will need to create an ESP32_SPI WifiManager, connected to WiFi. You will also need to set the current time, as this is used to generate time-based authentication keys. One way to do this is with the following code:
8078

8179
.. code-block:: python
@@ -96,7 +94,7 @@ To use this library, with boards that have native networking support, you need t
9694

9795
.. code-block:: python
9896
99-
pool = socketpool.SocketPool(wifi.radio)
97+
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
10098
ntp = adafruit_ntp.NTP(pool, tz_offset=0)
10199
102100
# NOTE: This changes the system time so make sure you aren't assuming that time

adafruit_azureiot/device_registration.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
"""
1515

1616
import json
17-
import ssl
1817
import time
1918

2019
import adafruit_logging as logging
@@ -45,8 +44,8 @@ class DeviceRegistration:
4544
# pylint: disable=R0913
4645
def __init__(
4746
self,
48-
socket,
49-
iface,
47+
socket_pool,
48+
ssl_context,
5049
id_scope: str,
5150
device_id: str,
5251
device_sas_key: str,
@@ -74,8 +73,8 @@ def __init__(
7473
self._operation_id = None
7574
self._hostname = None
7675

77-
self._socket = socket
78-
self._iface = iface
76+
self._socket_pool = socket_pool
77+
self._ssl_context = ssl_context
7978

8079
# pylint: disable=W0613
8180
# pylint: disable=C0103
@@ -202,8 +201,8 @@ def register_device(self, expiry: int) -> str:
202201
client_id=self._device_id,
203202
is_ssl=True,
204203
keep_alive=120,
205-
socket_pool=self._socket,
206-
ssl_context=ssl.create_default_context(),
204+
socket_pool=self._socket_pool,
205+
ssl_context=self._ssl_context,
207206
)
208207

209208
self._mqtt.enable_logger(logging, self._logger.getEffectiveLevel())

adafruit_azureiot/iot_mqtt.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import gc
1616
import json
17-
import ssl
1817
import time
1918

2019
import adafruit_minimqtt.adafruit_minimqtt as MQTT
@@ -139,8 +138,8 @@ def _create_mqtt_client(self) -> None:
139138
client_id=self._device_id,
140139
is_ssl=True,
141140
keep_alive=120,
142-
socket_pool=self._socket,
143-
ssl_context=ssl.create_default_context(),
141+
socket_pool=self._socket_pool,
142+
ssl_context=self._ssl_context,
144143
)
145144

146145
self._mqtts.enable_logger(logging, self._logger.getEffectiveLevel())
@@ -326,8 +325,8 @@ def _get_device_settings(self) -> None:
326325
def __init__(
327326
self,
328327
callback: IoTMQTTCallback,
329-
socket,
330-
iface,
328+
socket_pool,
329+
ssl_context,
331330
hostname: str,
332331
device_id: str,
333332
device_sas_key: str,
@@ -347,8 +346,8 @@ def __init__(
347346
:param Logger logger: The logger
348347
"""
349348
self._callback = callback
350-
self._socket = socket
351-
self._iface = iface
349+
self._socket_pool = socket_pool
350+
self._ssl_context = ssl_context
352351
self._auth_response_received = False
353352
self._mqtts = None
354353
self._device_id = device_id

examples/azureiot_esp32spi/azureiot_central_commands.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import neopixel
99
import rtc
1010
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
11-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
11+
import adafruit_connection_manager
1212

1313
# Get wifi details and more from a secrets.py file
1414
try:
@@ -103,9 +103,15 @@
103103

104104
# pylint: enable=wrong-import-position
105105

106+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
107+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
106108
# Create an IoT Hub device client and connect
107109
device = IoTCentralDevice(
108-
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
110+
pool,
111+
ssl_context,
112+
secrets["id_scope"],
113+
secrets["device_id"],
114+
secrets["device_sas_key"],
109115
)
110116

111117

examples/azureiot_esp32spi/azureiot_central_notconnected.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import neopixel
1111
import rtc
1212
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
13-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
13+
import adafruit_connection_manager
1414

1515
# Get wifi details and more from a secrets.py file
1616
try:
@@ -99,9 +99,15 @@
9999

100100
# pylint: enable=wrong-import-position
101101

102+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
103+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
102104
# Create an IoT Hub device client and connect
103105
device = IoTCentralDevice(
104-
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
106+
pool,
107+
ssl_context,
108+
secrets["id_scope"],
109+
secrets["device_id"],
110+
secrets["device_sas_key"],
105111
)
106112

107113
# don't connect

examples/azureiot_esp32spi/azureiot_central_properties.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import neopixel
1010
import rtc
1111
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
12-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
12+
import adafruit_connection_manager
1313

1414
# Get wifi details and more from a secrets.py file
1515
try:
@@ -100,9 +100,15 @@
100100
# * adafruit-circuitpython-requests
101101
from adafruit_azureiot import IoTCentralDevice # pylint: disable=wrong-import-position
102102

103+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
104+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
103105
# Create an IoT Hub device client and connect
104106
device = IoTCentralDevice(
105-
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
107+
pool,
108+
ssl_context,
109+
secrets["id_scope"],
110+
secrets["device_id"],
111+
secrets["device_sas_key"],
106112
)
107113

108114

examples/azureiot_esp32spi/azureiot_central_simpletest.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import neopixel
1111
import rtc
1212
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
13-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
13+
import adafruit_connection_manager
1414

1515
# Get wifi details and more from a secrets.py file
1616
try:
@@ -101,9 +101,15 @@
101101
# * adafruit-circuitpython-requests
102102
from adafruit_azureiot import IoTCentralDevice # pylint: disable=wrong-import-position
103103

104+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
105+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
104106
# Create an IoT Hub device client and connect
105107
device = IoTCentralDevice(
106-
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
108+
pool,
109+
ssl_context,
110+
secrets["id_scope"],
111+
secrets["device_id"],
112+
secrets["device_sas_key"],
107113
)
108114

109115
print("Connecting to Azure IoT Central...")

examples/azureiot_esp32spi/azureiot_hub_directmethods.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import neopixel
99
import rtc
1010
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
11-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
11+
import adafruit_connection_manager
1212

1313
# Get wifi details and more from a secrets.py file
1414
try:
@@ -97,8 +97,10 @@
9797

9898
# pylint: enable=wrong-import-position
9999

100+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
101+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
100102
# Create an IoT Hub device client and connect
101-
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
103+
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])
102104

103105

104106
# Subscribe to direct method calls

examples/azureiot_esp32spi/azureiot_hub_messages.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import neopixel
1111
import rtc
1212
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
13-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
13+
import adafruit_connection_manager
1414

1515
# Get wifi details and more from a secrets.py file
1616
try:
@@ -95,8 +95,10 @@
9595
# * adafruit-circuitpython-requests
9696
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position
9797

98+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
99+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
98100
# Create an IoT Hub device client and connect
99-
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
101+
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])
100102

101103

102104
# Subscribe to cloud to device messages

examples/azureiot_esp32spi/azureiot_hub_simpletest.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import neopixel
1111
import rtc
1212
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
13-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
13+
import adafruit_connection_manager
1414

1515
# Get wifi details and more from a secrets.py file
1616
try:
@@ -95,8 +95,10 @@
9595
# * adafruit-circuitpython-requests
9696
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position
9797

98+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
99+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
98100
# Create an IoT Hub device client and connect
99-
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
101+
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])
100102

101103
print("Connecting to Azure IoT Hub...")
102104

examples/azureiot_esp32spi/azureiot_hub_twin_operations.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import neopixel
1010
import rtc
1111
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
12-
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
12+
import adafruit_connection_manager
1313

1414
# Get wifi details and more from a secrets.py file
1515
try:
@@ -97,8 +97,10 @@
9797
# * adafruit-circuitpython-requests
9898
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position
9999

100+
pool = adafruit_connection_manager.get_radio_socketpool(esp)
101+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
100102
# Create an IoT Hub device client and connect
101-
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
103+
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])
102104

103105

104106
# Subscribe to device twin desired property updates

examples/azureiot_native_networking/azureiot_central_commands.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import time
55

66
import rtc
7-
import socketpool
87
import wifi
98

9+
import adafruit_connection_manager
1010
import adafruit_ntp
1111
from adafruit_azureiot import IoTCentralDevice
1212
from adafruit_azureiot.iot_mqtt import IoTResponse
@@ -21,11 +21,13 @@
2121
print("Connecting to WiFi...")
2222
wifi.radio.connect(secrets["ssid"], secrets["password"])
2323

24+
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
25+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)
26+
2427
print("Connected to WiFi!")
2528

2629
if time.localtime().tm_year < 2022:
2730
print("Setting System Time in UTC")
28-
pool = socketpool.SocketPool(wifi.radio)
2931
ntp = adafruit_ntp.NTP(pool, tz_offset=0)
3032

3133
# NOTE: This changes the system time so make sure you aren't assuming that time
@@ -69,10 +71,12 @@
6971

7072

7173
# Create an IoT Hub device client and connect
72-
esp = None
73-
pool = socketpool.SocketPool(wifi.radio)
7474
device = IoTCentralDevice(
75-
pool, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
75+
pool,
76+
ssl_context,
77+
secrets["id_scope"],
78+
secrets["device_id"],
79+
secrets["device_sas_key"],
7680
)
7781

7882

examples/azureiot_native_networking/azureiot_central_notconnected.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
import time
77

88
import rtc
9-
import socketpool
109
import wifi
1110

11+
import adafruit_connection_manager
1212
import adafruit_ntp
1313
from adafruit_azureiot import (
1414
IoTCentralDevice,
@@ -25,11 +25,13 @@
2525
print("Connecting to WiFi...")
2626
wifi.radio.connect(secrets["ssid"], secrets["password"])
2727

28+
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
29+
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)
30+
2831
print("Connected to WiFi!")
2932

3033
if time.localtime().tm_year < 2022:
3134
print("Setting System Time in UTC")
32-
pool = socketpool.SocketPool(wifi.radio)
3335
ntp = adafruit_ntp.NTP(pool, tz_offset=0)
3436

3537
# NOTE: This changes the system time so make sure you aren't assuming that time
@@ -73,10 +75,12 @@
7375

7476

7577
# Create an IoT Hub device client and connect
76-
esp = None
77-
pool = socketpool.SocketPool(wifi.radio)
7878
device = IoTCentralDevice(
79-
pool, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
79+
pool,
80+
ssl_context,
81+
secrets["id_scope"],
82+
secrets["device_id"],
83+
secrets["device_sas_key"],
8084
)
8185

8286
# don't connect

0 commit comments

Comments
 (0)