This commit is contained in:
2026-03-02 00:25:40 +01:00
parent e7d6d288a8
commit b665cb5def
32 changed files with 3287 additions and 953 deletions

View File

@@ -3,24 +3,23 @@ from core.connection import BuzzerError
def execute(conn) -> dict:
"""Holt die Systeminformationen und gibt sie als strukturiertes Dictionary zurück."""
lines = conn.send_command("info")
if not lines:
raise BuzzerError("Keine Antwort auf 'info' empfangen.")
protocol_version = conn.get_protocol_version()
if protocol_version != 1:
raise BuzzerError(f"Inkompatibles Protokoll: Gerät nutzt v{protocol_version}, Host erwartet v1.")
parts = lines[0].split(';')
# Auf 6 Parameter aktualisiert
if len(parts) != 6:
raise BuzzerError(f"Unerwartetes Info-Format: {lines[0]}")
status_code, app_version = conn.get_firmware_status()
flash = conn.get_flash_status()
protocol_version = int(parts[0])
if protocol_version != 2:
raise BuzzerError(f"Inkompatibles Protokoll: Gerät nutzt v{protocol_version}, Host erwartet v2.")
f_frsize = flash["block_size"]
f_blocks = flash["total_blocks"]
f_bfree = flash["free_blocks"]
app_version = parts[1]
f_frsize = int(parts[2])
f_blocks = int(parts[3])
f_bfree = int(parts[4])
image_status = parts[5].strip() # CONFIRMED oder UNCONFIRMED
status_map = {
1: "CONFIRMED",
2: "TESTING",
3: "PENDING",
}
image_status = status_map.get(status_code, f"UNKNOWN({status_code})")
total_kb = (f_blocks * f_frsize) / 1024
free_kb = (f_bfree * f_frsize) / 1024