| | | |
---|
| Pure Signals: signals have a present status: - absent or present
- must be set for input signals
- computed for local and output signals:
- for each tick absent by default unless signal is emitted
- Example:
- Emit signal S: S
- Test for presence: S
Valued Signals: - are pure signals than additionally are able to store a value
- values are persistent across ticks
- Example:
- Emit signal V with value 3: V(3)
- Test for presence: V
- Get the last emitted value of V: ?V
Variables: - Are not shared between concurrent regions
- Currently implemented by host type variables
| Events: - interface scope: events can either be ingoing (in event event)
or outgoing (out event event). - local scope: events are able to store a value.internal: event localEvent : bool
Variables: - variable:var variable: string
- read-only variable:var readonly size: int = 10
- external variable: can be referenced by the environment
var external variable: int = 44External variables are not used at the moment.
| |
| - int
- bool
- string
- pure: only makes sense for Signals. Signals are absent or present.
- unsigned
- float
- double
- host: no actual type is given. The given type in the hostType attribute is used.
| - integer
- boolean
- string
- real
- void
New types are going to be added. A type system abstraction is present.
| |
| - Logical AND: var1 && var2
- Logical OR: var1 || var2
- Logical NOT: !var1
(A and B) or ((not C) and D) | - Logical AND: var1 && var2
- Logical OR: var1 || var2
- Logical NOT: !var1
- Conditional Expression: var1 ? var2 : var3
| |
| - Equal: '='
- Less Than: '<'
- Equal Or Less Than: '<='
- Greater Than: '>'
- Equal Or Greater Than: '>='
- NOT: '!='
- Add: '+'
- Minus : '-'
- Multiply: '*'
- Divide: '/'
- Modulo: 'mod'
- Value: '?'
?B = 3 pre(S):gives the presence status of S at the previous tick. pre(?S):returns the value of S at the previous tick. | - Equal: '=='
- less than: '<'
- Equal Or Less Than: '<='
- Greater Than: '>'
- Equal Or Greater Than '>='
- Not Equal: '!='
- Plus: '+'
- Minus: '-'
- Multiply: '*'
- Divide: '/'
- Modulo: '%'
- valueof()
- Shift Left: '<<'
- Shift Right: '>>'
- Positive: '+'
- Negative: '-'
- Complement: '~'
| |
| - Simple signal reference: I / O
- Boolean expression:
(A and B) or ((not C) and D) - Valued Signals and Variables can be used in conditions in these boolean expressions
variable > 1 ?A = 1 ?A > (variable + 1) A and (3 > ?B) or ((var5 + 2) = 6) A and pre(B) 3 < pre(?A) Immediate, #S: the trigger is satisfied as soon as the state is entered.. Time in SyncCharts: Multiform notion of time, e.g., signal SECOND appears every second (depending on the physical tick length).
| - always:
enables a reaction to be executed in every run to completion step - default:
enables a reaction to be executed in every run to completion step - else:
used in transitions and implies the lowest evaluation priority for that transition. - entry
- exit
- oncycle
| |
| - Emission of a simple signal
/ A - Emission of value of a valued Signal
/ A(3) / varA := 42 - Multiple effects get comma- or whitespace separated
/ A, B, C(25), varA := 2 - New values may use value expressions as explained above
/ A(3 + pre(?B)), varC := (varD + 1) | - Assignment of a variable: S / varA = 5
- raise myvar
- myvar = valueof(event): Returns the value of an valued event
that it passed to the function as parameter. - mybool = active(StateA): Returns „true” if a state is active or „false” otherwise.
| |