Architektur

Die Schichten einer typischen Anwendung sind:

digraph architecture {
    rankdir=TB;
    node [shape=box];
    "Skript oder GUI" -> "Measure-Unterklasse";
    "Measure-Unterklasse" -> "MGraph";
    "MGraph" -> "Gerätetreiber";
    "Gerätetreiber" -> "Kommunikationsklasse";
    "Measure-Unterklasse" -> "Autosave und Historie";
    "Measure-Unterklasse" -> "EUT-Monitor";
    "Measure-Unterklasse" -> "Report";
    "SCUQ" -> "Measure-Unterklasse" [style=dashed];
    "SCUQ" -> "MGraph" [style=dashed];
    "SCUQ" -> "Gerätetreiber" [style=dashed];
}

Skript oder GUI

Die Bedienebene lädt die Konfiguration, erzeugt oder restauriert die Messklasse und startet Messung und Auswertung. Qt-Anwendungen verschieben langlaufende Hardwarearbeit in Worker-Threads.

Measure und Messklassen

Measure stellt gemeinsame Infrastruktur für Logging, Benutzerinteraktion, Autosave, Pickle-Historie, Geräteinitialisierung und sicheres Beenden bereit. MSC, TEMCell und AmplifierTest ergänzen den fachlichen Ablauf.

MGraph

MGraph liest die DOT-Topologie, wertet Conditions mit explizitem Kontext aus, erzeugt Geräteinstanzen und berechnet Pfadkorrekturen. Leveling und Verstärkerschutz greifen ebenfalls auf den Messgraphen zurück.

Gerätetreiber und Kommunikation

Basistreiber definieren eine gemeinsame API für eine Geräteklasse. Gerätespezifische Treiber bilden diese API auf SCPI oder proprietäre Befehle ab. Kommunikationsklassen kapseln GPIB, Serial, Prologix und andere Transporte.

SCUQ

SCUQ transportiert Nennwert, Einheit, Unsicherheit und Korrelation durch die gesamte Berechnung. Konvertierungen zwischen linearen und logarithmischen Größen werden zentral über mpylab-Hilfsfunktionen durchgeführt.