Signal Editor

Der Signal Editor lässt sich über das Menü Extras ‣ Signal Editor öffnen. Im Folgenden wird der Aufbau und die Funktionsweise des Signal Editors beschrieben.

../_images/Signal-Editor.png

Das Fenster des Signal Editors ist in vier Bereiche aufgeteilt. Am oberen Rand befindet sich die Menüzeile und Werkzeugleiste, welche die grundlegenden Funktionen zum Bearbeiten der Signale anbietet. Der Bereich darunter enthält auf der linken Seite den Workspace in dem die Signale und ihre Abschnitte baumförmig dargestellt werden sowie die Parametertabelle. In der Mitte stellt das Signalboard die Signale grafisch dar. Auf der rechten Seite befindet sich der Eigenschaftsbereich, in dem für die ausgewählten Signale und Signalabschnitte bestimmte Eigenschaften angezeigt und verändert werden können.

Grundsätzlich existieren zwei Möglichkeiten ein Signal zu beschreiben: durch die Aneinanderreihung von Signalabschnitten wie z.B. Rampen, Sinuskurven, etc. oder der Verknüpfung (Addition oder Multiplikation) zweier vorher definierter Signale mittels einer Operation.

Signalboard

Im Signalboard werden die Signale grafisch dargestellt. Das Signalboard besteht aus einzelnen Signalanzeigen für jedes Signal der Stimulationsdatei. Die Ansicht der Signalanzeigen kann über die Tools in der zweiten Werzeugleiste geändert und angepasst werden. Außerdem lässt sich die Reihenfolge der Signale im Workspace per Drag and Drop ändern.

Workspace

Der Workspace enthält eine baumförmige Darstellung aller Signale und Signalabschnitte.

Durch einen Linksklick auf ein Element im Workspace ist es möglich, dieses auszuwählen. Dabei wird das Signal auch im Signalboard markiert. Die Eigenschaften des ausgewählten Elements werden nun rechts im Eigenschaftsbereich angezeigt und können gegebenenfalls angepasst werden.

Durch einen Rechtsklick wird ein Kontextmenü geöffnet, das neben den schon aus der Werkzeugleiste bekannten Operationen weitere Funktionen bietet. Sowohl Signale als auch die einzelnen Segmente können im Workspace per Drag and Drop in der Reihenfolge verändert werden. Diese Änderung wirkt sich auch auf das Signalboard aus. Segmente können hierbei auch zwischen Signalen ausgetauscht und von einem in ein anders Signal verschoben werden. Wird während der Verschiebung zusätzlich Strg gehalten, wird das Element an eine neue Stelle kopiert.

Kontextmenü im Workspace

Das Kontextmenü bietet vielseitige Funktionen. Neben den Standardfunktionen, wie Ausschneiden, Kopieren, Einfügen, Löschen sowie Signale oder Segmente hinzufügen (die auch über die Werkzeugleiste erreichbar sind) sind hier auch die folgenden Funktionen zu finden:

  • das Ersetzen eines Segments durch ein anderes

Mit dieser Funktion kann ein beliebiges verwendetes Segment durch ein anderes ersetzt werden. Dabei wird die Dauer des zu ersetzenden Segments beibehalten, sodass sich die Dauer des gesamten Signals nicht ändert. Zu beachten: Ist das einzusetzende Segment ein Operations-, Loop-, SignalValue- oder DataFileSegment, kann die Dauer nicht kopiert werden, da bei diesen Segmenten die Dauer vom Inhalt des Segments abhängig ist.

Mit dieser Funktion können bereits erstellte Segmente unkompliziert in ein Operations- oder LoopSegment eingebettet werden. Das erleichtert im Nachhinein noch Modifikationen an einzelnen Segmenten vorzunehmen oder sie zu wiederholen.

Mit dieser Funktion kann sehr schnell ein befülltes SignalValueSegment generiert werden. Während der Konvertierung kann eine Samplerate angegeben werden mit Hilfe derer dann Zeitstempel und die entsprechenden Werte für die Wertetabelle des SignalValueSegments generiert werden. Im Anschluss können dann beispielsweise einzelne Werte im SignalValueSegment manipuliert werden.

Signalbeschreibungen

Jede Signalbeschreibung repräsentiert den Verlauf eines einzelnen Signals und ist einem Container aller Signale (der Stimulationsdatei) zugeordnet.

Um eine Signalbeschreibung zu erzeugen, klickt man zunächst auf das entsprechende Icon in der Werkzeugleiste. Der Workspace wird nun um die neu erzeugte Signalbeschreibung erweitert, so dass diese jetzt ausgewählt werden kann. Im Eigenschaftsbereich ist es möglich einen Namen für die Signalbeschreibung festzulegen. Die Signalbeschreibung ist nun bereit bestimmte Signalabschnitte in sich aufzunehmen. Diese Signalabschnitte beschreiben den Verlauf des Signals und können über die entsprechenden Abschnitte in der Werkzeugleiste hinzugefügt werden.

Die Dauer des Signals ergibt sich als Summe der Längen seiner Abschnitte.

In den folgenden Punkten werden die verschiedenen Arten von Signalabschnitten näher beschrieben:

Durch Operation beschriebene Signale

Um ein durch Operation beschriebenes Signal zu erzeugen, klickt man zunächst auf das entsprechende Icon in der Werkzeugleiste. Danach wählt man das neu hinzugekommene Signal aus. Im Eigenschaftsbereich kann man einen Namen festlegen und die Art der Operation (Addition bzw. Multiplikation) auswählen.

In einem Operationssignal werden exakt zwei andere Signalbeschreibungen verknüpft. Dafür ist im Eigenschaftsbereich jeweils ein Signal als Linker Signalname und als Rechter Signalname auszuwählen. Um Operationen zwischen mehr als zwei Signalen durchzuführen, können Operationssignale auch ineinander verschachtelt werden. Dabei ist darauf zu achten, dass kein Kreis entsteht.

../_images/Signal-Editor-Op.png

Das Hinzufügen und Entfernen von Operanden kann auch im Kontextmenü des Operationssignals im Workspace geschehen.

Die Dauer des Signals ergibt sich als Minimum der Längen seiner Operanden.

Datentypen und Dateiformate

Das Dateiformat für Signalverläufe basiert auf dem ASAM HIL 1.0- bzw. XIL 2.0/2.1/2.2-Standard. Der Signal Editor ermöglicht es, .sti- und .stz-Dateien im XIL 2.0/2.1/2.2-Format zu bearbeiten und zu speichern. Dateien im HIL 1.0-Format werden beim Öffnen automatisch in Dateien des Formats XIL 2.0 konvertiert. Der Name der XML-basierten „.sti“-Dateien ist von „Stimulation“ abgeleitet. „.stz“-Dateien sind komprimierte „.sti“-Dateien, die bei der Verwendung von SignalValue-Abschnitten generierte .mat-Dateien, enthalten können (siehe SignalValue-Abschnitt).

In den verschiedenen Dateiformaten können verschiedene Datentypen verwendet werden.

ASAM HIL 1.0- und XIL 2.0 Format

Die für die meisten Abschnitte und Signale benötigten Argumente sind grundlegend als Punkt-separierte float-Werte in den entsprechenden Wertebereichen anzugeben. Ausnahmen sind dabei Namen, Kommentare und Stopptrigger.

XIL 2.1/2.2 Format

Bei der Verwendung des STI Standards 2.1 oder 2.2 können statt Punkt-separierten float-Werten auch Ausdrücke entsprechend des ASAM COMMON GES (Global Expression Syntax) verwendet werden. Dabei können außer für Stopptrigger keine vergleichenden Operationen durchgeführt werden. In den Ausdrücken können darüberhinaus auch Parameter benutzt werden. Für diese können über die Parametertabelle Werte festgelegt werden.

Stopptrigger

../_images/Signal-Editor-StoppTrigger.png

Den meisten Signalabschnitten können Stopptrigger zugewiesen werden. Mithilfe dieser ist es möglich, ein Signal abhängig von anderen Signalen abzuspielen. Mit Stop-Triggern wird die Bedingung für das vorzeitige Beenden eines Abschnitts und den Übergang zum nächsten Abschnitt definiert. Die Bedingung wird mittels einer Untermenge der ASAM COMMON GES (Global Expression Syntax) formuliert und kann Eingangs-Signale als Variablen enthalten, die während der Signalwiedergabe ausgewertet werden. Zusätzlich kann zum Stopptrigger ein Timeout in Sekunden angegeben werden, bei dem auf jeden Fall das Abspielen des Abschnitts beendet wird.

Eingangssignal

Eingangssignale sind Variablen, die in einer .sti-Datei definiert werden und in den Stopptrigger-Ausdrücken von Ausgangssignalen verwendet werden, um die mit ihnen verknüpften Signale auszuwerten. Eingangssignale können auch in ausgewählten Eigenschaften von Signal-Segmenten verwendet werden, um diese dynamisch zur Laufzeit zu beeinflussen. Die spezifizierten Eingangssignale können dann beispielsweise im Start Stimulus mit geeigneten Mappings verknüpft werden. Die Möglichkeit der Verwendung von Eingangssignalen ist jedoch nicht bei allen Tools verfügbar.

Parametertabelle

../_images/Signal-Editor-Parameter.png

In der Parametertabelle können die in einer Stimulationsdatei verwendeten Parameter verwaltet und mit Werten belegt werden. Außerdem können Parameter hinzugefügt oder gelöscht werden. Die Tabelle beinhaltet immer eine leere Zeile ganz unten. Diese Zeile kann dazu genutzt werden, neue Parameter in der Tabelle anzulegen. Ist ein Parameter angelegt, kann dieser in den jeweiligen Eigenschaften der Segmente benutzt werden. Parameter können durch das Selektieren der jeweiligen Zeile und Betätigung der Taste Entf gelöscht werden. Die Parameter werden alphabetisch sortiert angezeigt. Optional können Parameter eine Beschreibung haben, die unterhalb der Tabelle angezeigt wird.

Hinweis: Werden Parameter genutzt, kann die Stimulationsdatei nur noch in den STI Versionen 2.1 oder 2.2 gespeichert werden (siehe Datentypen und Dateiformate).

Cursor

../_images/Signal-Editor-Cursor.png

Durch Betätigen der Taste C auf der Tastatur oder durch Rechtsklicken (oder gedrückt halten) mit der Maus kann der Cursor eingeblendet werden. Dieser kann entweder durch gedrückthalten der rechten Maustaste positioniert werden, oder es wird die gewünschte Stelle im entsprechenden Cursor Position Textfeld angegeben. Ausgeblendet wird der Cursor durch erneutes Betätigen der Taste C auf der Tastatur oder klicken des markierten Cursor Icons in der Werkzeugleiste.

Hinweis: Der Cursor springt immer an eine Stelle, die einem durch die Samplerate vorgegebenen Zeitstempel entspricht.

Gemeinsame Zeitachse

../_images/Signal-Editor-gemeinsameZeitachse.png

Durch Klicken des Icons gemeinsame Zeitachse (siehe Werkzeugleiste) können die Zeitachsen aller Signale bis auf des letzen Signals verborgen werden. So kann mehr Platz zum Betrachten der Signale geschaffen werden. Im Beispiel wurden außerdem über die Menüzeile ‚Ansicht ‣ Position des Signalnamens‘ die Position des Signalnamens nach rechts oben in der Signalanzeige gesetzt, um die Signale noch größer und besser nebeneinander sehen zu können.

Samplerate

../_images/Signal-Editor-Samplerate.png

Die Berechnung der Signalanzeigen geschieht anhand einer bestimmten Samplerate, mit derer die Bildpunkte für die einzelnen Signale berechnet werden. Für diese Samplerate gibt es zwei verschiedene Einstellungsmöglichkeiten.

  • dynamische Samplerate

  • feste Samplerate

Die dynamische Samplerate passt sich je nach Länge der Signale bzw. der Breite des Anzeigeausschnitts so an, dass für jeden Bildpunkt des Bildschirms auf dem der Signal Editor angezeigt wird ein Wert zum Anzeigen berechnet wird. Wird die feste Samplerate ausgewählt, werden unabhängig von der Breite des Anzeigeausschnitts und der Breite des Fensters die festgelegten Werte pro Sekunde des Signals berechnet (im Beispiel 50 Werte pro Sekunde).