Generate production quality code from state diagrams created with Eclipse Papyrus™

SinelaboreRT generates readable and maintainable code from hierarchical UML state machines created with Eclipse Papyrus™. With its unique features SinelaboreRT covers well the requirements of embedded real-time and low power application developers. With its other language backends it is also a perfect tool for developers of server or desktop applications.

Key Features:

Automated robustness checks before code generation

No run-time environment needed

Can be used with any CPU and with or without OS/RTOS

Code generation especially for embedded real-time and high availability systems.

Fits well in different system designs (foreground/background, RTOS-based …)

No gap between design and code

Support for automatic test-case generation

Simulation in interactive or batch mode.

Optionally generating trace code

Generated code creates no trouble when using static code checkers

Supported State Machine Elements

The code-generator supports a subset of the design elements provided by Eclipse Papyrus. The supported elements are:

Hierarchical states

(Signal-)Events with event name, guard and action – Initial and final pseudo-states

History states (deep, flat)

Choices

Junctions

Constraints

Regions

In addition methods defined in the class are added to the generated state machine header. And attributes are added to the state machine instance data.

How to get started ?

Watch this Youtube video to get a QuickStart in generating C-code from Eclipse Papyrus™ state machine diagrams.

Download the code generator and use the Papyrus microwave example in the examples folder. It shows a fully functional example of a microwave simulation in C. Make changes in the model, re-create the state machine code and then compile/run the example again. This is the fastest way to learn how to use the code generator.

How to

Opaque Behaviour is not shown in the state diagram inside the states

Check in “Preferences → Papyrus → Diagrams → PapyrusUMLStateMachineDiagram Diagram → Transition and behaviour options” that Show number of lines for opaque expressions/behaviour has a value > 0.

How do I create an inner transition in a state

Create a self transition and set the kind property in the transition property dialog to internal.