summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schuetz2013-07-04 11:27:14 (EDT)
committerThomas Schuetz2013-07-04 11:27:14 (EDT)
commit3d0f177a27520cdb574bae04ff9f988d808f26fd (patch)
tree4ea0cbfd71cb32d14ad6c81d5f3f4592e2829aa5
parenta87f64917729115cd3876125bb1d1ef0ace36638 (diff)
downloadorg.eclipse.etrice-3d0f177a27520cdb574bae04ff9f988d808f26fd.zip
org.eclipse.etrice-3d0f177a27520cdb574bae04ff9f988d808f26fd.tar.gz
org.eclipse.etrice-3d0f177a27520cdb574bae04ff9f988d808f26fd.tar.bz2
[tutorials...examples] moved the ol tutorials here
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/Blinky.room149
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PedLightsController.room168
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PingPong.room121
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/RemoveComment/RemoveComment.room181
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/SendingData.room139
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficController.behavior630
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficLight.behavior702
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.config30
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etmap17
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etphys23
-rw-r--r--examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.room318
11 files changed, 2478 insertions, 0 deletions
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/Blinky.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/Blinky.room
new file mode 100644
index 0000000..929eb75
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/Blinky.room
@@ -0,0 +1,149 @@
+RoomModel Blinky {
+
+ import room.basic.service.timing.* from "../../../org.eclipse.etrice.modellib.java/models/TimingService.room"
+
+ LogicalSystem System_Blinky {
+ SubSystemRef subsystem: SubSystem_Blinky
+ }
+
+ SubSystemClass SubSystem_Blinky {
+ ActorRef application: BlinkyTop
+ ActorRef timingService: ATimingService
+ LayerConnection ref application satisfied_by timingService.timer
+ }
+
+ ActorClass BlinkyTop {
+ Structure {
+ ActorRef blinky: Blinky
+ ActorRef controller: BlinkyController
+ Binding blinky.ControlPort and controller.ControlPort
+ }
+ Behavior { }
+ }
+
+ ActorClass Blinky {
+ Interface {
+ Port ControlPort: BlinkyControlProtocoll
+ }
+ Structure {
+ usercode1 {
+ "import org.eclipse.etrice.tutorials.PedLightGUI.*;"
+ }
+ usercode2 {
+ "private PedestrianLightWndNoTcp light = new PedestrianLightWndNoTcp();"
+ "private TrafficLight3 carLights;"
+ "private TrafficLight2 pedLights;"
+ }
+ external Port ControlPort
+ SAP timer: PTimer
+ }
+ Behavior {
+ Operation ~Blinky() {
+ "light.closeWindow();"
+ }
+ StateMachine {
+ Transition init: initial -> off {
+ action {
+ "carLights = light.getCarLights();"
+ "pedLights = light.getPedLights();"
+ "carLights.setState(TrafficLight3.OFF);"
+ "pedLights.setState(TrafficLight2.OFF);"
+ }
+ }
+ Transition tr0: off -> tp0 of blinking {
+ triggers {
+ <start: ControlPort>
+ }
+ }
+ Transition tr1: blinking -> off {
+ triggers {
+ <stop: ControlPort>
+ }
+ action {
+ "timer.kill();"
+ "carLights.setState(TrafficLight3.OFF);"
+ }
+ }
+ State off
+ State blinking {
+ subgraph {
+ Transition tr0: my tp0 -> on
+ Transition tr1: on -> off {
+ triggers {
+ <timeout: timer>
+ }
+ }
+ Transition tr2: off -> on {
+ triggers {
+ <timeout: timer>
+ }
+ }
+ Transition init: initial -> on { }
+ EntryPoint tp0
+ State on {
+ entry {
+ "timer.startTimeout(1000);"
+ "carLights.setState(TrafficLight3.YELLOW);"
+ }
+ }
+ State off {
+ entry {
+ "timer.startTimeout(1000);"
+ "carLights.setState(TrafficLight3.OFF);"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ActorClass BlinkyController {
+ Interface {
+ conjugated Port ControlPort: BlinkyControlProtocoll
+ }
+ Structure {
+ external Port ControlPort
+ SAP timer: PTimer
+ }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> on {
+ action {
+ "timer.startTimeout(5000);"
+ "ControlPort.start();"
+ }
+ }
+ Transition goOff: on -> off {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "ControlPort.stop();"
+ "timer.startTimeout(5000);"
+ }
+ }
+ Transition goOn: off -> on {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "ControlPort.start();"
+ "timer.startTimeout(5000);"
+ }
+ }
+ State on
+ State off { }
+ }
+ }
+ }
+
+ ProtocolClass BlinkyControlProtocoll {
+ incoming {
+ Message start()
+ Message stop()
+ }
+ outgoing { }
+ }
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PedLightsController.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PedLightsController.room
new file mode 100644
index 0000000..b47c9ea
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PedLightsController.room
@@ -0,0 +1,168 @@
+RoomModel PedLightsController {
+
+ import room.basic.service.timing.* from "../../../org.eclipse.etrice.modellib.java/models/TimingService.room"
+ import room.basic.types.* from "../../../org.eclipse.etrice.modellib.java/models/Types.room"
+
+ LogicalSystem LogSys_PedLights {
+ SubSystemRef application: SubSys_PedLights
+ }
+
+ SubSystemClass SubSys_PedLights {
+ ActorRef PedLightsTopRef: PedLightsTop
+ ActorRef timingService: ATimingService
+ LayerConnection ref PedLightsTopRef satisfied_by timingService.timer
+ }
+
+ ActorClass PedLightsTop {
+ Structure {
+ ActorRef adapter: GuiAdapter
+ ActorRef controller: Controller
+ Binding adapter.ControlPort and controller.ControlPort
+ }
+ Behavior { }
+ }
+
+ ActorClass GuiAdapter {
+ Interface {
+ conjugated Port ControlPort: PedControlProtocol
+ }
+ Structure {
+ usercode1 {
+ "import org.eclipse.etrice.tutorials.PedLightGUI.*;"
+ }
+ usercode2 {
+ "private PedestrianLightWndNoTcp lights = new PedestrianLightWndNoTcp(\"Pedestrian Lights\",\" external port connection \");"
+ "private TrafficLight3 carLights;"
+ "private TrafficLight2 pedLights;"
+ }
+ external Port ControlPort
+ }
+ Behavior {
+ Operation ~GuiAdapter() {
+ "lights.closeWindow();"
+ }
+ StateMachine {
+ Transition init: initial -> running {
+ action {
+ "carLights=lights.getCarLights();"
+ "pedLights=lights.getPedLights();"
+ "carLights.setState(TrafficLight3.OFF);"
+ "pedLights.setState(TrafficLight2.OFF);"
+ "lights.setPort(ControlPort);"
+ }
+ }
+ Transition tr0: running -> running {
+ triggers {
+ <setCarLights: ControlPort>
+ }
+ action {
+ "carLights.setState(state);"
+ }
+ }
+ Transition tr1: running -> running {
+ triggers {
+ <setPedLights: ControlPort>
+ }
+ action {
+ "pedLights.setState(state);"
+ }
+ }
+ State running
+ }
+ }
+ }
+
+ ActorClass Controller {
+ Interface {
+ Port ControlPort: PedControlProtocol
+ }
+ Structure {
+ usercode1 {
+ "import org.eclipse.etrice.tutorials.PedLightGUI.*;"
+ }
+ external Port ControlPort
+ SAP timer: PTimer
+ }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> off { }
+ Transition tr0: off -> carsGreen {
+ triggers {
+ <start: ControlPort>
+ }
+ action {
+ "timer.startTimeout(700);"
+ "ControlPort.setCarLights(TrafficLight3.GREEN);"
+ "ControlPort.setPedLights(TrafficLight2.RED);"
+ }
+ }
+ Transition tr1: carsGreen -> carsYellow {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "timer.startTimeout(700);"
+ "ControlPort.setCarLights(TrafficLight3.YELLOW);"
+ "ControlPort.setPedLights(TrafficLight2.RED);"
+ }
+ }
+ Transition tr2: carsYellow -> carsRed {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "timer.startTimeout(1500);"
+ "ControlPort.setCarLights(TrafficLight3.RED);"
+ "ControlPort.setPedLights(TrafficLight2.GREEN);"
+ }
+ }
+ Transition tr3: carsRed -> carsYellowRed {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "timer.startTimeout(700);"
+ "ControlPort.setCarLights(TrafficLight3.YELLOW_RED);"
+ "ControlPort.setPedLights(TrafficLight2.RED);"
+ }
+ }
+ Transition tr4: carsYellowRed -> carsGreen2 {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "timer.startTimeout(700);"
+ "ControlPort.setCarLights(TrafficLight3.GREEN);"
+ "ControlPort.setPedLights(TrafficLight2.RED);"
+ }
+ }
+ Transition tr5: carsGreen2 -> off {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "ControlPort.setCarLights(TrafficLight3.OFF);"
+ "ControlPort.setPedLights(TrafficLight2.OFF);"
+ }
+ }
+ State off
+ State carsGreen
+ State carsYellow
+ State carsRed
+ State carsYellowRed
+ State carsGreen2
+ }
+ }
+ }
+
+ ProtocolClass PedControlProtocol {
+ incoming {
+ Message start()
+ }
+ outgoing {
+ Message setCarLights(state: int32)
+ Message setPedLights(state: int32)
+ }
+ }
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PingPong.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PingPong.room
new file mode 100644
index 0000000..8ce696b
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/PingPong.room
@@ -0,0 +1,121 @@
+RoomModel PingPong {
+
+ import room.basic.service.timing.* from "../../../org.eclipse.etrice.modellib.java/models/TimingService.room"
+
+ LogicalSystem System_PingPong {
+ SubSystemRef subsystem: SubSystem_PingPong
+ }
+
+ SubSystemClass SubSystem_PingPong {
+ ActorRef application: PingPongTop
+ ActorRef services: ATimingService
+ LayerConnection ref application satisfied_by services.timer
+ LogicalThread mrPingThread
+ LogicalThread mrPong1Thread
+ ActorInstanceMapping application/MrPing -> mrPingThread
+ ActorInstanceMapping application/MrPong1 -> mrPong1Thread
+ }
+
+ // automatically inserted App_SubSystem_PedLightController
+ ActorClass PingPongTop {
+ Structure {
+ ActorRef MrPing: MrPingActor
+ ActorRef MrPong1: MrPongActor1
+ // ActorRef MrPong2: MrPongActor2
+ Binding MrPing.PingPongPort and MrPong1.PingPongPort
+ }
+ }
+
+ ActorClass MrPingActor {
+ Interface {
+ conjugated Port PingPongPort [2]: PingPongProtocol
+ }
+ Structure {
+ external Port PingPongPort
+ SAP timer: PTimer
+ }
+ Behavior {
+ StateMachine {
+ Transition tr0: initial -> waitForTimer {
+ action {
+ "timer.startTimeout(1000);"
+ }
+ }
+ Transition tr1: waitForTimer -> waitForPong {
+ triggers {
+ <timeout: timer>
+ }
+ action {
+ "PingPongPort.ping();"
+ }
+ }
+ Transition tr2: waitForPong -> waitForTimer {
+ triggers {
+ <pong: PingPongPort>
+ }
+ action {
+ "timer.startTimeout(1000);"
+ }
+ }
+ State waitForTimer { }
+ State waitForPong { }
+ }
+ }
+ }
+
+ ActorClass MrPongActor1 {
+ Interface {
+ Port PingPongPort: PingPongProtocol
+ }
+ Structure {
+ external Port PingPongPort
+ }
+ Behavior {
+ StateMachine {
+ Transition tr0: initial -> waitForPing { }
+ Transition myTrigger: waitForPing -> waitForPing {
+ triggers {
+ <ping: PingPongPort>
+ }
+ action {
+ "PingPongPort.pong();"
+ }
+ }
+ State waitForPing { }
+ }
+ }
+ }
+
+/* ActorClass MrPongActor2 {
+ Interface {
+ Port PingPongPort: PingPongProtocol
+ }
+ Structure {
+ external Port PingPongPort
+ }
+ Behavior {
+ StateMachine {
+ Transition tr0: initial -> waitForPing { }
+ Transition myTrigger: waitForPing -> waitForPing {
+ triggers {
+ <ping: PingPongPort>
+ }
+ action {
+ "PingPongPort.pong();"
+ }
+ }
+ State waitForPing { }
+ }
+ }
+ }*/
+
+ ProtocolClass PingPongProtocol {
+ incoming {
+ Message ping()
+ }
+ outgoing {
+ Message pong()
+ }
+ }
+
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/RemoveComment/RemoveComment.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/RemoveComment/RemoveComment.room
new file mode 100644
index 0000000..f9e6b45
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/RemoveComment/RemoveComment.room
@@ -0,0 +1,181 @@
+RoomModel RemoveComment {
+ import room.basic.types.* from "../../../org.eclipse.etrice.modellib.c/model/Types.room"
+
+ PrimitiveType file:ptInteger -> FILE default "0"
+
+ SubSystemClass RemoveCommentSubSys {
+ ActorRef Topref:ATop
+ }
+ ActorClass ATop {
+ Structure {
+ ActorRef reader: AFileReader
+ ActorRef cParser: ACParser
+ Binding reader.outPort and cParser.readerPort
+ }
+ Behavior { }
+ }
+ ActorClass AFileReader{
+ Interface {
+ Port outPort: FileReaderProtocol
+ }
+ Structure {
+ usercode3{"#include <stdio.h>"
+ }
+ external Port outPort
+ Attribute f:file ref
+ }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> reading {
+ action {
+ "if ((f = fopen(\"test.txt\",\"r\")) != 0) {"
+ "\tprintf(\"file open ok !\\r\\n\");"
+ "\t}"
+ "\telse {"
+ "\tprintf(\"file not found !\\r\\n\");"
+ "\tSubSysClass_shutdown();"
+ "\t}"
+ }
+ }
+ Transition tr0: reading -> reading {
+ triggers {
+ <getNextChar: outPort>
+ }
+ action {
+ "int8 c;"
+ "if ((c=fgetc(f)) != EOF) {"
+ "\toutPort.nextChar(c);"
+ "\t}"
+ "\telse {"
+ "\tfclose(f);"
+ "\tprintf(\"file closed !\\r\\n\");"
+ "\tSubSysClass_shutdown();"
+ "\t}"
+ }
+ }
+ State reading
+ }
+ }
+ }
+ ActorClass ACParser{
+ Interface {
+ conjugated Port readerPort: FileReaderProtocol
+ }
+ Structure {
+ external Port readerPort
+ }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> code {
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr0: code -> cp cp0 {
+ triggers {
+ <nextChar: readerPort>
+ }
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr1: cp cp0 -> code {
+ action {
+ "printf(\"%c\",c);"
+ }
+ }
+ Transition tr2: cp cp0 -> firstSlash {
+ cond {
+ "c==\'/\'"
+ }
+ }
+ Transition tr3: firstSlash -> cp cp1 {
+ triggers {
+ <nextChar: readerPort>
+ }
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr4: cp cp1 -> cp cp4
+ Transition tr5: cp cp1 -> blockComment {
+ cond {
+ "c==\'*\'"
+ }
+ }
+ Transition tr6: blockComment -> cp cp2 {
+ triggers {
+ <nextChar: readerPort>
+ }
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr7: cp cp2 -> blockComment
+ Transition tr8: cp cp2 -> firstStar {
+ cond {
+ "c==\'*\'"
+ }
+ }
+ Transition tr9: firstStar -> cp cp3 {
+ triggers {
+ <nextChar: readerPort>
+ }
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr10: cp cp3 -> blockComment
+ Transition tr11: cp cp3 -> code {
+ cond {
+ "c==\'/\'"
+ }
+ }
+ Transition tr12: cp cp4 -> code {
+ action {
+ "printf(\"%c%c\",\'/\',c);"
+ }
+ }
+ Transition tr13: cp cp4 -> lineComment {
+ cond {
+ "c==\'/\'"
+ }
+ }
+ Transition tr14: cp cp5 -> lineComment
+ Transition tr15: lineComment -> cp cp5 {
+ triggers {
+ <nextChar: readerPort>
+ }
+ action {
+ "readerPort.getNextChar();"
+ }
+ }
+ Transition tr16: cp cp5 -> code {
+ cond {
+ "c==\'\\n\'"
+ }
+ }
+ ChoicePoint cp0
+ ChoicePoint cp1
+ ChoicePoint cp2
+ ChoicePoint cp3
+ ChoicePoint cp4
+ ChoicePoint cp5
+ State code
+ State firstSlash
+ State blockComment
+ State firstStar
+ State lineComment
+ }
+ }
+ }
+
+ ProtocolClass FileReaderProtocol {
+ incoming {
+ Message getNextChar()
+ }
+ outgoing {
+ Message nextChar(c:char)
+ }
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/SendingData.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/SendingData.room
new file mode 100644
index 0000000..b725f0c
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/SendingData.room
@@ -0,0 +1,139 @@
+RoomModel SendingData {
+
+ import room.basic.types.* from "../../../org.eclipse.etrice.modellib.java/models/Types.room"
+
+ LogicalSystem SendingData_LogSystem {
+ SubSystemRef SendingDataAppl: SendingData_SubSystem
+ }
+
+ SubSystemClass SendingData_SubSystem {
+ ActorRef SendigDataTopRef: SendingDataTop
+ }
+
+ ActorClass SendingDataTop {
+ Structure {
+ ActorRef ref0: MrPing
+ ActorRef ref1: MrPong
+ Binding ref0.PingPongPort and ref1.PingPongPort
+ }
+ Behavior { }
+ }
+
+ ActorClass MrPing {
+ Interface {
+ conjugated Port PingPongPort: PingPongProtocol
+ }
+ Structure {
+ external Port PingPongPort
+ }
+ Behavior {
+
+ Operation printData(d: DemoData) : void {
+ "System.out.printf(\"d.int32Val: %d\\n\",d.int32Val);"
+ "System.out.printf(\"d.float64Val: %f\\n\",d.float64Val);"
+ "System.out.printf(\"d.int8Array: \");"
+ "for(int i = 0; i<d.int8Array.length; i++) {"
+ "System.out.printf(\"%d \",d.int8Array[i]);}"
+ "System.out.printf(\"\\nd.stringVal: %s\\n\",d.stringVal);"
+ }
+
+ StateMachine {
+ Transition wait2: waitForPong -> waitForPong {
+ triggers {
+ <pong: PingPongPort>
+ }
+ action {
+ "printData(data);"
+ }
+ }
+ Transition wait1: waitForPongSimple -> waitForPongSimple {
+ triggers {
+ <pongSimple: PingPongPort guard {
+ "data < 10"
+ }>
+ }
+ action {
+ "// keep in mind that MrPong increments"
+ "PingPongPort.pingSimple(data);"
+ "System.out.printf(\"data: %d\\n\",data);"
+ }
+ }
+ Transition next: waitForPongSimple -> waitForPong {
+ triggers {
+ <pongSimple: PingPongPort>
+ }
+ action {
+ "System.out.printf(\"data: %d\\n\",data);"
+ ""
+ "DemoData d = new DemoData();"
+ "// send the default values"
+ "PingPongPort.ping(d);"
+ "d.int32Val=815;"
+ "for (int i = 0; i<d.int8Array.length;i++){"
+ "\td.int8Array[i]=(byte)(i+100);"
+ "\t}"
+ "d.stringVal=\"some contents\";"
+ "d.float64Val=3.141234;"
+ "PingPongPort.ping(d);"
+ }
+ }
+ Transition init0: initial -> waitForPongSimple {
+ action {
+ "PingPongPort.pingSimple(0);"
+ }
+ }
+ State waitForPong
+ State waitForPongSimple
+ }
+ }
+ }
+
+ ActorClass MrPong {
+ Interface {
+ Port PingPongPort: PingPongProtocol
+ }
+ Structure {
+ external Port PingPongPort
+ }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> looping { }
+ Transition tr0: looping -> looping {
+ triggers {
+ <ping: PingPongPort>
+ }
+ action {
+ "PingPongPort.pong(data);"
+ }
+ }
+ Transition tr1: looping -> looping {
+ triggers {
+ <pingSimple: PingPongPort>
+ }
+ action {
+ "PingPongPort.pongSimple(data+1);"
+ }
+ }
+ State looping
+ }
+ }
+ }
+
+ ProtocolClass PingPongProtocol {
+ incoming {
+ Message ping(data: DemoData)
+ Message pingSimple(data: int32)
+ }
+ outgoing {
+ Message pong(data: DemoData)
+ Message pongSimple(data: int32)
+ }
+ }
+
+ DataClass DemoData {
+ Attribute int32Val: int32 = "4711"
+ Attribute int8Array [10]: int8 = "{1,2,3,4,5,6,7,8,9,10}"
+ Attribute float64Val: float64 = "0.0"
+ Attribute stringVal: string = "\"empty\""
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficController.behavior b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficController.behavior
new file mode 100644
index 0000000..023c30e
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficController.behavior
@@ -0,0 +1,630 @@
+<?xml version="1.0" encoding="ASCII"?>
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of TrafficController" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@children.0/@children.6/@link //@children.0/@children.7/@link //@children.0/@children.8/@link //@children.0/@children.9/@link //@children.0/@children.10/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link //@connections.7/@link //@connections.8/@link //@connections.9/@link //@connections.10/@link //@connections.11/@link" verticalGridUnit="10" version="0.9.2">
+ <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="680" height="812"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#ActorClass:TrafficController"/>
+ </link>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="sg"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="701" height="832" x="-10" y="-10">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="621" height="752" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="621" height="752" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#StateGraph:TrafficController$sg"/>
+ </link>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="621" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="trp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="318" y="60">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#StateGraph:TrafficController$sg"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="278" y="126">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$Idle"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.0" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Idle"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="168" height="90" x="63" y="414">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="108" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="83" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="54" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="54" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="54" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$Light1GreenForCars"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6" incomingConnections="//@connections.4 //@connections.5" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="108" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Light1GreenForCars"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="214" height="90" x="231" y="222">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="154" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="129" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="77" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="77" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="77" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$SwitchToLight1GreenForCars"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2 //@connections.3" incomingConnections="//@connections.1 //@connections.11" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="154" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="SwitchToLight1GreenForCars"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="87" y="318">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$state0"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.5" incomingConnections="//@connections.2" referencedGraphicsAlgorithm="//@children.0/@children.5/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="state0"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="279" y="318">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$state1"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4" incomingConnections="//@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.6/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="state1"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="214" height="90" x="40" y="510">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="154" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="129" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="77" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="77" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="77" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$SwitchToLight2GreenForCars"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.7 //@connections.8" incomingConnections="//@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.7/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="154" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="SwitchToLight2GreenForCars"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="87" y="606">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$state2"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.9" incomingConnections="//@connections.7" referencedGraphicsAlgorithm="//@children.0/@children.8/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="state2"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="279" y="606">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$state3"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.10" incomingConnections="//@connections.8" referencedGraphicsAlgorithm="//@children.0/@children.9/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="state3"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="168" height="90" x="254" y="702">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="108" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="83" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="54" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="54" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="54" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficController$Light2GreenForCars"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.11" incomingConnections="//@connections.9 //@connections.10" referencedGraphicsAlgorithm="//@children.0/@children.10/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="108" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Light2GreenForCars"/>
+ </children>
+ </children>
+ </children>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#InitialTransition:TrafficController$initial"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="2" y="-9" font="//@fonts.0" value="init"/>
+ </connectionDecorators>
+ <bendpoints x="328" y="91"/>
+ <bendpoints x="328" y="105"/>
+ <bendpoints x="328" y="119"/>
+ <bendpoints x="328" y="133"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr0"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="11" y="-7" font="//@fonts.0" value="tr0: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="328" y="188"/>
+ <bendpoints x="328" y="202"/>
+ <bendpoints x="328" y="216"/>
+ <bendpoints x="328" y="230"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.5/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr1"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-32" y="23" font="//@fonts.0" value="tr1: &lt;greenForCarDon..."/>
+ </connectionDecorators>
+ <bendpoints x="234" y="269"/>
+ <bendpoints x="218" y="274"/>
+ <bendpoints x="202" y="280"/>
+ <bendpoints x="186" y="288"/>
+ <bendpoints x="172" y="297"/>
+ <bendpoints x="164" y="304"/>
+ <bendpoints x="157" y="312"/>
+ <bendpoints x="151" y="321"/>
+ <bendpoints x="146" y="330"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.6/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr2"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="12" y="-7" font="//@fonts.0" value="tr2: &lt;greenForPedDon..."/>
+ </connectionDecorators>
+ <bendpoints x="323" y="280"/>
+ <bendpoints x="321" y="288"/>
+ <bendpoints x="321" y="296"/>
+ <bendpoints x="320" y="305"/>
+ <bendpoints x="321" y="313"/>
+ <bendpoints x="321" y="318"/>
+ <bendpoints x="322" y="323"/>
+ <bendpoints x="323" y="328"/>
+ <bendpoints x="324" y="333"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.3/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr3"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="61" y="-30" font="//@fonts.0" value="tr3: &lt;greenForCarDon..."/>
+ </connectionDecorators>
+ <bendpoints x="312" y="376"/>
+ <bendpoints x="304" y="385"/>
+ <bendpoints x="296" y="394"/>
+ <bendpoints x="286" y="402"/>
+ <bendpoints x="276" y="409"/>
+ <bendpoints x="260" y="418"/>
+ <bendpoints x="242" y="425"/>
+ <bendpoints x="225" y="431"/>
+ <bendpoints x="208" y="436"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.3/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr4"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="12" y="-7" font="//@fonts.0" value="tr4: &lt;greenForPedDon..."/>
+ </connectionDecorators>
+ <bendpoints x="133" y="373"/>
+ <bendpoints x="132" y="378"/>
+ <bendpoints x="131" y="383"/>
+ <bendpoints x="130" y="388"/>
+ <bendpoints x="130" y="393"/>
+ <bendpoints x="129" y="401"/>
+ <bendpoints x="130" y="410"/>
+ <bendpoints x="131" y="418"/>
+ <bendpoints x="132" y="426"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.7/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr5"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="11" y="-7" font="//@fonts.0" value="tr5: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="137" y="476"/>
+ <bendpoints x="137" y="490"/>
+ <bendpoints x="137" y="504"/>
+ <bendpoints x="137" y="518"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.7/@anchors.0" end="//@children.0/@children.8/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr6"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="12" y="-7" font="//@fonts.0" value="tr6: &lt;greenForPedDon..."/>
+ </connectionDecorators>
+ <bendpoints x="133" y="565"/>
+ <bendpoints x="132" y="570"/>
+ <bendpoints x="131" y="575"/>
+ <bendpoints x="130" y="580"/>
+ <bendpoints x="130" y="585"/>
+ <bendpoints x="129" y="593"/>
+ <bendpoints x="130" y="602"/>
+ <bendpoints x="131" y="610"/>
+ <bendpoints x="132" y="618"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.7/@anchors.0" end="//@children.0/@children.9/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr7"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="60" y="16" font="//@fonts.0" value="tr7: &lt;greenForCarDon..."/>
+ </connectionDecorators>
+ <bendpoints x="227" y="564"/>
+ <bendpoints x="239" y="568"/>
+ <bendpoints x="252" y="573"/>
+ <bendpoints x="264" y="579"/>
+ <bendpoints x="276" y="585"/>
+ <bendpoints x="286" y="592"/>
+ <bendpoints x="296" y="600"/>
+ <bendpoints x="304" y="609"/>
+ <bendpoints x="312" y="618"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.8/@anchors.0" end="//@children.0/@children.10/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr8"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-32" y="-37" font="//@fonts.0" value="tr8: &lt;greenForCarDon..."/>
+ </connectionDecorators>
+ <bendpoints x="146" y="664"/>
+ <bendpoints x="151" y="673"/>
+ <bendpoints x="157" y="682"/>
+ <bendpoints x="164" y="690"/>
+ <bendpoints x="172" y="697"/>
+ <bendpoints x="191" y="708"/>
+ <bendpoints x="211" y="717"/>
+ <bendpoints x="232" y="724"/>
+ <bendpoints x="254" y="729"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.9/@anchors.0" end="//@children.0/@children.10/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr9"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="12" y="-7" font="//@fonts.0" value="tr9: &lt;greenForPedDon..."/>
+ </connectionDecorators>
+ <bendpoints x="324" y="661"/>
+ <bendpoints x="323" y="666"/>
+ <bendpoints x="322" y="671"/>
+ <bendpoints x="321" y="676"/>
+ <bendpoints x="321" y="681"/>
+ <bendpoints x="320" y="689"/>
+ <bendpoints x="321" y="698"/>
+ <bendpoints x="321" y="706"/>
+ <bendpoints x="323" y="714"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.10/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficController$tr10"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="11" y="-7" font="//@fonts.0" value="tr10: &lt;timeout:timeo..."/>
+ </connectionDecorators>
+ <bendpoints x="399" y="727"/>
+ <bendpoints x="417" y="722"/>
+ <bendpoints x="434" y="716"/>
+ <bendpoints x="451" y="707"/>
+ <bendpoints x="467" y="697"/>
+ <bendpoints x="478" y="687"/>
+ <bendpoints x="487" y="678"/>
+ <bendpoints x="492" y="668"/>
+ <bendpoints x="496" y="657"/>
+ <bendpoints x="497" y="642"/>
+ <bendpoints x="497" y="500"/>
+ <bendpoints x="497" y="415"/>
+ <bendpoints x="497" y="371"/>
+ <bendpoints x="497" y="354"/>
+ <bendpoints x="497" y="352"/>
+ <bendpoints x="496" y="337"/>
+ <bendpoints x="492" y="326"/>
+ <bendpoints x="487" y="316"/>
+ <bendpoints x="478" y="307"/>
+ <bendpoints x="467" y="297"/>
+ <bendpoints x="456" y="289"/>
+ <bendpoints x="444" y="282"/>
+ <bendpoints x="431" y="277"/>
+ <bendpoints x="418" y="272"/>
+ </connections>
+ <colors red="227" green="238" blue="249"/>
+ <colors red="255" green="255" blue="255"/>
+ <colors/>
+ <colors red="200" green="200" blue="200"/>
+ <fonts name="Arial" size="8"/>
+ <fonts name="Arial" size="9" bold="true"/>
+</pi:Diagram>
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficLight.behavior b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficLight.behavior
new file mode 100644
index 0000000..42f0547
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/diagrams/trafficlight.example.TrafficLight.behavior
@@ -0,0 +1,702 @@
+<?xml version="1.0" encoding="ASCII"?>
+<pi:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:al="http://eclipse.org/graphiti/mm/algorithms" xmlns:pi="http://eclipse.org/graphiti/mm/pictograms" visible="true" gridUnit="10" diagramTypeId="room.behavior" name="Behavior of TrafficLight" pictogramLinks="//@link //@children.0/@link //@children.0/@children.1/@link //@children.0/@children.2/@link //@children.0/@children.3/@link //@children.0/@children.4/@link //@children.0/@children.5/@link //@children.0/@children.6/@link //@children.0/@children.7/@link //@children.0/@children.8/@link //@children.0/@children.9/@link //@children.1/@link //@children.1/@children.1/@link //@children.0/@children.6/@children.1/@link //@children.1/@children.2/@link //@children.1/@children.3/@link //@connections.0/@link //@connections.1/@link //@connections.2/@link //@connections.3/@link //@connections.4/@link //@connections.5/@link //@connections.6/@link //@connections.7/@link //@connections.8/@link //@connections.9/@link //@connections.10/@link //@connections.11/@link //@connections.12/@link" verticalGridUnit="10" version="0.9.2">
+ <graphicsAlgorithm xsi:type="al:Rectangle" background="//@colors.1" foreground="//@colors.0" lineWidth="1" transparency="0.0" width="598" height="922"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#ActorClass:TrafficLight"/>
+ </link>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="sg"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="618" height="942" x="-10" y="-10">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="538" height="862" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="538" height="862" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#StateGraph:TrafficLight$sg"/>
+ </link>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="538" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/"/>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="trp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="40" height="40" x="316" y="60">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="10" y="10"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#StateGraph:TrafficLight$sg"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="40" height="20" y="10" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="I"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="129" height="90" x="272" y="126">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="69" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="44" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="34" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="34" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="34" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$OpenSocket"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.4" incomingConnections="//@connections.3" referencedGraphicsAlgorithm="//@children.0/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="69" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="OpenSocket"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="121" height="90" x="195" y="428">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="61" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="36" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$CarYellow"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.7" incomingConnections="//@connections.6" referencedGraphicsAlgorithm="//@children.0/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="61" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="CarYellow"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="195" y="332">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$PedRed"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.6" incomingConnections="//@connections.5 //@connections.11" referencedGraphicsAlgorithm="//@children.0/@children.4/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="PedRed"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="195" y="524">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$CarGreen"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.12" incomingConnections="//@connections.7" referencedGraphicsAlgorithm="//@children.0/@children.5/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="CarGreen"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="178" height="104" x="247" y="222">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="118" height="44" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="15" height="8" x="93" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="59" y="38">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="59" y="38">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="59" y="38">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$Off_Blinking"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.5 //@connections.8" referencedGraphicsAlgorithm="//@children.0/@children.6/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="118" height="44" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Off_Blinking"/>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="trp"/>
+ <properties key="item-kind" value="entp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="60" x="59" y="-1">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="11" height="11" x="25" y="25"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0">
+ <points x="27" y="33"/>
+ <points x="33" y="27"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0">
+ <points x="27" y="27"/>
+ <points x="33" y="33"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#EntryPoint:TrafficLight$Off_Blinking$tp0"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" incomingConnections="//@connections.4" referencedGraphicsAlgorithm="//@children.0/@children.6/@children.1/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="22" font="//@fonts.0" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_BOTTOM" value="tp0"/>
+ </children>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="127" height="90" x="192" y="620">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="67" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="42" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="33" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="33" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="33" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$CarYellow2"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.9" incomingConnections="//@connections.8 //@connections.12" referencedGraphicsAlgorithm="//@children.0/@children.7/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="67" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="CarYellow2"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="136" y="716">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$CarRed"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.10" incomingConnections="//@connections.9" referencedGraphicsAlgorithm="//@children.0/@children.8/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="CarRed"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" visible="true" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="61" y="812">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$PedGreen"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.11" incomingConnections="//@connections.10" referencedGraphicsAlgorithm="//@children.0/@children.9/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children visible="true">
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="PedGreen"/>
+ </children>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" active="true">
+ <properties key="obj-type" value="sg"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="880" height="580" x="40" y="40">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.1" foreground="//@colors.2" lineWidth="4" transparency="0.5" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="4" filled="false" transparency="0.0" width="800" height="500" x="40" y="40" cornerHeight="20" cornerWidth="20"/>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#StateGraph:TrafficLight$Off_Blinking$sg"/>
+ </link>
+ <children>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="800" height="80" y="40" font="//@fonts.1" horizontalAlignment="ALIGNMENT_RIGHT" verticalAlignment="ALIGNMENT_TOP" value="/Off_Blinking"/>
+ </children>
+ <children xsi:type="pi:ContainerShape" active="true">
+ <properties key="obj-type" value="trp"/>
+ <properties key="item-kind" value="entp"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="80" height="80" x="360">
+ <graphicsAlgorithmChildren xsi:type="al:Ellipse" background="//@colors.1" foreground="//@colors.2" lineWidth="2" transparency="0.0" width="20" height="20" x="30" y="30"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0">
+ <points x="33" y="47"/>
+ <points x="47" y="33"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="2" filled="false" transparency="0.0">
+ <points x="33" y="33"/>
+ <points x="47" y="47"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#EntryPoint:TrafficLight$Off_Blinking$tp0"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.0"/>
+ <children>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="80" height="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" verticalAlignment="ALIGNMENT_BOTTOM" value="tp0"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="206" y="120">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$Off_Blinking$On"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.1" incomingConnections="//@connections.0 //@connections.2" referencedGraphicsAlgorithm="//@children.1/@children.2/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="On"/>
+ </children>
+ </children>
+ <children xsi:type="pi:ContainerShape" active="true">
+ <properties key="obj-type" value="state"/>
+ <graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="120" height="90" x="472" y="120">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" background="//@colors.3" foreground="//@colors.2" lineWidth="1" transparency="0.0" width="60" height="30" x="30" y="30" cornerHeight="20" cornerWidth="20">
+ <graphicsAlgorithmChildren xsi:type="al:RoundedRectangle" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="15" height="8" x="35" y="3" cornerHeight="5" cornerWidth="5"/>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" x="30" y="24">
+ <points x="-3" y="-3"/>
+ <points x="-3" y="3"/>
+ <points x="-11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="3" y="-3"/>
+ <points x="3" y="3"/>
+ <points x="11" y="3"/>
+ </graphicsAlgorithmChildren>
+ <graphicsAlgorithmChildren xsi:type="al:Polygon" foreground="//@colors.2" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" x="30" y="24">
+ <points x="-2" y="-3"/>
+ <points x="-2" y="3"/>
+ <points x="2" y="3"/>
+ <points x="2" y="-3"/>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithmChildren>
+ </graphicsAlgorithm>
+ <link>
+ <businessObjects href="../trafficlight.example.room#SimpleState:TrafficLight$Off_Blinking$Off"/>
+ </link>
+ <anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="//@connections.2" incomingConnections="//@connections.1" referencedGraphicsAlgorithm="//@children.1/@children.3/@graphicsAlgorithm/@graphicsAlgorithmChildren.0"/>
+ <children>
+ <graphicsAlgorithm xsi:type="al:Text" background="//@colors.2" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" width="60" height="30" x="30" y="30" font="//@fonts.0" horizontalAlignment="ALIGNMENT_CENTER" value="Off"/>
+ </children>
+ </children>
+ </children>
+ <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.1/@anchors.0" end="//@children.1/@children.2/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#ContinuationTransition:TrafficLight$Off_Blinking$tr0"/>
+ </link>
+ <connectionDecorators locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr0: "/>
+ </connectionDecorators>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.2/@anchors.0" end="//@children.1/@children.3/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$Off_Blinking$tr1"/>
+ </link>
+ <connectionDecorators locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr1: &lt;timeout:blinke..."/>
+ </connectionDecorators>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" active="true" start="//@children.1/@children.3/@anchors.0" end="//@children.1/@children.2/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$Off_Blinking$tr2"/>
+ </link>
+ <connectionDecorators locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" font="//@fonts.0" value="tr2: &lt;timeout:blinke..."/>
+ </connectionDecorators>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.1/@anchors.0" end="//@children.0/@children.2/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#InitialTransition:TrafficLight$initial"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="2" y="-10" font="//@fonts.0" value="init"/>
+ </connectionDecorators>
+ <bendpoints x="326" y="91"/>
+ <bendpoints x="326" y="105"/>
+ <bendpoints x="326" y="119"/>
+ <bendpoints x="326" y="133"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.2/@anchors.0" end="//@children.0/@children.6/@children.1/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr0"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="8" y="1" font="//@fonts.0" value="tr0: &lt;established:tc..."/>
+ </connectionDecorators>
+ <bendpoints x="326" y="188"/>
+ <bendpoints x="326" y="201"/>
+ <bendpoints x="326" y="215"/>
+ <bendpoints x="326" y="229"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr2"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="-4" y="17" font="//@fonts.0" value="tr2: &lt;greenForCar:co..."/>
+ </connectionDecorators>
+ <bendpoints x="260" y="289"/>
+ <bendpoints x="254" y="294"/>
+ <bendpoints x="248" y="299"/>
+ <bendpoints x="243" y="305"/>
+ <bendpoints x="239" y="311"/>
+ <bendpoints x="236" y="319"/>
+ <bendpoints x="235" y="327"/>
+ <bendpoints x="235" y="336"/>
+ <bendpoints x="237" y="344"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.4/@anchors.0" end="//@children.0/@children.3/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr3"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="11" y="-7" font="//@fonts.0" value="tr3: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="245" y="394"/>
+ <bendpoints x="245" y="408"/>
+ <bendpoints x="245" y="422"/>
+ <bendpoints x="245" y="436"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.3/@anchors.0" end="//@children.0/@children.5/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr1"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="11" y="-7" font="//@fonts.0" value="tr1: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="245" y="490"/>
+ <bendpoints x="245" y="504"/>
+ <bendpoints x="245" y="518"/>
+ <bendpoints x="245" y="532"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.6/@anchors.0" end="//@children.0/@children.7/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr4"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" y="-42" font="//@fonts.0" value="tr4: &lt;greenForPed:co..."/>
+ </connectionDecorators>
+ <bendpoints x="371" y="298"/>
+ <bendpoints x="385" y="313"/>
+ <bendpoints x="396" y="329"/>
+ <bendpoints x="404" y="347"/>
+ <bendpoints x="407" y="366"/>
+ <bendpoints x="407" y="368"/>
+ <bendpoints x="407" y="378"/>
+ <bendpoints x="407" y="408"/>
+ <bendpoints x="407" y="465"/>
+ <bendpoints x="407" y="560"/>
+ <bendpoints x="406" y="575"/>
+ <bendpoints x="403" y="586"/>
+ <bendpoints x="397" y="596"/>
+ <bendpoints x="388" y="605"/>
+ <bendpoints x="377" y="615"/>
+ <bendpoints x="359" y="627"/>
+ <bendpoints x="338" y="637"/>
+ <bendpoints x="317" y="643"/>
+ <bendpoints x="297" y="648"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.7/@anchors.0" end="//@children.0/@children.8/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr5"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="15" y="-7" font="//@fonts.0" value="tr5: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="229" y="682"/>
+ <bendpoints x="220" y="696"/>
+ <bendpoints x="211" y="710"/>
+ <bendpoints x="202" y="724"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.8/@anchors.0" end="//@children.0/@children.9/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr6"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="15" y="-7" font="//@fonts.0" value="tr6: &lt;timeout:timeou..."/>
+ </connectionDecorators>
+ <bendpoints x="165" y="778"/>
+ <bendpoints x="154" y="792"/>
+ <bendpoints x="143" y="806"/>
+ <bendpoints x="132" y="820"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.9/@anchors.0" end="//@children.0/@children.4/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr7"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" y="51" font="//@fonts.0" value="tr7: &lt;greenForCar:co..."/>
+ </connectionDecorators>
+ <bendpoints x="88" y="820"/>
+ <bendpoints x="78" y="805"/>
+ <bendpoints x="69" y="789"/>
+ <bendpoints x="62" y="771"/>
+ <bendpoints x="60" y="752"/>
+ <bendpoints x="60" y="610"/>
+ <bendpoints x="60" y="525"/>
+ <bendpoints x="60" y="481"/>
+ <bendpoints x="60" y="464"/>
+ <bendpoints x="60" y="462"/>
+ <bendpoints x="71" y="427"/>
+ <bendpoints x="99" y="401"/>
+ <bendpoints x="138" y="385"/>
+ <bendpoints x="179" y="375"/>
+ </connections>
+ <connections xsi:type="pi:FreeFormConnection" visible="true" active="true" start="//@children.0/@children.5/@anchors.0" end="//@children.0/@children.7/@anchors.0">
+ <properties key="obj-type" value="trans"/>
+ <graphicsAlgorithm xsi:type="al:Polyline" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0"/>
+ <link>
+ <businessObjects href="../trafficlight.example.room#TriggeredTransition:TrafficLight$tr8"/>
+ </link>
+ <connectionDecorators visible="true" locationRelative="true" location="1.0">
+ <graphicsAlgorithm xsi:type="al:Polygon" background="//@colors.1" foreground="//@colors.2" lineWidth="1" filled="true" transparency="0.0">
+ <points x="-15" y="5"/>
+ <points/>
+ <points x="-15" y="-5"/>
+ </graphicsAlgorithm>
+ </connectionDecorators>
+ <connectionDecorators visible="true" active="true" locationRelative="true" location="0.5">
+ <graphicsAlgorithm xsi:type="al:Text" foreground="//@colors.2" lineWidth="1" filled="false" transparency="0.0" x="10" y="-7" font="//@fonts.0" value="tr8: &lt;greenForPed:co..."/>
+ </connectionDecorators>
+ <bendpoints x="241" y="579"/>
+ <bendpoints x="240" y="584"/>
+ <bendpoints x="239" y="589"/>
+ <bendpoints x="239" y="594"/>
+ <bendpoints x="238" y="599"/>
+ <bendpoints x="238" y="607"/>
+ <bendpoints x="238" y="616"/>
+ <bendpoints x="239" y="624"/>
+ <bendpoints x="240" y="632"/>
+ </connections>
+ <colors red="227" green="238" blue="249"/>
+ <colors red="255" green="255" blue="255"/>
+ <colors/>
+ <colors red="200" green="200" blue="200"/>
+ <fonts name="Arial" size="8"/>
+ <fonts name="Arial" size="9" bold="true"/>
+</pi:Diagram>
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.config b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.config
new file mode 100644
index 0000000..1c78c07
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.config
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2012 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * CONTRIBUTORS:
+ * Thomas Schuetz (initial contribution)
+ *
+ *******************************************************************************/
+ConfigModel trafficlight.example.config {
+
+ import trafficlight.example.* from "trafficlight.example.room"
+
+ ActorInstanceConfig LSTraffic/main/application/light1{
+ Attr ipConfig{
+ Attr IPAddr="127.0.0.1"
+ Attr TcpPort=4441
+ }
+ }
+
+ ActorInstanceConfig LSTraffic/main/application/light2 {
+ Attr ipConfig{
+ Attr IPAddr="127.0.0.1"
+ Attr TcpPort=4442
+ }
+ }
+
+}
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etmap b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etmap
new file mode 100644
index 0000000..b767439
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etmap
@@ -0,0 +1,17 @@
+MappingModel MappingModel1 {
+
+ import trafficlight.example.* from "trafficlight.example.room"
+ import PhysicalModel1.* from "trafficlight.example.etphys"
+
+ Mapping cGenRef.LS -> cGenRef.Sys {
+ SubSystemMapping sys1 -> node1 {
+ ThreadMapping dflt_thread -> PhysicalThread1
+ ThreadMapping other_thread -> PhysicalThread1
+ //ThreadMapping other_thread -> PhysicalThread2
+ }
+// SubSystemMapping sys2 -> node2 {
+// ThreadMapping dflt_thread -> PhysicalThread1
+// ThreadMapping other_thread -> PhysicalThread2
+// }
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etphys b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etphys
new file mode 100644
index 0000000..a78e6e2
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.etphys
@@ -0,0 +1,23 @@
+PhysicalModel PhysicalModel1 {
+ PhysicalSystem PhysSys1 {
+ NodeRef node1 : NodeClass1
+ }
+
+ NodeClass NodeClass1 {
+ runtime = RuntimeClass1
+ priomin = -10
+ priomax = 10
+
+ DefaultThread PhysicalThread1 {
+ execmode = blocked
+ prio = 0
+ stacksize = 1024
+ msgblocksize = 32
+ msgpoolsize = 10
+ }
+ }
+
+ RuntimeClass RuntimeClass1 {
+ model = multiThreaded
+ }
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.room b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.room
new file mode 100644
index 0000000..1b69d6c
--- /dev/null
+++ b/examples/org.eclipse.etrice.tutorials.simulators.trafficlight.example/model/scratch/trafficlight/trafficlight.example.room
@@ -0,0 +1,318 @@
+/*******************************************************************************
+ * Copyright (c) 2012 protos software gmbh (http://www.protos.de).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * CONTRIBUTORS:
+ * Thomas Schuetz (initial contribution)
+ *
+ *******************************************************************************/
+
+
+RoomModel trafficlight.example {
+
+ import room.basic.types.* from "../../../org.eclipse.etrice.modellib.c/model/Types.room"
+
+ import room.basic.service.timing.* from "../../../org.eclipse.etrice.modellib.c/model/TimingService.room"
+
+ import room.basic.service.tcp.* from "../../../org.eclipse.etrice.modellib.c/model/TcpService.room"
+
+ LogicalSystem LSTraffic {
+ SubSystemRef main: SSTraffic
+ }
+
+ SubSystemClass SSTraffic ["Subsystem of Trafficlight Example Application. The Subsystem contains all Actors of the application."] {
+ ActorRef application: TrafficlightExampleApplication ["reference to application"]
+ ActorRef TimingService: ATimingService ["reference to timing service"]
+ LayerConnection ref application satisfied_by TimingService.timer
+
+ LogicalThread dflt_thread
+ }
+
+ ActorClass TrafficlightExampleApplication ["Toplevel Actor of the Trafficlight Example Application."]{
+ Structure {
+
+ ActorRef light1: TrafficLight ["first traffic light"]
+ ActorRef light2: TrafficLight ["second traffic light"]
+ ActorRef controller: TrafficController ["controller for coordination of the traffic lights"]
+ Binding controller.light1 and light1.controller
+ Binding controller.light2 and light2.controller
+ }
+ Behavior { }
+ }
+
+ ActorClass TrafficController ["The TrafficController coordinates two traffic lights (directions)."] {
+ Interface {
+ conjugated Port light1: PTrafficLight ["port to control traffic light 1"]
+ conjugated Port light2: PTrafficLight ["port to control traffic light 2"]
+ }
+ Structure {
+ usercode1 {
+ "#include \"platform/etTcpSockets.h\""
+ }
+ external Port light1
+ external Port light2
+ SAP timeout: PTimer
+ }
+ Behavior {
+ Operation TrafficController() {
+ "etInitSockets();"
+ }
+ Operation ~TrafficController() {
+ "etCleanupSockets();"
+ }
+ StateMachine {
+ Transition init: initial -> Idle { }
+ Transition tr0: Idle -> SwitchToLight1GreenForCars {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr1: SwitchToLight1GreenForCars -> state0 {
+ triggers {
+ <greenForCarDone: light1>
+ }
+ }
+ Transition tr2: SwitchToLight1GreenForCars -> state1 {
+ triggers {
+ <greenForPedDone: light2>
+ }
+ }
+ Transition tr3: state1 -> Light1GreenForCars {
+ triggers {
+ <greenForCarDone: light1>
+ }
+ }
+ Transition tr4: state0 -> Light1GreenForCars {
+ triggers {
+ <greenForPedDone: light2>
+ }
+ }
+ Transition tr5: Light1GreenForCars -> SwitchToLight2GreenForCars {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr6: SwitchToLight2GreenForCars -> state2 {
+ triggers {
+ <greenForPedDone: light1>
+ }
+ }
+ Transition tr7: SwitchToLight2GreenForCars -> state3 {
+ triggers {
+ <greenForCarDone: light2>
+ }
+ }
+ Transition tr8: state2 -> Light2GreenForCars {
+ triggers {
+ <greenForCarDone: light2>
+ }
+ }
+ Transition tr9: state3 -> Light2GreenForCars {
+ triggers {
+ <greenForPedDone: light1>
+ }
+ }
+ Transition tr10: Light2GreenForCars -> SwitchToLight1GreenForCars {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ State Idle {
+ entry {
+ "timeout.startTimeout(3000);"
+ }
+ }
+ State Light1GreenForCars {
+ entry {
+ "timeout.startTimeout(10000);"
+ }
+ }
+ State SwitchToLight1GreenForCars {
+ entry {
+ "light1.greenForCar();"
+ "light2.greenForPed();"
+ }
+ }
+ State state0
+ State state1
+ State SwitchToLight2GreenForCars {
+ entry {
+ "light1.greenForPed();"
+ "light2.greenForCar();"
+ }
+ }
+ State state2
+ State state3
+ State Light2GreenForCars {
+ entry {
+ "timeout.startTimeout(10000);"
+ }
+ }
+ }
+ }
+ }
+
+ ActorClass TrafficLight ["This Actor is responsible for controlling a single traffic light via socket. It uses a socket client for communication."] {
+ Interface {
+ Port controller: PTrafficLight
+ }
+ Structure {
+ external Port controller
+ conjugated Port tcpCtrl: PTcpControl
+ conjugated Port tcpPayload: PTcpPayload
+ SAP timeout: PTimer
+ SAP blinkerTimeout: PTimer
+ Attribute ipConfig: DTcpControl ["configuration of the IP-port for the communication with the Traffic Light GUI"]
+ ActorRef trafficLightSocket: ATcpClient
+ Binding trafficLightSocket.ControlPort and tcpCtrl
+ Binding trafficLightSocket.PayloadPort and tcpPayload
+ }
+ Behavior {
+ Operation sendString(text: string)["convenience function for sending a string over the socket"] {
+ "
+ static DTcpPayload pl;
+ strcpy(pl.data, text);
+ pl.length = strlen(text);
+ tcpPayload.send(&pl);
+ "
+ }
+ StateMachine {
+ Transition init: initial -> OpenSocket { }
+ Transition tr0: OpenSocket -> tp0 of Off_Blinking {
+ triggers {
+ <established: tcpCtrl>
+ }
+ }
+ Transition tr2: Off_Blinking -> PedRed {
+ triggers {
+ <greenForCar: controller>
+ }
+ }
+ Transition tr3: PedRed -> CarYellow {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr1: CarYellow -> CarGreen {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr4: Off_Blinking -> CarYellow2 {
+ triggers {
+ <greenForPed: controller>
+ }
+ }
+ Transition tr5: CarYellow2 -> CarRed {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr6: CarRed -> PedGreen {
+ triggers {
+ <timeout: timeout>
+ }
+ }
+ Transition tr7: PedGreen -> PedRed {
+ triggers {
+ <greenForCar: controller>
+ }
+ }
+ Transition tr8: CarGreen -> CarYellow2 {
+ triggers {
+ <greenForPed: controller>
+ }
+ }
+ State OpenSocket {
+ entry {
+ "tcpCtrl.open(&(ipConfig));"
+ }
+ }
+ State CarYellow {
+ entry {
+ "sendString(\"carLights=yellow\\n\");"
+ "timeout.startTimeout(1000);"
+ }
+ }
+ State PedRed {
+ entry {
+ "sendString(\"pedLights=red\\n\");"
+ "sendString(\"carLights=red\\n\");"
+ "timeout.startTimeout(1000);"
+ }
+ }
+ State CarGreen {
+ entry {
+ "sendString(\"carLights=green\\n\");"
+ "controller.greenForCarDone();"
+ }
+ }
+ State Off_Blinking {
+ subgraph {
+ Transition tr0: my tp0 -> On
+ Transition tr1: On -> Off {
+ triggers {
+ <timeout: blinkerTimeout>
+ }
+ }
+ Transition tr2: Off -> On {
+ triggers {
+ <timeout: blinkerTimeout>
+ }
+ }
+ EntryPoint tp0
+ State On {
+ entry {
+ "sendString(\"carLights=red\\n\");"
+ "sendString(\"pedLights=red\\n\");"
+ "blinkerTimeout.startTimeout(500);"
+ }
+ exit {
+ "sendString(\"carLights=off\\n\");"
+ "sendString(\"pedLights=off\\n\");"
+ }
+ }
+ State Off {
+ entry {
+ "blinkerTimeout.startTimeout(500);"
+ }
+ }
+ }
+ }
+ State CarYellow2 {
+ entry {
+ "sendString(\"carLights=yellow\\n\");"
+ "timeout.startTimeout(1000);"
+ }
+ }
+ State CarRed {
+ entry {
+ "sendString(\"carLights=red\\n\");"
+ "timeout.startTimeout(1000);"
+ }
+ }
+ State PedGreen {
+ entry {
+ "sendString(\"pedLights=green\\n\");"
+ "controller.greenForPedDone();"
+ }
+ }
+ }
+ }
+ }
+
+ ProtocolClass PTrafficLight {
+ incoming {
+ Message greenForCar() ["trigger green for car"]
+ Message greenForPed() ["trigger green for pedestrians"]
+ }
+ outgoing {
+ Message greenForCarDone() ["positive response for greenForCar - is sent when switch is over"]
+ Message greenForPedDone() ["positive response for greenForPed - is sent when switch is over"]
+ }
+ }
+
+} \ No newline at end of file