Use state charts to model behavior!
No gap between design and code!
Use state charts to model behavior!
No gap between design and code!
SinelaboreRT - Generate efficient source code from UML state diagrams!
SinelaboreRT was built especially for embedded software developers. It focuses on just one task: Generation of readable and maintainable code from hierarchical UML state machines. With its unique features the tool covers well the requirements of embedded real-time and low power application developers. With its new C++, Java and C# backend it is also a perfect tool for developers of server or desktop applications.
How does it work?
From various UML tools your state-machine model can be directly converted into the selected target language. You can widely influence the generation process according to your needs. Take a look into the state machine code generated from the simple machine shown below.

Key Features:
-Automatic generation of production-quality code
-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 systems
-Fits well in different system designs
(foreground/background, RTOS-based ...)
-No gap between design and code
-Supported tools: Cadifra UML Editor, UModel, Magic Draw, Enterprise Architect, SSC, ArgoUML, astah* and Visual Paradigm
-Integrated editor with auto-layout for fastest state machine creation!
-Support for automatic test-case generation
-Simulation in interactive or batch mode.
-Optionally generating trace code
-Extensive manual with getting started section
Navigation

Designers Toolbox
Using State-Machines with a Real-Time Operating System (RTOS)
What every embedded software engineer should know about state diagrams

Model-based testing of state machines


Integrated state-chart editor with auto-layout.



There are better ways to model state machines than using spread sheets!

Just state diagrams -
yes of course!

Some tools force you to use a specific framework as an additional layer to run their code (e.g. on top of an RTOS). Not SinelaboreRT. The generated code does not require a specific run-time framework. We believe you know best how your sub-systems should interact. Eventually required glue code like event signaling etc. is in your hand, so you can choose if you use RTOS events, messages, global flags or what is appropriate in your system!
In opposite, class diagrams only allow to model the static structure of a system. And usually just headers and method-bodies can be generated from them.

News

Version 2.7 of sinelaboreRT extends the test case generation features using a breadth first search algorithm and makes the specification of multiline state action code in EA easier. Furthermore it adds support for sub-machine states in Enterprise Architect models. Read more ...

Version 2.5 of sinelaboreRT adds some features important for the efficient testing of state-based code . Read more ...

The second article about model based testing explains how SinelaboreRT helps you to visualize state state machine status graphically and display coverage information. Read more ...

This article explains how SinelaboreRT can help you to getting started with model based testing. The basis of all is of course your state machine model. Read more ...

The latests version 2.41 of sinelaboreRT now supports the generation of code from Visual Paradigm for UML. Read more ...

A new EA related How-To page is available here. If you have further hints let us know and we add them.

This version offers several new features. E.g. for high availability applications the sinelaboreRT codegen can support you to detect inconsistencies of the state machine e.g. caused from a runaway pointer. Read more ...

The latest version 2.26 of sinelaboreRT now supports the generation of code from astah* UML state diagram models. Read more ...

This version fixes some usability issues with the integrated state chart editor. Read more ...

There is a new article with the title “Tracing the event of flow” on embedded.com. This time I explain the fundamentals of tracing in state based designs. Read more ...

In version 2.21 a new C++ backend was added. To select this backend call the code generator with the new command line flag ’-l cppx’.
Read more ...

It is now possible to generate Java code from your design. Just one class is created containing the whole logic. This has the benefit that your Java project does not become bloated with all kinds of helper classes.
Read more ...

Everybody knows outdoor automatic light switches. They offer the comfort to automatically switch on/off the outside light. This way they even help to save energy. This example describes a possible state machine of such a device. Read more ...

There is a nice article about designing a simple FM player first reviewing the basics of multitasking, discuss what the traditional approach to multitasking is, and then study the fundamentals of a low-cost alternative using state machines. You can find the article at www.eetimes.com

All CANopen devices must support the CANopen network management (NMT) slave state machine. The NMT state machine defines the communication behavior of the CANopen device. Read more ...

SinelaboreRT now support ArgoUML. ArgoUML is an open source UML modeling tool and includes support for all standard UML 1.4 diagrams. It runs on different Java platform and is available in different languages. See the ArgoUML homepage for more info about the tool. See also our
ArgoUML HowTo page.

This article shows how to use state charts in the context of a real-time operating system like RTEMS, FreeRTOS, VxWorks etc. In this example the WIN32 simulator of embOS from Segger was used. You can build, modify and run the example yourself! Read more ...
Copyright © 2008 - 2012 Peter Mueller. All Rights reserved. See Trademarks and Terms of Use.