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