Stimulationspackage und Analysepackage

Durch Stimulationspackages StimulationPackage und Analysepackages AnalysisPackage 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 StimulationPackage 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:

../../_images/AddStimulation.png

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 AnalysisPackage werden beispielsweise über das Menü Datei ‣ Neu ‣ Analysepackage oder nach Rechtsklick im Workspace-Explorer über das Kontextmenü Neu ‣ Analysepackage angelegt. Sie sind eigenständige Artefakte mit der Dateiendung .ta.

../../_images/NewTA.png

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.

../../_images/StimulationSettings_TRC.png

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:

../../_images/StimulationExample.png

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:

../../_images/StimulationSignals.png

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).