irrigation_system/software/tools/modbus_tool
Eduard Iten dcbd02ad7a refactor: Rename obstacle current settings in Modbus tool UI
Renamed "Set Obstacle Open" and "Set Obstacle Close" menu options to "Set Obstacle Current Open" and "Set Obstacle Current Close" respectively in . This provides more precise terminology for the obstacle detection current thresholds.
Signed-off-by: Eduard Iten <eduard@iten.pro>
2025-07-11 09:25:19 +02:00
..
README.de.md docs: replace svg logo with png version 2025-07-02 09:22:37 +02:00
firmware.bin feat(modbus_tool): Implement simulated firmware update 2025-07-01 21:55:19 +02:00
modbus_tool.py refactor: Rename obstacle current settings in Modbus tool UI 2025-07-11 09:25:19 +02:00
requirements.txt feat(modbus_tool): Add interactive TUI and documentation 2025-07-01 20:59:47 +02:00

README.de.md

Logo

Modbus Tool für Bewässerungssystem-Knoten

Dieses Python-Skript bietet eine interaktive Kommandozeilen-Benutzeroberfläche (TUI) zur Steuerung und Überwachung eines Ventil-Knotens des Bewässerungssystems über Modbus RTU.

Features

  • Interaktive Benutzeroberfläche: Eine benutzerfreundliche, auf curses basierende Oberfläche, die eine einfache Bedienung ermöglicht.
  • Live-Statusanzeige: Zeigt tabellarisch und in Echtzeit alle wichtigen Register des Slaves an:
    • Ventilstatus (Zustand, Bewegung, Motorstrom)
    • Zustand der digitalen Ein- und Ausgänge
    • "Clear-on-Read" Taster-Events
    • Systemkonfiguration (Öffnungs-/Schließzeiten, Watchdog-Timeout)
    • Gerätestatus (Firmware-Version, Uptime)
  • Volle Kontrolle: Ermöglicht das Senden von Befehlen zum Öffnen, Schließen und Stoppen des Ventils sowie zum Umschalten der digitalen Ausgänge.
  • Konfiguration zur Laufzeit: Die maximalen Öffnungs-/Schließzeiten und der Watchdog-Timeout können direkt in der Oberfläche geändert werden.
  • Simulierter Firmware-Upload: Implementiert den vollständigen, in der Dokumentation beschriebenen Firmware-Update-Prozess. Das Tool sendet eine firmware.bin-Datei in Chunks an den Slave und folgt dem CRC-Verifizierungs-Protokoll.

Installation

Voraussetzungen

  • Python 3.x
  • pip (Python Paket-Installer)

Installation der Abhängigkeiten

Die benötigten Python-Pakete sind in der Datei requirements.txt aufgeführt. Sie können auf zwei Arten installiert werden: global oder in einer virtuellen Umgebung (empfohlen).

Option 1: Installation mit virtueller Umgebung (empfohlen)

Eine virtuelle Umgebung isoliert die Projekt-Abhängigkeiten von Ihrem globalen Python-System, was Konflikte vermeidet.

  1. Virtuelle Umgebung erstellen: Führen Sie im Verzeichnis software/tools/modbus_tool den folgenden Befehl aus, um eine Umgebung im Ordner .venv zu erstellen:

    python3 -m venv .venv
    
  2. Umgebung aktivieren:

    • Linux / macOS:
      source .venv/bin/activate
      
      Ihre Shell-Anzeige sollte sich ändern und (.venv) am Anfang zeigen.
    • Windows (cmd.exe):
      .venv\Scripts\activate.bat
      
    • Windows (PowerShell):
      .venv\Scripts\Activate.ps1
      
  3. Abhängigkeiten installieren: Wenn die Umgebung aktiv ist, installieren Sie die Pakete:

    pip install -r requirements.txt
    
  4. Umgebung deaktivieren: Wenn Sie fertig sind, können Sie die Umgebung mit folgendem Befehl wieder verlassen:

    deactivate
    

Option 2: Globale Installation (nicht empfohlen)

Wenn Sie keine virtuelle Umgebung verwenden möchten, können Sie die Pakete direkt in Ihrem globalen Python-System installieren.

pip install -r requirements.txt

Verwendung

Stellen Sie sicher, dass das Skript ausführbar ist:

chmod +x modbus_tool.py

Starten Sie das Tool, indem Sie den seriellen Port als Argument übergeben:

./modbus_tool.py /dev/ttyACM0

Ersetzen Sie /dev/ttyACM0 durch den korrekten Port Ihres Geräts.

Kommandozeilen-Argumente

  • port: (Erforderlich) Der serielle Port (z.B. /dev/ttyACM0 oder COM3).
  • --baud: Die Baudrate (Standard: 19200).
  • --slave-id: Die Modbus Slave ID des Geräts (Standard: 1).
  • --interval: Das Abfrageintervall für den Status in Sekunden (Standard: 1.0).

Bedienung der Oberfläche

  • Navigation: Verwenden Sie die Pfeiltasten (↑/↓), um zwischen den Menüpunkten zu navigieren.
  • Auswählen: Drücken Sie Enter, um den ausgewählten Befehl auszuführen.
  • Werte eingeben: Bei Aktionen wie "Set Watchdog" werden Sie zur Eingabe eines Wertes aufgefordert. Geben Sie den Wert ein und bestätigen Sie mit Enter.
  • Firmware Update: Diese Funktion startet den Upload der Datei firmware.bin aus dem aktuellen Verzeichnis. Während des Updates wird eine Fortschrittsanzeige dargestellt.
  • Beenden: Wählen Sie den Menüpunkt "Exit" und drücken Sie Enter.