6 from threading
import Thread
20 packet = self.request[0]
23 size_packet = int.from_bytes(packet[:4],
"big")
25 if size_packet == len(packet[4:]):
27 timestamp = time.time()
31 if data_type == RANGE_TYPE:
32 if self.server.enable_range:
34 self.server.range_buffer.put_nowait((timestamp, data))
36 self.server.range_buffer.get()
37 self.server.range_buffer.put_nowait((timestamp, data))
42 elif data_type == IMAGE_TYPE:
43 if self.server.enable_image:
45 self.server.image_buffer.put_nowait((timestamp, data))
47 self.server.image_buffer.get()
48 self.server.image_buffer.put_nowait((timestamp, data))
52 elif data_type == AUDIO_TYPE:
53 if self.server.enable_audio:
55 self.server.audio_buffer.put_nowait((timestamp, data))
57 self.server.audio_buffer.get_nowait()
58 self.server.audio_buffer.put_nowait((timestamp, data))
63 elif data_type == IMU_TYPE:
64 if self.server.enable_imu:
66 self.server.imu_buffer.put_nowait((timestamp, data))
68 self.server.imu_buffer.get_nowait()
69 self.server.imu_buffer.put_nowait((timestamp, data))
75 "Warning: received packet of length {}, but expected length was {}!".format(
76 len(packet[4:]), size_packet
93 super().
__init__((server_ip, server_port), UDPHandlerMicroPy)
149 self.request.settimeout(5.0)
150 self.server.nicla_disconnect =
False
154 packet = self.request.recv(65000)
157 timestamp = time.time()
158 timestamp = struct.pack(
">d", timestamp)
159 packet = timestamp + packet
160 self.server.receiving_buffer.put_nowait(packet)
161 except socket.timeout:
162 print(
"Warning: Nicla disconnected! Resetting server... ")
163 self.server.receiving_buffer.queue.clear()
164 self.server.nicla_disconnect =
True
166 except Exception
as e:
167 print(f
"Exception: {e}")
168 self.server.receiving_buffer.queue.clear()
169 self.server.nicla_disconnect =
True
185 super().
__init__((server_ip, server_port), TCPHandlerMicroPy)
221 bkp_bytes_packets = bytes([])
228 timestamp = struct.unpack(
">d", bytes_packets[:8])[0]
229 bytes_packets = bytes_packets[8:]
232 bytes_packets = bytes([])
233 bkp_bytes_packets = bytes([])
237 bytes_packets = bkp_bytes_packets + bytes_packets
238 bkp_bytes_packets = bytes([])
240 if len(bytes_packets) < 9:
241 print(
"Got a packet from receiver less than header size!")
244 total_length = len(bytes_packets)
245 loop_termination_flag =
True
247 while loop_termination_flag:
248 size_packet = int.from_bytes(bytes_packets[:4],
"big")
250 if total_length - 4 >= size_packet:
251 packet = bytes_packets[4 : size_packet + 4]
252 bytes_packets = bytes_packets[size_packet + 4 :]
256 data_type = packet[4]
259 if data_type == RANGE_TYPE:
273 elif data_type == IMAGE_TYPE:
288 elif data_type == AUDIO_TYPE:
303 elif data_type == IMU_TYPE:
318 bkp_bytes_packets = bytes_packets
319 loop_termination_flag =
False
321 total_length = len(bytes_packets)
322 if total_length == 0:
323 loop_termination_flag =
False