Skip to content

Commit e021014

Browse files
committed
make work with original demos
1 parent fa1ec91 commit e021014

File tree

3 files changed

+45
-29
lines changed

3 files changed

+45
-29
lines changed

adafruit_esp32spi/adafruit_esp32spi.py

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ def __init__(self, spi, cs_pin, ready_pin, reset_pin, gpio0_pin, *, debug=False)
8383
self._reset.direction = Direction.OUTPUT
8484
self._gpio0.direction = Direction.OUTPUT
8585

86+
if self._debug:
87+
print("Reset ESP32")
8688
self._gpio0.value = True # not bootload mode
8789
self._cs.value = True
8890
self._reset.value = False
@@ -134,16 +136,14 @@ def send_command(self, cmd, params=None, *, param_len_16=False):
134136

135137
# handle parameters here
136138
for i, param in enumerate(params):
137-
if self._debug:
138-
print("sending param #%d is %d bytes long" % (i, len(param)))
139+
if self._debug >= 2:
140+
print("\tSending param #%d is %d bytes long" % (i, len(param)))
139141
if param_len_16:
140142
packet.append((len(param) >> 8) & 0xFF)
141143
packet.append(len(param) & 0xFF)
142144
packet += (param)
143145

144146
packet.append(END_CMD)
145-
if self._debug:
146-
print("packet len:", len(packet))
147147
while len(packet) % 4 != 0:
148148
packet.append(0xFF)
149149

@@ -153,16 +153,16 @@ def send_command(self, cmd, params=None, *, param_len_16=False):
153153
print("Wrote: ", [hex(b) for b in packet])
154154
self.slave_deselect()
155155

156-
def get_param(self):
156+
def read_byte(self):
157157
self._spi.readinto(self._pbuf)
158-
if self._debug:
159-
print("Read param", hex(self._pbuf[0]))
158+
if self._debug >= 2:
159+
print("\t\tRead:", hex(self._pbuf[0]))
160160
return self._pbuf[0]
161161

162162
def wait_spi_char(self, desired):
163163
times = time.monotonic()
164164
while (time.monotonic() - times) < 0.1:
165-
r = self.get_param()
165+
r = self.read_byte()
166166
if r == ERR_CMD:
167167
raise RuntimeError("Error response to command")
168168
if r == desired:
@@ -171,7 +171,7 @@ def wait_spi_char(self, desired):
171171
raise RuntimeError("Timed out waiting for SPI char")
172172

173173
def check_data(self, desired):
174-
r = self.get_param()
174+
r = self.read_byte()
175175
if r != desired:
176176
raise RuntimeError("Expected %02X but got %02X" % (desired, r))
177177

@@ -184,22 +184,24 @@ def wait_response_cmd(self, cmd, num_responses=None, *, param_len_16=False):
184184
if num_responses is not None:
185185
self.check_data(num_responses)
186186
else:
187-
num_responses = self.get_param()
187+
num_responses = self.read_byte()
188188
responses = []
189189
for num in range(num_responses):
190190
response = []
191-
param_len = self.get_param()
191+
param_len = self.read_byte()
192192
if param_len_16:
193193
param_len <<= 8
194-
param_len |= self.get_param()
195-
if self._debug:
196-
print("parameter #%d length is %d" % (num, param_len))
194+
param_len |= self.read_byte()
195+
if self._debug >= 2:
196+
print("\tParameter #%d length is %d" % (num, param_len))
197197
for j in range(param_len):
198-
response.append(self.get_param())
198+
response.append(self.read_byte())
199199
responses.append(bytes(response))
200200
self.check_data(END_CMD)
201201

202202
self.slave_deselect()
203+
if self._debug:
204+
print("Read: ", responses)
203205
return responses
204206

205207
def send_command_get_response(self, cmd, params=None, *,
@@ -291,10 +293,22 @@ def network_data(self):
291293
def ip_address(self):
292294
return self.network_data['ip_addr']
293295

296+
297+
@property
298+
def is_connected(self):
299+
return self.status == WL_CONNECTED
300+
301+
def connect(self, settings):
302+
self.connect_AP(settings['ssid'], settings['password'])
303+
294304
def connect_AP(self, ssid, password):
295305
if self._debug:
296-
print("Connect to AP")
306+
print("Connect to AP", ssid, password)
307+
if isinstance(ssid, str):
308+
ssid = bytes(ssid, 'utf-8')
297309
if password:
310+
if isinstance(password, str):
311+
password = bytes(password, 'utf-8')
298312
self.wifi_set_passphrase(ssid, password)
299313
else:
300314
self.wifi_set_network(ssid)
@@ -379,9 +393,8 @@ def socket_write(self, socket_num, buffer):
379393
raise RuntimeError("Failed to send %d bytes (sent %d)" % (len(buffer), sent))
380394

381395
resp = self.send_command_get_response(DATA_SENT_TCP_CMD, [[socket_num]])
382-
if self._debug:
383-
print("** DATA SENT: ",resp)
384-
return sent
396+
if resp[0][0] != 1:
397+
raise RuntimeError("Failed to verify data sent")
385398

386399
def socket_available(self, socket_num):
387400
resp = self.send_command_get_response(AVAIL_DATA_TCP_CMD, [[socket_num]])

adafruit_esp32spi/adafruit_esp32spi_requests.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,30 +28,33 @@ class Response:
2828
headers = {}
2929
encoding = None
3030

31-
def __init__(self, f):
32-
self.raw = f
31+
def __init__(self, socket):
32+
self.socket = socket
3333
self.encoding = "utf-8"
3434
self._cached = None
3535
self.status_code = None
3636
self.reason = None
3737

3838
def close(self):
3939
"""Close, delete and collect the response data"""
40-
if self.raw:
41-
self.raw.close()
42-
del self.raw
40+
if self.socket:
41+
self.socket.close()
42+
del self.socket
4343
del self._cached
4444
gc.collect()
4545

4646
@property
4747
def content(self):
4848
"""The HTTP content direct from the socket, as bytes"""
49+
content_length = int(self.headers['content-length'])
50+
#print("Content length:", content_length)
4951
if self._cached is None:
5052
try:
51-
self._cached = self.raw.read()
53+
self._cached = self.socket.read(content_length)
5254
finally:
53-
self.raw.close()
54-
self.raw = None
55+
self.socket.close()
56+
self.socket = None
57+
#print("Buffer length:", len(self._cached))
5558
return self._cached
5659

5760
@property
@@ -138,7 +141,7 @@ def request(method, url, data=None, json=None, headers=None, stream=None):
138141
if not line or line == b"\r\n":
139142
break
140143

141-
#print(line)
144+
#print("**line: ", line)
142145
title, content = line.split(b': ', 1)
143146
if title and content:
144147
title = str(title.lower(), 'utf-8')

adafruit_esp32spi/adafruit_esp32spi_socket.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def read(self, size=0):
6161
avail = _the_interface.socket_available(self._socknum)
6262
if avail:
6363
self._buffer += _the_interface.socket_read(self._socknum, avail)
64-
if size == 0: # read as much as we can
64+
if size == 0: # read as much as we can at the moment
6565
ret = self._buffer
6666
self._buffer = b''
6767
return ret

0 commit comments

Comments
 (0)