Executable State Machine Simulation mit Java Script

Die Executable Model-Simulation in EA ist ein mächtiges Werkzeug. Im Gegensatz zur interpretierten Model-Simulation wird bei der Executable Model-Simulation Code generiert, dieser wird anschließend ausgeführt. Das aktuell ausgeführte Verhalten wird anschließend im EA visualisiert.

Während der Simulation können Ereignisse (Trigger) manuell oder direkt aus der Simulation “ausgelöst” werden. Die folgende Syntax wird derzeit unterstützt.

%BROADCAST_EVENT("<TRIGGER_NAME>.<SIGNAL_NAME>(<PAEAMETE_WERT_1>, … <PAEAMETE_WERT_n>,  )")%;

Konkretes Beispiel:

%BROADCAST_EVENT("T_MyTrigger.Sig_MySig(5)")%;

Auf die übertragenen Werte kann nun während des Übergangs in der Guard Condition zugegriffen werden. Bei JavaScript geschieht dies wie folgt:

event.signal.attX == 5

Wird die ausführbare Simulation mit anderen Programmiersprachen ausgeführt, muss die Abfrage in der Guard Condition entsprechend angepasst werden. Für C# zum Beispiel kann dies so aussehen:

((Sig_MyX)_event.signal) != null && ((Sig_MyX)_event.signal).att1 == 5

Prinzipiell dieselbe Logik: EVENT.SIGNAL.<ATTRIBUT_WERT>

Der obige Code stellt sicher, dass keine Ausnahmen auftreten.

Hier ist die Darstellung des gesamten Beispiels als Executable JavaScript Simulation.

Möchte man mehrere Parameter übergeben sieht der Aufruf wie folgt aus:

In diesem Beispiel wurde dem Signal Sig_MySig ein zweites Attribut attY hinzugefügt!

Beim Aufruf des %BRODCAST_EVENT(...)% ist zu beachten, dass alle übergebenen Parameter keine Hochkomma enthalten und dass keine Leerzeilen enthalten sind! In der Guard-Condition hingegen müssen Zeichenketten wieder unter Hochkomma gestellt werden. Zum Beispiel event.signal.attY == "value2"

Veröffentlicht unter Best Practices, Modell-Simulation
Schlagworte: ,