diff --git a/bench-data-connector/src/bench_data_connector/__init__.py b/bench-data-connector/src/bench_data_connector/__init__.py index e25d756..ec11491 100644 --- a/bench-data-connector/src/bench_data_connector/__init__.py +++ b/bench-data-connector/src/bench_data_connector/__init__.py @@ -1,7 +1,20 @@ from serial.tools import list_ports from serial import Serial +from dataclasses import dataclass import struct +DATA_STRUCT = struct.Struct(" None: try: print("Hello from bench-data-connector!") @@ -31,18 +44,32 @@ def main() -> None: with Serial(selected_port,baudrate=115200,timeout=1) as ser: while True: start_sync(ser) - print("paquet trouvé") - payload = ser.read(9) # 9 corresponds to the payload size of the data frame + #print("paquet trouvé") + print(DATA_STRUCT.size) + payload = read_exactly(ser, DATA_STRUCT.size) + if not payload: continue - crc = ser.read(2) + crc = read_exactly(ser, 2) if not crc: continue received_crc = struct.unpack("bytes | None: + data = bytearray() + while len(data) < size: + packet_exact = ser.read(size - len(data)) + if not packet_exact: + return None + data.extend(packet_exact) + return bytes(data) def crc16_ccitt(data: bytes) -> int: crc = 0xFFFF