This repository contains a C# library that parses the XMI artifacts delivered by the EULYNX consortium and creates self-contained C code for each class with an associated state machine.
| EULYNX Baseline | Generated C Code | Translation Report |
|---|---|---|
| Baseline 4 Release 1 | Link | Link |
| Baseline 4 Release 2 | Link | Link |
| Baseline 4 Release 3 | Link | Link |
For EULYNX Baseline 4 Release 4, no XMI export is available from EULYNX.
A small, self-contained example exists for how to compose a complete subsystem point implementation from the individual classes (SubsystemPoint).
Symbolic execution is a static analysis technique that traces all possible execution paths through a program given a range of possible inputs. An example illustrates how to use the KLEE symbolic execution framework to assert that a change in detected point position is signalled to the connected Subsystem Electronic Interlocking within at most three execution cycles by the Subsystem Point (ResponseDelayAnalysis). Another example investigates if overlapping state machine transition triggers exist in the Subsystem Point implementation (UniqueTransitionsAnalysis).
The transformation library contains several model-specific workarounds, which can be disabled by a compiler define (DISABLE_HACKS).