blob: da3384e84dc3c29f0dcfe57a1ff1a87ffb61ab61 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
RoomModel Blinky {
import room.basic.service.timing.* from "../../../org.eclipse.etrice.modellib/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
LayerConnection ref application satisfied_by timingService.timeout
}
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: PTimeout
}
Behavior {
Operation destroyUser() {
"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 {
<timeoutTick: timer>
}
}
Transition tr2: off -> on {
triggers {
<timeoutTick: timer>
}
}
Transition init: initial -> on { }
EntryPoint tp0
State on {
entry {
"timer.Start(1000);"
"carLights.setState(TrafficLight3.YELLOW);"
}
}
State off {
entry {
"timer.Start(1000);"
"carLights.setState(TrafficLight3.OFF);"
}
}
}
}
}
}
}
ActorClass BlinkyController {
Interface {
conjugated Port ControlPort: BlinkyControlProtocoll
}
Structure {
external Port ControlPort
SAP timer: PTimeout
}
Behavior {
StateMachine {
Transition init: initial -> on {
action {
"timer.Start(5000);"
"ControlPort.start();"
}
}
Transition goOff: on -> off {
triggers {
<timeoutTick: timer>
}
action {
"ControlPort.stop();"
"timer.Start(5000);"
}
}
Transition goOn: off -> on {
triggers {
<timeoutTick: timer>
}
action {
"ControlPort.start();"
"timer.Start(5000);"
}
}
State on
State off { }
}
}
}
ProtocolClass BlinkyControlProtocoll {
incoming {
Message start()
Message stop()
}
outgoing { }
}
}
|