import serial import struct from usb_pb2 import UsbPackageType from serial.tools import list_ports def make_header(typeid: UsbPackageType, length: int) -> bytearray: struct_format = '> 8) & 0xFF) + (typeidint & 0xFF) + ((typeidint >> 8) & 0xFF) packed_data = struct.pack(struct_format, length, typeid, check) return packed_data def send_package(typeid : UsbPackageType, data: bytearray, serial: serial.Serial): head = make_header(typeid, len(data)) package = head + data serial.write(package) def setup_connection() -> serial.Serial: stm_port = None for port in list_ports.comports(): print(port) if "STM32 Virtual ComPort" in port.description: stm_port = port.device break if stm_port is None: print("STM32 Virtual ComPort not found") exit(-1) else: # Open the serial port ser = serial.Serial(stm_port,baudrate=5000000) return ser