HRNGGUI-Architektur

Die Anwendung folgt einem schichtbasierten Aufbau, der die Benutzerschnittstelle von der Datenverarbeitung und der Hardwarekommunikation trennt. Dadurch lässt sich das Programm leichter erweitern und warten.

Überblick

  1. GUI-Schicht – sämtliche Widgets, Dialoge und visuellen Elemente

  2. DataController-Schicht – sammelt Messwerte und stellt Statistiken bereit

  3. Arduino-Schnittstelle – übernimmt die serielle Kommunikation mit dem GM-Zähler

Simplified architecture diagram

Placeholder for a high level architecture diagram.

Begründung

Die GUI muss auch bei hohem Datenaufkommen reaktionsfähig bleiben. Daher sammelt das Arduino-Interface Rohdaten und leitet sie in einem Hintergrund-Thread an den DataController weiter. Dieser puffert die Werte und aktualisiert die GUI-Elemente in regelmäßigen Abständen. Diese Trennung verhindert, dass Hardwareverzögerungen die Oberfläche blockieren und ermöglicht Unit-Tests der Logik ohne grafisches Backend.

Das gleiche Prinzip gilt für Konfigurationsänderungen: Die GUI ändert nur Eigenschaften am DataController, der sie anschließend an das Arduino-Interface überträgt.

Thread-Modell

  • Hauptthread – führt alle Qt-Widgets und Timer aus.

  • Acquisition-Thread – liest Bytes von der seriellen Schnittstelle.

  • Processing-Thread – optionale aufwändige Berechnungen.

Die Schichten kommunizieren über klar definierte Methoden, um Race Conditions zu vermeiden.

*** End of file