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.


Generated code: 
oven.c, oven.h 
oven.cpp, oven.h  
oven.java


Key Features:

  1. -Automatic generation of production-quality code

  2. -Automated robustness checks before code generation

  3. -No run-time environment needed

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

  5. -Code generation especially for embedded real-time systems

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

  7. -No gap between design and code

  8. -Supported tools: Cadifra UML Editor, UModel, Magic Draw, Enterprise Architect, SSC, ArgoUML, astah* and Visual Paradigm

  9. -Integrated editor with auto-layout for fastest state machine creation!

  10. -Support for automatic test-case generation

  11. -Simulation in interactive or batch mode.

  12. -Optionally generating trace code

  13. -Extensive manual with getting started section

 

Navigation

  1.   Features

  2.   Downloads (Latest is 2.7)

  3.   Purchase

  4.   Contact

  5.   Deutsch


Examples

  1. Bullet PLCOpen Function Block

  2. Bullet DCF77 Radio-Clock Decoder

  3. Bullet A Truck’s Freight Ramp

  4. Bullet Car Window Lift Controller

  5. Bullet Mobile Robot Programming II

  6. Bullet Pump Controller

  7. Bullet CANopen NMT machine
        

Designers Toolbox

  1. BulletModel-based testing of state machines I New!

  2. BulletModel-based testing of state machines II New!

  3. BulletUsing State-Machines with a Real-Time Operating System (RTOS)

  4. BulletGenerate efficient state
    charts
    in C

  5. BulletWhat every embedded software engineer should know about state diagrams

  6. Bullet Video Tutorial

  7. Bullet ArgoUML How-To

  8. Bullet Enterprise Architect How-To

  9. Bullet Why to avoid concurrent regions?




Model-based testing of state machines

Mode-based testing usually means that test cases and other required data (e.g. test stimuli or expected test outputs) are derived automatically from the state machine model.
Read more on how the SinelaboreRT code generator helps you in testing your state machines here ...


Integrated state-chart editor with auto-layout.

Focus on modeling and not on moving states around to create a nice looking diagram! Syntax aware text fields offer a comfortable way to specify actions, guards etc. When the diagram passed the model checker it can be directly simulated. Connect the diagram to the real hardware to monitor the state machine in action.
Read more ...


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

In the past different uC manufacturers have published application notes about the benefit of using state machines for the design of embedded software. An example is  the application note SLAA402 from TI. It suggests to generate source code based on a spread sheet table. Nowadays several affordable UML modeling tools are available supporting the efficient design of state machines in a graphical way. SinelaboreRT generates production quality source code from state diagrams created with many different UML tools. Give it a try!


Just state diagrams -
yes of course!

State diagrams are, without question, a good choice for the design and implementation of embedded devices. This is because embedded devices usually react to some kind of stimuli that then leads to an action and, eventually, to a change of state. Therefore state diagrams are the key UML diagram for embedded developers!

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.

Therefore SinelaboreRT focusses on code generation from state diagrams. There are many more arguments to use state diagrams in your design. Interested? Read more in this
short article.



 
 
Blog Summary Widget
New: Automatic
 Testcase
Generation!

News

3.1.2012  | Version 2.7

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 ...


6.10.2011  | Version 2.5: New features make testing
    of state machines more efficient.

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


06.10.2011  | Model-based testing of state machines part II

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 ...


23.08.2011  | Model-based testing of state machines  part I

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 ...


04.07.2011  | Visual Paradigm support added 

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


30.06.2011  | New Enterprise Architect How-To  

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


23.05.2011  | Version 2.40 released  

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 ...


19.02.2011  |  Generate code from astah*  

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


12.01.2011  |  Version 2.25 released  

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


28.11.2010  |  Design Article on Embedded.com  

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 ...


28.11.2010  | New C++ backend  

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 ...


06.11.2010 | Support for Java added  

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 ...


23.10.2010 | Automatic Light Controller example  

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 ...


28.09.2010  |  Low-cost cooperative multitasking - Building a simple FM player 

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


08.04.2010  |  New Example: CANopen NMT State Machine 

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 ...


06.03.2010  |  ArgoUML is supported now

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.


27.11.2009  |  Using State-Machines with a Real-Time Operating System (RTOS) 

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 ...



Go to the archive













Copyright © 2008 - 2012 Peter Mueller. All Rights reserved. See Trademarks and Terms of Use.