Sinelabore Homepage

📰 News#

Latest updates from Sinelabore, including releases, improvements, and announcements.

New version 7.1

Update for SysML v2. This version improves code generation and adds support for more SysML v2 features. For example, actions are now treated as first-class SysML v2 features and represented as structs in the generated code instead of methods. Check out the GitHub examples for …

New version 7.0

SysML v2 is here and marks a major leap forward in systems modeling. Version 7.0 supports generation of CPPX code from a SysML v2 textual model. With a small framework, the generated parts and state machine code can be executed and tested easily.

New version 6.5.1

In addition to several improvements, support for additional command-line parameters when using -l cppx was added. You can now optionally specify -std to enable all necessary parameters for language features in version 11 or 14, which simplifies configuration for new users.

New version 6.5.2

This version is recommended for all users. Core modules were refactored for better maintainability and consistency, test coverage was improved, and CPPX code generation was updated to avoid unnecessary dynamic memory allocations.

New version 6.4

Since version 6.4, history state handling has changed. Transitions can now end in a history state, and only then the previous history is considered when entering the state set; otherwise, the default entry chain is used. The new TransitionsCanEndInHistoryStates parameter enables …

New version 6.3.4

This release adds another way to influence the signature of the processEvent() method in C++.

New version 6.3.3

This version includes small updates for the Python backend and fixes an issue in the C# backend.

New version 6.3.2.1

Bugfix in the C++ backend relevant for users with state machines that have regions and do not want event handler parameters. In the previous version, a msg parameter was incorrectly generated for the region handler code. This is now corrected.

New version 6.3.2

A state machine with regions can be in more than one state at a time. Previously, getInnermostActiveState() returned only the topmost active state. With this release, selected backends can return multiple active states to better reflect runtime behavior. JS backend improvements: …

New version 6.3

JavaScript is now supported as a new target language for the code generator.

New version 6.2

Go is now supported as a new target language for the code generator.

New version 6.1

Changes: Bugfixes and improvements in the built-in state diagram editor Use of a project-specific configuration file in the graphical editor New C-backend parameters to generate code following the opaque object pattern to hide state machine implementation details and reduce …

New version 6.0.4

Small bug fixes and several improvements in the built-in graphical state diagram editor.

New version 6.0.3

Only available as JAR download. This release includes small bug fixes in the built-in graphical editor and improvements in the C backend, with better support for strict C89 compilers.

New version 6.0.2

Several minor improvements, especially for the C++ backend. New configuration parameters help generated code pass clang-tidy checks for C++11 with modernize-* checks enabled. A new example was added to show sensible parameter settings.

New version 6.0

This major release fixes many small issues and adds support for generating code from Eclipse Papyrus. A step-by-step introduction video is available: YouTube.

New version 5.5.6.3515

This version fixes a bug in config file handling and is recommended for all users.

New version 5.5.6.3490

This version adds many small improvements to the integrated state diagram editor, including improved layout, larger configurable default font, better config file search behavior, improved error marker display, and optional use of codegen.cf as config filename.

New version 5.5.5.1

This version fixes several issues related to MISRA 2012 rules and includes recommended parameter settings for static code checkers. Recommended for all C/C++ users.

New version 5.5.5

This version improves region handling for custom instance data types and is a recommended update for C backend users. It also improves XMI parsing of attributes and methods across supported UML tools.

New version 5.5.4

This version adds C++ template parameters for the event handler method and support for a user-defined event handler parameter in C#, increasing flexibility when passing data with events.

New version 5.5.2

This version allows attributes and operations in EA/UModel class diagrams to be included in generated code. It also introduces a new dialog in the built-in editor (C backend) showing configuration parameters and their impact on generated handler signatures.

New version 5.4.1

New Windows/Mac installer (thanks to Java 17) simplifies setup for users less comfortable with command-line workflows. The C++ backend now also supports the ValidationCall parameter.

New version 5.3

Several usability improvements, bug fixes, and new functions, especially in the built-in editor. Recommended for all users. A detailed changelog is available in the code generator manual.

New version 5.2

The built-in editor was completely rewritten to make state diagram creation faster. It now provides full support for regions.

New version 4.1

This release introduces a Lua backend and provides UML state machine code generation for Lua. It follows the approach described by Roberto Ierusalimschy and includes additional background information in the documentation.

New version 3.7.4

This bug-fix release is recommended for all users. For Cadifra users, connection points were added to improve readability in complex diagrams.

New example for PIC users

This tutorial explains how to use state machines with the PIC16F18446 Curiosity Nano board. Read more: /docs/examples/pic_tutorial/.

Sparx new EA version

Tests with Enterprise Architect version 13 were successful. If you find issues while using code generation with that version, please send a bug report.

QuickStart tutorial for Energia on GitHub

A new GitHub example shows how to integrate generated Sinelabore code into the Energia IDE for TI processors. The demo controls LED flash frequency on the MSP430FR5969 LaunchPad and demonstrates the benefits of state machine modeling. See the examples: GitHub.

Generate Python Code from State Diagrams

With version 3.7 it is now possible to generate Python code. State machine code is generated as a Python class with full support for relevant state machine features. A working microwave oven example is included.