import struct import zlib from pathlib import Path from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, DownloadColumn, TransferSpeedColumn, TimeRemainingColumn from core.utils import console, console_err from core.protocol import COMMANDS class put_fw: def __init__(self, bus): self.bus = bus def get(self, file_path: str): try: p = Path(file_path) if not p.exists() or not p.is_file(): console_err.print(f"Fehler: Firmware-Datei existiert nicht: {file_path}") return None file_size = p.stat().st_size with open(p, 'rb') as f: file_data = f.read() except Exception as e: console_err.print(f"Lese-Fehler: {e}") return None # 1. Schritt: Löschvorgang mit minimalem Feedback with Progress( SpinnerColumn(), TextColumn("[progress.description]{task.description}"), BarColumn(), console=console, transient=True ) as progress: erase_task = progress.add_task("Lösche Firmware Slot...", total=None) payload = struct.pack('