Traceschrittvorlagen verwenden¶
Traceschritte aus dem Reiter Traceschrittvorlagen (in der Exploreransicht links) können einer Traceanalyse via Kontextmenü oder Drag-and-drop hinzugefügt werden.
Traceschrittvorlagen selbst werden als Dateien in Verzeichnissen verwaltet, deren Inhalte im Reiter Traceschrittvorlagen angezeigt werden. Dort werden die Bereiche StandardTraceStepTemplates eines impliziten Bibliotheksworkspaces (siehe Abschnitt Standard-Traceschrittvorlagen) und Templates angeboten. Das Verzeichnis, welches im Bereich Templates angezeigt wird, kann unter geändert werden.
Einbinden neuer Traceschrittvorlagen via Drag-and-drop¶
Beim Einbinden einer Traceschrittvorlage als Traceschritt, muss eine Parametrierung der Signal- und Wertparameter erfolgen. Bei den Signalen werden die Ein- bzw. Ausgangssignale mit generischen Signalen verknüpft. Ist der Signalname fett gedruckt, muss ein generisches Signal angebunden werden. Ist ein Signalname nicht fett gedruckt, ist die Anbindung eines generischen Signals optional. Wird ein generisches Signal an ein Signal des Traceschritts gebunden, darf es nicht zu Problemen beim Auflösen des Mappings oder beim Finden des Signals in der Aufnahme kommen, sonst wird die Traceanalyse mit einer Fehlermeldung abgebrochen.
Info
Nicht fett gedruckte Signale könnten seitens der Traceschrittvorlage optional angebunden werden. Für solche Signale wird in der Spalte Optional eine Checkbox angezeigt. Anhand dieser kann ecu.test signalisiert werden, dass das Signal optional vorhanden ist. Falls es zu Problemen für das angebundene generische Signal kommt, führt dies nicht zum Fehler und dem Abbruch der Traceanalyse. Stattdessen wird das Signal so behandelt, als ob es keine Samples in der Aufnahme besitzt. Diese Option sollte nur gesetzt werden, wenn zu erwarten ist, dass das Signal abhängig von bestimmten Umständen nicht in der Aufnahme vorhanden sein wird.
Für Eingangssignale besteht zusätzlich die Möglichkeit eine Einheit anzugeben. Der Wert des generischen Signals wird automatisch in die entsprechende Zieleinheit umgerechnet bevor es in die Analysevorschrift der Traceschrittvorlage einfließt. Die automatische Einheitenumrechnung funktioniert nur mit generischen Signalen, die Informationen über Einheiten besitzen. Einheiteninformationen können zum Beispiel direkt innerhalb einer Datei (MDF-Format) hinterlegt sein oder für Binärformate durch eine geladene Busdatenbank ausgelesen werden. Berechnete Signale (Ausgangssignale eines Traceschrittes) sind einheitenlos. Die Angabe einer Einheit für ein Eingangssignal, welches in einem vorigen Traceschritt berechnet wurde, führt zum Fehler.
Bei eingehenden Parametern (also Parameter mit Richtung IN) können jegliche gültige Python-Ausdrücke verwendet werden. Es lassen sich insbesondere auch Namen von Variablen verwenden. Einem Rückgabewert (also einem Parameter mit Richtung OUT) aus Python-basierten Traceschrittvorlagen kann eine existierende Variable zugewiesen werden. Diese enthält in nachgelagerten Episoden dann den neu zugewiesenen Wert.
Ist in der Traceschrittvorlage für einen eingehenden Parameter ein Standardwert konfiguriert, wird dieser verwendet, wenn die Wertzuweisung dieses Parameters bei der Verwendung leer („None“) ist. Wird für den Parameter ein expliziter Wert angegeben, hat dieser Vorrang gegenüber dem konfigurierten Standardwert.
Info
Um stets ein wohldefiniertes Verhalten zu gewährleisten, gibt es (wie bei Signalen) Einschränkungen bei der Verwendung von ein- und ausgehenden Parametern: Wird über einen Rückgabewert einer Python-basierten Traceschrittvorlage ein Variablenwert gesetzt, so ist innerhalb der gleichen Episode kein lesender Zugriff auf die Variable erlaubt. Um die Variable in einem nachfolgenden Traceschritt zu nutzen, muss dieser also zwingend in einer neuen Episode sein. Davon ausgenommen ist die Aktualisierung einer Variable in einem einzelnen Traceschritt, d.h. ein einzelner Traceschritt kann die gleiche Variable als ein- und ausgehenden Parameter assoziieren.
Darüber hinaus darf eine Python-basierte Traceschrittvorlage mit Rückgabewerte nicht unterhalb eines Triggerblocks verwendet werden.
Parametrierung einer Traceschrittvorlage am Beispiel der Standard-Traceschrittvorlage „CalculateMinMax“¶
Unter den Reporteinstellungen für Fundstellen wird konfiguriert, wie Fundstellen im
Report ausgegeben werden. Eine Fundstelle besteht aus einem Zeitstempel und einer zugehörigen
Nachricht. Bei
Timing-Diagrammen werden die
Fundstellen automatisch generiert und dienen zur Ausgabe von Stellen im Trace, an denen
das Timing-Diagramm erfüllt oder nicht erfüllt wurde (je nach Einstellung).
Bei eventbasierten Python-Traceschritten
können die auszugebenden Fundstellen mittels der API-Funktion ReportSpot(time, message) selbst
definiert werden.
Die Option Maximale Anzahl gibt an, wie viele Fundstellen höchstens (beginnend mit der ersten) im Report angezeigt werden. Die Einstellung Mindestabstand legt den minimalen zeitlichen Abstand zwischen zwei aufeinanderfolgenden Fundstellen im Report fest: Eine Fundstelle wird nicht im Report ausgegeben, wenn die Differenz zwischen ihrem Zeitstempel und dem Zeitstempel der vorherigen Fundstelle kleiner als dieser Mindestabstand ist. Fundstellen, die innerhalb dieses Mindestabstands liegen, werden dennoch im Report angezeigt, falls sie eine schlechtere Bewertung haben als die bisher am schlechtesten bewertete, im Report angezeigte Fundstelle.
Sollen einzelne Traceschrittvorlagen bei der Ausführung der Traceanalyse nicht verarbeitet werden, müssen diese nicht entfernt, sondern können über das Kontextmenü (rechte Maustaste) oder den Shortcut <Space> deaktiviert werden:
Deaktivieren einer Traceschrittvorlage¶