Show last authors
1 |=(((
2
3 )))|=(((
4 KIELER SyncCharts
5 )))|=(((
6 YAKINDU SCT
7 )))|=(((
8
9 )))
10 |(% colspan="1" %)(% colspan="1" %)
11 (((
12 **Declarations**
13 )))|(% colspan="1" %)(% colspan="1" %)
14 (((
15 **Pure Signals**: signals have a present status:
16
17 * absent or present
18 * must be set for input signals
19 * computed for local and output signals:\\
20 ** for each tick absent by default unless signal is emitted
21 * Example:\\
22 ** Emit signal S: S
23 ** Test for presence: S
24
25 **Valued Signals**:
26
27 * are pure signals than additionally are able to store a value
28 * values are persistent across ticks
29 * Example:
30 ** Emit signal V with value 3: V(3)
31 ** Test for presence: V
32 ** Get the last emitted value of V: ?V
33 \\
34
35 (% style="color: rgb(0,0,0);" %)**Variables: **
36
37 * (% style="color: rgb(0,0,0);" %)Are not(%%) shared between concurrent regions
38 * Currently implemented by host type  variables
39 )))|(% colspan="1" %)(% colspan="1" %)
40 (((
41 **Events**:
42
43 * (% style="color: rgb(0,0,0);" %)interface scope: events can either be ingoing (in event event)(%%)
44 (% style="color: rgb(0,0,0);" %)or outgoing (out event event).
45 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)local scope: events are able to store a value.{{code language="none"}}internal: event localEvent : bool{{/code}}(%%)
46
47 {{{}}}
48
49 (% style="color: rgb(0,0,0);" %)**Variables:**
50
51 * variable:{{code language="none"}}var variable: string{{/code}}
52
53 {{{}}}(% style="color: rgb(0,0,0);" %)** **
54 * read-only variable:{{code language="none"}}var readonly size: int = 10 {{/code}}
55
56 {{{}}}
57 * external variable: can be referenced by the environment
58 (% style="color: rgb(0,0,255);" %)Q: Wo werden diese sichtbar? {{code language="none"}}var external variable: int = 44{{/code}}(%%)
59
60 {{{}}}
61 )))|(% colspan="1" %)(% colspan="1" %)
62 (((
63
64 )))
65 |(((
66 **Types**
67 )))|(((
68 * **int**
69 * **bool**
70 * **string**
71 \\
72 * **pure**: only makes sense for Signals. Signals are absent or present.
73 * **unsigned**
74 * **float**
75 * **double**
76 * **host: **no actual type is given. The given type in the hostType attribute is used.
77 )))|(((
78 * **integer**
79 * **boolean **
80 * **string**
81 \\
82 * **real**
83 * **void**
84 (% style="color: rgb(0,0,255);" %)Q: Wird das Metamodell/Typsystem in Zukunft
85 {{code language="none"}}{{/code}}(%%)
86
87 {{{}}}(% style="color: rgb(0,0,255);" %) noch weitere Typen bereitstellen?{{code language="none"}}{{/code}}(%%)
88
89 {{{}}}
90 )))|(((
91
92 )))
93 |(((
94 **Expressions**
95 )))|(((
96 * **Logical AND:** var1 && var2
97 * **Logical OR:** var1 || var2
98 * **Logical NOT:** !var1
99
100
101 {{{(A and B) or ((not C) and D) }}}
102 )))|(((
103 * **Logical AND:** var1 && var2
104 * **Logical OR:** var1 || var2
105 * **Logical NOT:** !var1
106 * **Conditional Expression:** var1 ? var2 : var3
107 (% style="color: rgb(0,0,255);" %)Q: Eventuell problematisch?{{code language="none"}}{{/code}}(%%)
108
109 {{{}}}
110 )))|(((
111
112 )))
113 |(((
114 **Operations**
115 )))|(((
116 * **Equal**: '='
117 * (% style="color: rgb(0,0,0);" %)**Less Than**(%%)**: '**<'
118 * (% style="color: rgb(0,0,0);" %)**Equal Or Less Than**(%%)**: '**<='
119 * (% style="color: rgb(0,0,0);" %)**Greater Than**(%%)**:** '>'
120 * (% style="color: rgb(0,0,0);" %)**Equal Or Greater Than**(%%)**:** '>='
121 * **NOT: '**!='
122 * **Add**: '+'
123 * **Minus** : '-'
124 * **Multiply**: '*'
125 * **Divide**: '/'
126 * **Modulo**: 'mod'
127 \\
128 * **Value**: '?'
129
130 {{{?B = 3}}}
131 * **PRE**: 'pre':
132
133 {{{pre(S):gives the presence status of S at}}}
134
135 {{{the previous tick. }}}
136
137 {{{pre(?S):returns the value of S at the}}}
138
139 {{{previous tick.}}}
140 * **NE**: '<>'
141 )))|(((
142 * **Equal**: '=='
143 * **less than:** '<'
144 * **Equal Or Less Than**: '<='
145 * **Greater Than**: '>'
146 * **Equal Or Greater Than** '>='
147 * **Not Equal:** '!='
148 * **Plus:** '+'
149 * **Minus:** '-'
150 * **Multiply:** '*'
151 * **Divide:** '/'
152 * **Modulo:** '%'
153 \\
154 * **Shift Left**: '<<'
155 * **Shift Right**: '>>'
156 * **Positive: '**+'
157 * **Negative: '**-'
158 * **Complement: **'~~'
159 )))|(((
160
161 )))
162 |(% colspan="1" %)(% colspan="1" %)
163 (((
164 **Trigger**
165 )))|(% colspan="1" %)(% colspan="1" %)
166 (((
167 * Simple signal reference: I / O
168 * Boolean expression: 
169
170 {{{(A and B) or ((not C) and D)}}}
171 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Valued Signals and Variables can be used in conditions in these boolean expressions(% style="color: rgb(0,0,0);" %)
172
173 {{{variable &#x3e; 1}}}
174
175 {{{?A = 1}}}
176 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Comparison(% style="color: rgb(0,0,0);" %)
177
178 {{{?A &#x3e; (variable + 1)}}}
179
180 {{{A and (3 &#x3e; ?B) or ((var5 + 2) = 6)}}}
181 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Pre
182
183 {{{A and pre(B)}}}
184
185 {{{3 &#x3c; pre(?A)}}}
186 * (((
187 Immediate, #S: the trigger is satisfied as soon as the state is entered..
188 )))
189 * (((
190 Count Delays, 3 S
191
192 {{{ }}}
193 )))
194 * (((
195 Time in SyncCharts: Multiform notion of time,
196 e.g., signal SECOND appears every second (depending on the physical tick length).
197
198
199 )))
200 )))|(% colspan="1" %)(% colspan="1" %)
201 (((
202 * **event:**
203 {{code language="none"}}I / raise O{{/code}}
204
205 {{{}}}
206 * **after**:{{code language="none"}}after 20 s{{/code}}
207
208 {{{}}}
209 * **every**{{code language="none"}}every 200 ms{{/code}}
210
211 {{{}}}
212 * **always: **
213 (% style="color: rgb(0,0,0);" %)enables a reaction to be executed in every run to completion step
214 * (% style="color: rgb(0,0,0);" %)**default: **(%%)
215 (% style="color: rgb(0,0,0);" %)enables a reaction to be executed in every run to completion step
216 * (% style="color: rgb(0,0,0);" %)**else**: (%%)
217 (% style="color: rgb(0,0,0);" %)used in transitions and implies the lowest evaluation priority for that transition.
218 * (% style="color: rgb(0,0,0);" %)**entry**
219 * (% style="color: rgb(0,0,0);" %)**exit**
220 * (% style="color: rgb(0,0,0);" %)**oncycle**(%%) 
221 {{code language="none"}}{{/code}}
222
223 {{{}}}
224 )))|(% colspan="1" %)(% colspan="1" %)
225 (((
226
227 )))
228 |(% colspan="1" %)(% colspan="1" %)
229 (((
230 **Effects**
231 )))|(% colspan="1" %)(% colspan="1" %)
232 (((
233 * Emission of a simple signal
234
235 {{{/ A}}}
236 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Emission of value of a valued Signal
237
238 {{{/ A(3)}}}
239 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Assignment of a variable(% style="color: rgb(0,0,0);" %)
240
241 {{{/ varA := 42}}}
242 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)Multiple effects get comma- or whitespace separated(% style="color: rgb(0,0,0);" %)
243
244 {{{/ A, B, C(25), varA := 2}}}
245 * (% style="color: rgb(0, 0, 0); color: rgb(0, 0, 0); color: rgb(0, 0, 0)" %)New values may use value expressions as explained above
246
247 {{{/ A(3 + pre(?B)), varC := (varD + 1)}}}
248 )))|(% colspan="1" %)(% colspan="1" %)
249 (((
250 * **Assignment of a variable:** S / varA = 5
251 * **raise** myvar
252 * **myvar = valueof(event)**: (% style="color: rgb(0,0,0);" %)Returns the value of an valued event(%%)
253 (% style="color: rgb(0,0,0);" %) that it passed to the function as parameter.
254 * **mybool = active(StateA)**: (% style="color: rgb(0,0,0);" %)Returns „true” if a state is active or „false” otherwise.
255 )))|(% colspan="1" %)(% colspan="1" %)
256 (((
257
258 )))
259
260
261 \\