diff --git a/adafruit_esp32spi/adafruit_esp32spi.py b/adafruit_esp32spi/adafruit_esp32spi.py index e1d4c7a..e5f109a 100644 --- a/adafruit_esp32spi/adafruit_esp32spi.py +++ b/adafruit_esp32spi/adafruit_esp32spi.py @@ -66,20 +66,20 @@ _SCAN_NETWORKS = const(0x27) _GET_SOCKET_CMD = const(0x3F) _GET_STATE_TCP_CMD = const(0x29) -_DATA_SENT_TCP_CMD = const(0x2A) -_AVAIL_DATA_TCP_CMD = const(0x2B) -_GET_DATA_TCP_CMD = const(0x2C) +_DATA_SENT_TCP_CMD = const(0x2A) +_AVAIL_DATA_TCP_CMD = const(0x2B) +_GET_DATA_TCP_CMD = const(0x2C) _START_CLIENT_TCP_CMD = const(0x2D) _STOP_CLIENT_TCP_CMD = const(0x2E) _GET_CLIENT_STATE_TCP_CMD = const(0x2F) -_DISCONNECT_CMD = const(0x30) +_DISCONNECT_CMD = const(0x30) _GET_IDX_RSSI_CMD = const(0x32) _GET_IDX_ENCT_CMD = const(0x33) _REQ_HOST_BY_NAME_CMD = const(0x34) _GET_HOST_BY_NAME_CMD = const(0x35) _START_SCAN_NETWORKS = const(0x36) _GET_FW_VERSION_CMD = const(0x37) -_PING_CMD = const(0x3E) +_PING_CMD = const(0x3E) _SEND_DATA_TCP_CMD = const(0x44) _GET_DATABUF_TCP_CMD = const(0x45) @@ -612,6 +612,8 @@ def socket_connect(self, socket_num, dest, port, conn_mode=TCP_MODE): def socket_close(self, socket_num): """Close a socket using the ESP32's internal reference number""" + if self._debug: + print("*** Closing socket #%d" % socket_num) self._socknum_ll[0][0] = socket_num resp = self._send_command_get_response(_STOP_CLIENT_TCP_CMD, self._socknum_ll) if resp[0][0] != 1: diff --git a/adafruit_esp32spi/adafruit_esp32spi_requests.py b/adafruit_esp32spi/adafruit_esp32spi_requests.py index 54a2103..ec17481 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_requests.py +++ b/adafruit_esp32spi/adafruit_esp32spi_requests.py @@ -69,6 +69,12 @@ def __init__(self, sock): self._read_so_far = 0 self.headers = {} + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + self.close() + def close(self): """Close, delete and collect the response data""" if self.socket: @@ -216,7 +222,7 @@ def request(method, url, data=None, json=None, headers=None, stream=False): elif line.startswith(b"Location:") and not 200 <= status <= 299: raise NotImplementedError("Redirects not yet supported") - except OSError: + except: sock.close() raise diff --git a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py index 02a1555..9906847 100755 --- a/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py +++ b/adafruit_esp32spi/adafruit_esp32spi_wifimanager.py @@ -31,14 +31,14 @@ # pylint: disable=no-name-in-module -import adafruit_esp32spi +from adafruit_esp32spi import adafruit_esp32spi import adafruit_esp32spi.adafruit_esp32spi_requests as requests class ESPSPI_WiFiManager: """ A class to help manage the Wifi connection """ - def __init__(self, esp, secrets, status_pixel, attempts=2): + def __init__(self, esp, secrets, status_pixel=None, attempts=2): """ :param ESP_SPIcontrol esp: The ESP object we are using :param dict secrets: The WiFi and Adafruit IO secrets dict (See examples)