Stimulationspackage und Analysepackage¶
Durch Stimulationspackages
und Analysepackages
besteht die Möglichkeit, auf Projektebene die
Stimulation von der Traceanalyse zu trennen. Dies verbessert die Modularität und
Wiederverwendbarkeit gegenüber dem regulären Ansatz, bei dem sowohl Stimulation als auch
Traceanalyse in einem Package gekapselt sind.
Die in den Analysepackages verwendeten Signale werden dabei in der Regel automatisch den Signalgruppen des zugehörigen Stimulationspackages zugeordnet, sodass das Stimulationspackage nicht angepasst werden muss, wenn dem Projekt ein Analysepackage, welches ein bisher nicht benötigtes Signal verwendet, hinzugefügt wird.
Stimulationspackage¶
Als Stimulationspackage
kann im Projekt ein normales Package verwendet werden. Das Package muss
dafür als Stimulationspackagereferenz eingefügt werden, beispielsweise über das Kontextmenü im
Workspace-Explorer oder die Toolbar im Projekteditor:
Hinzufügen eines Stimulationspackages über den Workspace-Explorer (links) oder den Projekteditor (rechts)¶
Wenn ein Stimulationspackage eine oder mehrere Traceanalysen enthält, so werden diese im Anschluss an die Stimulation ausgeführt. Darin enthaltene Signalaufnahmeschritte können dann von verknüpften Analysepackages als Aufnahmequelle genutzt werden.
Analysepackage¶
Analysepackages
werden beispielsweise über das Menü
oder nach Rechtsklick im Workspace-Explorer über
das Kontextmenü angelegt. Sie sind eigenständige Artefakte
mit der Dateiendung .ta.
Ein neu angelegtes Analysepackage¶
Der Aufruf eines Analysepackages kann auf dem gleichen Weg wie für ein reguläres Package in ein Projekt eingefügt werden, z.B. per Drag-and-Drop aus dem Workspace-Explorer oder über die Toolbar im Projekteditor.
Beim Einfügen eines Analysepackageaufrufs wird dieses automatisch mit dem vorangehenden Stimulationspackage verknüpft. Diese Referenz kann im Bearbeiten-Dialog des Analysepackageaufrufs geändert werden.
Dabei können mehrere Analysepackages ein und dasselbe Stimulationspackage referenzieren.
Jedes Analysepackage wird automatisch für alle Parametersätze eines Stimulationspackages ausgeführt und arbeitet mit den jeweils bereitgestellten Aufnahmen. Abhängig von der Anzahl der Aufnahmen je Stimulationspackage werden separate Analysejobs erzeugt. Im folgenden Beispiel würden beide Analysepackages jeweils für beide Parametersätze des Stimulationspackages ausgeführt werden:
Bei der Analyseausführung gilt dabei stets der Mappingraum des jeweiligen Analysepackages (bzw. des jeweiligen Parametersatzes). Falls ein Mapping auf ein generisches oder ungültiges Ziel verweist, wird zusätzlich der Mappingraum des Stimulationspackages (bzw. des jeweiligen Parametersatzes) herangezogen. Ein generisches Mapping eines Analysepackages kann also bspw. durch ein lokales Mapping im Stimulationspackage aufgelöst werden.
Falls ein Analysepackage für mehrere Stimulationen ausgeführt werden soll, ist dies möglich, indem
man in der Auswahl des Stimulationspackages den Eintrag <alle vorherigen> auswählt. Durch diese
Option werden nur Stimulationspackages referenziert, welche sich vor dem Analysepackage im Projekt
befinden. Im Report wird ein Projektordner angelegt, in welchem sich je referenziertem
Stimulationspackage ein Aufruf des Analysepackages befindet.
Zuordnung von Signalen zu Signalgruppen¶
Bei der Ausführung eines Projektes mit Stimulations- und Analysepackages versucht trace.check automatisch, die in mindestens einem Analysepackage an Signale angebundenen Mappings den Signalgruppen der Stimulation zuzuordnen, damit diese mit aufgezeichnet werden. Die Suche nach der passenden Signalgruppe geschieht dabei in absteigender Priorität nach den folgenden Regeln:
Eine Signalgruppe bietet das Mapping bereits.
Für konkrete Mappings müssen dabei Name und Ziel übereinstimmen.
Bei generischen Mappings des Analysepackages muss nur der Name mit einem Mapping des Stimulationspackages übereinstimmen.
Eine Signalgruppe heißt wie der Systembezeichner des adressierten Mappingziels (z.B. ‚A-FlexRay‘).
Eine Signalgruppe bietet ein Mapping mit dem gleichen Systembezeichner.
Für Mappings vom Typ „Tracedatei“:
Falls es nur eine Signalgruppe gibt, wird diese verwendet.
Falls das Mappingziel mit einem Signal aus einem Signalaufnahmeschritt übereinstimmt, wird dessen Signalgruppe verwendet.
Wenn keine der genannten Regeln angewendet werden kann, müssen die betreffenden Signale über den Bearbeiten-Dialog der Stimulationspackagereferenz im Projekt manuell einer Signalgruppe zugeordnet werden:
Manuell zugewiesene Signale werden in Orange, automatisch durch eine Signalgruppe eines in der Testkonfiguration gesetzten Default-Packages zugewiesene Signale in Petrol und nicht zugewiesene Signale in Rot dargestellt.
Ein generisches Mapping eines Analysepackages kann weder automatisch noch manuell aufgelöst werden, wenn zwei Signalgruppen des Stimulationspackages gleichnamige Mappings beeinhalten! In diesem Fall sollten die Mappingnamen im Stimulationspackage angepasst werden, um den Namenskonflikt aufzulösen.
Besondere Signale und Aufnahmegruppen¶
Signalaufnahmeschritte
Für jeden Signalaufnahmeschritt, welcher in einer Traceanalyse des Stimulationspackages enthalten ist, wird zusätzlich eine entsprechend benannte Aufnahmegruppe angezeigt. Auch hier erfolgt die Zuordnung mittels gleichnamiger Mappings. In einem Analysepackage muss also ein Mapping mit dem generischen Signalnamen des Signals, welches berechnet und gespeichert wurde, als Zielpfad existieren.
Zusätzlich muss das Mapping vom Typ ‚Tracedatei‘ sein und das Mapping-Ziel muss gleich dem Namen des Mappings, also dem Namen des generischen Signals in der Traceanalyse des Stimulationspackages sein.
Pseudosignale
Das Vorgehen für die Analyse mit sogenannten Pseudosignalen, also beispielsweise das Signal ‚FrameId‘ aus einer ASC- oder BLF-Datei lehnt sich an das Vorgehen mit Testfallvariablen an. Ist im Stimulationspackage das Signal noch keiner Signalgruppe zugeordnet, können diese Art von Signalen (Tracedatei-Signale) üblicherweise keiner Gruppe automatisch zugeordnet werden. Daher muss die korrekte Zuordnung manuell im Bearbeiten-Dialog der Stimulationspackagereferenz im Projekt vorgenommen werden.
Soll das Pseudosignal aus mehreren unterschiedlichen Signalgruppen gelesen werden, z.B. eine Gruppe für CAN und eine für FlexRay, führt das zwangsweise zum Zuordnungskonflikt. Dieser kann gelöst werden, indem mehrere Mappings, welche alle auf das gleiche Ziel verweisen, anlegt werden (z.B. ‚FrameId_CAN‘ und ‚FrameId_FLX‘, welche beide auf ‚FrameId‘ verweisen).
Rückgabewerte von Stimulationspackages in Analysepackages verwenden¶
Manchmal ist es notwendig, Informationen, die im Stimulationspackage zur Laufzeit bestimmt werden,
an ein zugehöriges Analysepackage zu übermitteln. Dieser Anwendungsfall lässt sich mittels
Package-Variablen realisieren. Im Stimulationspackage muss die Variable, auf deren Wert
im Analysepackage zugegriffen werden soll, als Rückgabewert markiert werden. In einem Parametersatz
des Analysepackages stehen die Rückgabewerte des verknüpften Stimulationspackages
unter dem Bezeichner stim zur Verfügung. Mit stim.returnVariable kann also bspw. auf den
Rückgabewert der Variablen mit dem Namen returnVariable zugegriffen werden.
Um den Aufwand der Zuordnung zu reduzieren, gibt es die Option „Rückgabewerte der Stimulation als Standardparametrierung verwenden“. Ist diese Option aktiviert, wird für jeden Parameter des Analysepackages automatisch der gleichnamige Rückgabewert der Stimulation verwendet, falls dieser existiert und dem Parameter noch kein Wert per Parametersatz oder projektübergreifender Parametrierung zugewiesen wurde.
Info
Der Rückgabewert ist der zuletzt im Stimulationspackage gesetzte Wert. Das Setzen der Variable kann entweder im Testfall oder einer der darauffolgenden Traceanalysen erfolgen. Innerhalb einer Traceanalyse muss der Wert explizit über einen Rückgabeparameter eines Traceschritts gesetzt werden, damit dieser berücksichtigt wird.
Setzen mehrere Traceanalysen den Variablenwert, gilt der Wert der zuletzt ausgeführten. Da Traceanalysen grundsätzlich unabhängig voneinander laufen, ist dieses Vorgehen jedoch nicht empfohlen.
Werte globaler Konstanten und Attribute von Stimulationspackages in Analysepackages verwenden¶
Oft ist es gewünscht, dass die Werte von globalen Konstanten und Attributen, welche zum Zeitpunkt der Stimulation gesetzt sind, auch im Analysepackage gelten.
In den meisten Fällen reicht eine Definition der globalen Konstanten in der Testkonfiguration oder die Parametrierung durch ein gemeinsames, übergeordnetes Projektelement. In seltenen Fällen wird eine globale Konstante jedoch erst in der Stimulation ermittelt und gesetzt.
Aus diesem Grund werden während der Ausführung der Stimulation gültige Werte von globalen Konstanten und Attributen genau dann in die Ausführung des Analysepackages übernommen, wenn diese zu diesem Zeitpunkt noch nicht oder nur in der Testkonfiguration definiert sind.
Analysen zu einer Stimulation in test.guide finden¶
Um die Zuordnung von Stimulation und Analysen in test.guide zu erleichtern, wird bei der Ausführung eines Projektes mit Stimulations- und Analysepackages für jeden Lauf eines Stimulationspackages eine interne globale Konstante namens TT_STIMULATION_RUN_ID mit einer UUID angelegt. Diese Konstante wird in die zugeordneten Analysepackages übernommen, sodass in test.guide nach ihr gefiltert werden kann, um alle zu einer Stimulation ausgeführten Analysen zu finden.
Einschränkungen¶
Die selektive Ausführung eines Projektes, welches Stimulations- und Analysepackages enthält, wird nicht unterstützt.
Parametersätze und Parametersatzgeneratoren können für Stimulationspackages und Analysepackages
analog zu regulären Packages verwendet werden.
Im Fall von Analysepackages können allerdings keine Aufnahmen hinzugefügt werden.
Außerdem müssen Parametersatzgeneratoren für Analysepackages alle Mappings, die per
CycleData.AddMappingItem() generierten Parametersätzen hinzugefügt werden,
in der Methode GetUsedMappingItems() des Generators definiert werden,
um sie dem Stimulationspackage bekannt zu machen
(siehe Parametersatzgenerator API).