Skip to content

Commit 3fd238e

Browse files
committed
Created generic receive method
1 parent 9467b49 commit 3fd238e

File tree

2 files changed

+49
-42
lines changed

2 files changed

+49
-42
lines changed

servercom/implementations/circuitpy.py

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,30 @@ def radio(self):
219219
"""Returns a wifi.radio object that can be used for further control"""
220220
return wifi.radio
221221

222+
def rx_bytes(self) -> bytes:
223+
response = b""
224+
while True:
225+
buf = bytearray(256)
226+
try:
227+
recvd = self.wrapped_socket.recv_into(buf, 256)
228+
except OSError as e:
229+
if e.errno == EAGAIN:
230+
recvd = 0
231+
else:
232+
raise
233+
response += buf
234+
del buf
235+
collect()
236+
if self.v:
237+
print(f"Received {recvd} bytes")
238+
if recvd == 0:
239+
del recvd
240+
collect()
241+
break
242+
del recvd
243+
collect()
244+
return response
245+
222246
def _do_request(
223247
self,
224248
method: str,
@@ -281,27 +305,7 @@ def _do_request(
281305
if self.v:
282306
print("Receiving response...")
283307
self.wrapped_socket.setblocking(False)
284-
response = b""
285-
while True:
286-
buf = bytearray(256)
287-
try:
288-
recvd = self.wrapped_socket.recv_into(buf, 256)
289-
except OSError as e:
290-
if e.errno == EAGAIN:
291-
recvd = 0
292-
else:
293-
raise
294-
response += buf
295-
del buf
296-
collect()
297-
if self.v:
298-
print(f"Received {recvd} bytes")
299-
if recvd == 0:
300-
del recvd
301-
collect()
302-
break
303-
del recvd
304-
collect()
308+
response = self.rx_bytes()
305309
except Exception as e:
306310
if self.v:
307311
print("An error occurred. Cleaning up...")

servercom/implementations/cpy.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,29 @@ def radio(self):
178178
"""Exists for compatibility with the CircuitPython implementation"""
179179
return None
180180

181+
def rx_bytes(self) -> bytes:
182+
response = b""
183+
while True:
184+
buf = bytearray(256)
185+
try:
186+
recvd = self.wrapped_socket.recv_into(buf, 256)
187+
except OSError as e:
188+
if e.errno == EAGAIN:
189+
recvd = 0
190+
else:
191+
raise
192+
response += buf
193+
del buf
194+
collect()
195+
if self.v:
196+
print(f"Received {recvd} bytes")
197+
if recvd == 0:
198+
del recvd
199+
collect()
200+
break
201+
del recvd
202+
collect()
203+
181204
def _do_request(
182205
self,
183206
method: str,
@@ -240,27 +263,7 @@ def _do_request(
240263
if self.v:
241264
print("Receiving response...")
242265
self.wrapped_socket.setblocking(True)
243-
response = b""
244-
while True:
245-
buf = bytearray(256)
246-
try:
247-
recvd = self.wrapped_socket.recv_into(buf, 256)
248-
except OSError as e:
249-
if e.errno == EAGAIN:
250-
recvd = 0
251-
else:
252-
raise
253-
response += buf
254-
del buf
255-
collect()
256-
if self.v:
257-
print(f"Received {recvd} bytes")
258-
if recvd == 0:
259-
del recvd
260-
collect()
261-
break
262-
del recvd
263-
collect()
266+
response = rx_bytes()
264267
except Exception as e:
265268
if self.v:
266269
print("An error occurred. Cleaning up...")

0 commit comments

Comments
 (0)