In total, 54 bugs have been fixed and a lot of feature requests have been implemented. You can find a complete list of all fixed issues here. We also did some major refactoring "under the hood" as preliminary work for the upcoming YAKINDU Statechart Tools Professional Edition.
Let's have a look what's new and noteworthy.
Extended Documentation and Tutorials
The new product bundle is shipped with a welcome page for easy access to example projects and tutorials.
This is especially useful for statechart tool beginners that do not have experience with Eclipse yet. We also added some new examples that demonstrate the different features of YAKINDU Statechart Tools.
We extended our expression language to allow the definition of constant values. Instead of using the 'var' keyword you can now use the 'const' keyword to define constant values. All code generators are adapted to generate constant definitions.
With the release of YAKINDU Statechart Tools 2.5.0 we added task markers to the expression language. By default you will get markers for TODO and FIXME in single and multiline comments. These tags will also be highlighted and tasks will appear in the tasks view.
You can open the view via Window -> Show View -> Tasks.
Enhanced Source Code Generation
The quality of the generated source code has been further improved towards a MISRA compatible c code generation. The following issues have been fixed:
generated functions have a single return point (MISRA-C:2004 Rule 14.07).
query functions have constant pointers (MISRA-C:2004 Rule 16-07).
control statements are enclosed with braces (MISRA-C:2004 Rule 14.09).
single line comments replaced with multi line comments (MISRA-C:2004 Rule 02.02 for C99).
Runnable Wrapper for the Java state machine
The GeneratorModel for Java Statemachines contains a new optional feature for a runnable wrapper class now. It can be configured like this:
The additional generated Java class provides a thread-safe wrapper for the generated state machine implementation. In addition to the specific state machine interface it implements the Runnable interface and can be executed in a thread. It implements an event queue and event-driven execution semantics. As the wrapper adds thread safety any number of client threads may call the state machine.
Improved simulation and sub diagram highlighting
The highlighting support that is used during simulation to highlight active states and transitions was reworked to improve performance when simulating large statecharts.
Subdiagrams are highlighted in the image tooltip on the subdiagram icon as well as in the editor when diving into the sub diagram.