Virtuelle MSC-Abläufe

Die MSC-Messskripte können mit virtuellen Gerätekonfigurationen ohne Laborhardware ausgeführt werden. Das ist für Entwicklung, Fehlersuche und Regressionstests gedacht.

Verfügbare Skripte und Konfigurationen

Die modernen textbasierten MSC-Skripte liegen im Verzeichnis script:

Skript

Zweck

Typische virtuelle Konfiguration

msc-maincal.py

Kammerkalibrierung für empty und loaded

conf/msc-immunity-virtual/conf.py

msc-eutcal.py

EUT-Loading-Kalibrierung

conf/msc-immunity-virtual/conf-eutcal.py

msc-immunity.py

Störfestigkeitsmessung mit vorhandener Kalibrierhistorie

conf/msc-immunity-virtual/conf-immunity.py

msc-emission.py

Emissionsmessung mit vorhandener Kalibrierhistorie

conf/msc-emission-virtual/conf.py oder conf/msc-emission-virtual/conf-after-immunity.py

Für jedes dieser Skripte gibt es zusätzlich einen Qt-Starter mit derselben Konfigurationsschnittstelle: msc-maincal-qt.py, msc-eutcal-qt.py, msc-immunity-qt.py und msc-emission-qt.py. Diese Starter verwenden die einfache Qt-Oberfläche mit Stop / RF Off und führen die Messlogik in einem Worker-Thread aus.

Die Konfigurationen msc-immunity-virtual und msc-emission-virtual verwenden virtuelle Geräte und synthetische Pfadkorrekturen. Die passenden *-realpaths-Konfigurationen verwenden weiterhin virtuelle Geräte, laden aber reale Pfadkorrekturdaten aus MpyConfig/LargeRC/ini.

Historien-Pickles

Die MSC-Pickle-Dateien sind Historien-Container. Ein Skript lädt eine bestehende MSC-Instanz über pickle_input_filename, ergänzt die nächste Messung und Auswertung und schreibt die vollständige aktualisierte Instanz nach pickle_output_filename.

Jedes neue Ausgabe-Pickle soll damit die gesamte bisherige Messhistorie plus die neu hinzugefügten Daten enthalten. Für die Rückführbarkeit sollten diese Dateien daher nicht als isolierte Zwischenkalibrierdateien verstanden werden.

Typische Sequenzen sind:

maincal -> eutcal -> immunity
maincal -> eutcal -> emission
maincal -> eutcal -> immunity -> emission

Virtuelle MSC-Störfestigkeitskette

Aus dem Verzeichnis script kann die virtuelle Störfestigkeitskette so gestartet werden:

python msc-maincal.py conf/msc-immunity-virtual/conf.py
python msc-eutcal.py conf/msc-immunity-virtual/conf-eutcal.py
python msc-immunity.py conf/msc-immunity-virtual/conf-immunity.py

Dieselbe Kette kann über die Qt-Starter ausgeführt werden:

python msc-maincal-qt.py conf/msc-immunity-virtual/conf.py
python msc-eutcal-qt.py conf/msc-immunity-virtual/conf-eutcal.py
python msc-immunity-qt.py conf/msc-immunity-virtual/conf-immunity.py

Die zugehörigen Ausgabe-Pickles werden unter conf/msc-immunity-virtual/output geschrieben.

Die Realpath-Variante verwendet dieselbe Skriptreihenfolge mit conf/msc-immunity-virtual-realpaths:

python msc-maincal.py conf/msc-immunity-virtual-realpaths/conf.py
python msc-eutcal.py conf/msc-immunity-virtual-realpaths/conf-eutcal.py
python msc-immunity.py conf/msc-immunity-virtual-realpaths/conf-immunity.py

Virtuelle MSC-Emission

Für eine Emissionsmessung direkt nach der EUT-Kalibrierung:

python msc-emission.py conf/msc-emission-virtual/conf.py

Oder mit Qt-Oberfläche:

python msc-emission-qt.py conf/msc-emission-virtual/conf.py

Für eine Emissionsmessung, die eine zuvor gelaufene Störfestigkeitsmessung in derselben Historie erhalten soll:

python msc-emission.py conf/msc-emission-virtual/conf-after-immunity.py

Die entsprechenden Realpath-Varianten sind:

python msc-emission.py conf/msc-emission-virtual-realpaths/conf.py
python msc-emission.py conf/msc-emission-virtual-realpaths/conf-after-immunity.py

Reale Pfaddaten

Die *-realpaths-Varianten erwarten den MpyConfig-Checkout neben dem mpylab-Repository:

workspace/
├── mpylab/
└── MpyConfig/
    └── LargeRC/
        └── ini/

Wenn MpyConfig/LargeRC/ini fehlt, werden Tests mit realen Pfadkorrekturdaten übersprungen. Die rein virtuellen Konfigurationen bleiben vollständig hardwareunabhängig.

Tests

Die hardwareunabhängigen MSC-Abläufe werden durch die pytest-Suite abgedeckt:

Test

Abdeckung

test_msc_immunity_virtual_config.py

Lädt die virtuellen und Realpath-DOT-Konfigurationen und initialisiert den MGraph ohne Hardwarezugriff.

test_msc_virtual_history_workflow.py

Führt die Skriptreihenfolge mit temporären Ausgabedateien aus und prüft, dass jedes Ausgabe-Pickle die vorherige MSC-Historie erhält.

Die Tests können aus dem Repository-Wurzelverzeichnis gestartet werden:

PYTHONPATH=src:../scuq/src python -m pytest test