This commit is contained in:
2025-09-11 17:11:55 +02:00
parent 0f6d7a5344
commit 7e30369982
@@ -274,17 +274,24 @@ class TimepixFlyBackend:
if not chunk:
break # Receiving an empty chunk means the connection was closed
buffer += chunk.decode("utf-8") # Trailing byte, i.e. -> "}\n"
if "}\n" in buffer:
buffer_chunks = buffer.split("}\n")
processed_chunks = 0
for entry in buffer_chunks:
if entry and entry.endswith("}\n"):
self._decode_received_data(entry + "}")
processed_chunks += 1
if processed_chunks == len(buffer_chunks):
buffer = ""
else:
buffer = buffer_chunks[-1]
# Check if trailing byte present in the buffer
buffer_chunks = buffer.split("}\n")
for entry in buffer_chunks[:-1]:
self._decode_received_data(entry + "}")
buffer = buffer_chunks[-1] # Keep the last incomplete chunk in the buffer
# if "}\n" in buffer:
# buffer_chunks = buffer.split("}\n")
# processed_chunks = 0
# for entry in buffer_chunks:
# if entry and entry.endswith("}\n"):
# self._decode_received_data(entry + "}")
# processed_chunks += 1
# if processed_chunks == len(buffer_chunks):
# buffer = ""
# else:
# buffer = buffer_chunks[-1]
def _decode_received_data(self, buffer: str) -> None:
"""
@@ -311,7 +318,7 @@ class TimepixFlyBackend:
finally:
# Clear the msg_buffer after processing
self.reset_message_buffer()
except json.JSONDecodeError:
except json.JSONDecodeError: # TODO should this be the handling??
logger.warning(f"Failed to decode JSON from buffer: {buffer}")
def run_msg_callbacks(self):