From 4227417c5eea5343690770515d9086bd41c085a5 Mon Sep 17 00:00:00 2001 From: Eduard Iten Date: Fri, 27 Feb 2026 11:59:07 +0100 Subject: [PATCH] sync --- buzzer_tool/core/commands/mkdir.py | 10 +++++ buzzer_tool/core/commands/rm.py | 44 +++++++++++++++++++ .../boards/nrf52840dk_nrf52840.prod.overlay | 14 ++++++ firmware/sysbuild.conf | 1 + firmware/sysbuild/mcuboot.conf | 2 + 5 files changed, 71 insertions(+) create mode 100644 buzzer_tool/core/commands/mkdir.py create mode 100644 buzzer_tool/core/commands/rm.py create mode 100644 firmware/boards/nrf52840dk_nrf52840.prod.overlay create mode 100644 firmware/sysbuild.conf create mode 100644 firmware/sysbuild/mcuboot.conf diff --git a/buzzer_tool/core/commands/mkdir.py b/buzzer_tool/core/commands/mkdir.py new file mode 100644 index 0000000..8608a6b --- /dev/null +++ b/buzzer_tool/core/commands/mkdir.py @@ -0,0 +1,10 @@ +# core/commands/mkdir.py +from core.connection import BuzzerError + +def execute(conn, path: str): + """Erstellt ein Verzeichnis auf dem Controller.""" + try: + conn.send_command(f"mkdir {path}") + print(f"📁 Verzeichnis '{path}' erfolgreich erstellt.") + except BuzzerError as e: + print(f"❌ Fehler beim Erstellen von '{path}': {e}") \ No newline at end of file diff --git a/buzzer_tool/core/commands/rm.py b/buzzer_tool/core/commands/rm.py new file mode 100644 index 0000000..cc999f4 --- /dev/null +++ b/buzzer_tool/core/commands/rm.py @@ -0,0 +1,44 @@ +# core/commands/rm.py +from core.connection import BuzzerError +from core.commands.ls import get_file_tree + +def _delete_recursive(conn, nodes): + """Löscht Knoten Bottom-Up (erst Dateien/Unterordner, dann den Ordner selbst)""" + for node in nodes: + if node["type"] == 'D': + if "children" in node and node["children"]: + _delete_recursive(conn, node["children"]) + _try_rm(conn, node["path"], is_dir=True) + elif node["type"] == 'F': + _try_rm(conn, node["path"], is_dir=False) + +def _try_rm(conn, path, is_dir=False): + icon = "📁" if is_dir else "📄" + try: + conn.send_command(f"rm {path}") + print(f" 🗑️ {icon} Gelöscht: {path}") + except BuzzerError as e: + print(f" ❌ Fehler bei {path}: {e}") + +def execute(conn, path: str, recursive: bool = False): + """Löscht eine Datei oder ein Verzeichnis.""" + if recursive: + print(f"Sammle Dateibaum für rekursives Löschen von '{path}'...") + # Lade den kompletten Baum ab diesem Pfad + tree = get_file_tree(conn, target_path=path, recursive=True) + + if len(tree) == 1 and tree[0].get("type") == "E": + print(f"❌ Pfad nicht gefunden oder Fehler: {tree[0]['name']}") + return + + if not tree: + print(f"Ordner '{path}' ist bereits leer.") + else: + _delete_recursive(conn, tree) + + # Am Ende das eigentliche Ziel löschen (die Datei oder den nun leeren Ordner) + try: + conn.send_command(f"rm {path}") + print(f"🗑️ '{path}' erfolgreich gelöscht.") + except BuzzerError as e: + print(f"❌ Fehler beim Löschen von '{path}': {e}") \ No newline at end of file diff --git a/firmware/boards/nrf52840dk_nrf52840.prod.overlay b/firmware/boards/nrf52840dk_nrf52840.prod.overlay new file mode 100644 index 0000000..ff17896 --- /dev/null +++ b/firmware/boards/nrf52840dk_nrf52840.prod.overlay @@ -0,0 +1,14 @@ +/* 1. Hardware-Controller abschalten - das reicht meistens aus */ +&uart0 { status = "disabled"; }; + +/* 2. Spezialfall Bluetooth & IEEE 802.15.4 */ +/* Wir löschen die chosen-Einträge, damit das System nicht versucht, + darauf zuzugreifen, falls die Stacks noch irgendwo aktiv sind */ +/ { + chosen { + /delete-property/ zephyr,console; + /delete-property/ zephyr,shell-uart; + /delete-property/ zephyr,uart-mcumgr; + /delete-property/ zephyr,ieee802154; + }; +}; \ No newline at end of file diff --git a/firmware/sysbuild.conf b/firmware/sysbuild.conf new file mode 100644 index 0000000..721a76f --- /dev/null +++ b/firmware/sysbuild.conf @@ -0,0 +1 @@ +SB_CONFIG_BOOTLOADER_MCUBOOT=y \ No newline at end of file diff --git a/firmware/sysbuild/mcuboot.conf b/firmware/sysbuild/mcuboot.conf new file mode 100644 index 0000000..04ca385 --- /dev/null +++ b/firmware/sysbuild/mcuboot.conf @@ -0,0 +1,2 @@ +CONFIG_LOG=y +CONFIG_MCUBOOT_LOG_LEVEL_INF=y \ No newline at end of file