Browse the whole documentation.
A state machine is a behavior model. It consists of a finite number of states and is therefore also called finite-state machine (FSM). Based on the current state and a given input the machine performs state transitions and produces outputs. There are basic types like Mealy and Moore machines and more complex types like Harel and UML statecharts.
YAKINDU Statechart Tools (YAKINDU SCT) is a modular toolkit for developing, simulating, and generating executable finite-state machines (FSM) or simply state machines.
This chapter gives an overview of the building blocks a statechart consists of and their semantics. It also shows the textual syntax used to express behavior inside the graphical model. If you are new to YAKINDU Statechart Tools, this is a good starting point to learn the main concepts.
This section explains how you can edit statecharts using YAKINDU Statechart Tools.
Simulating a statechart model means to execute it, raise events manually, have time-based and other events being triggered automatically, and observe the model’s behavior.
Ultimately, you will need your state machine not only as a nice graphical statechart model. This chapter explains how to generate it as executable code.
Learn more about test-driven statechart modelling and how to use SCTUnit to develop your statechart model step by step using a test-driven approach.
The YAKINDU Statechart Tools Professional Edition comes with a Deep C/C++ Integration feature, which allows for using C/C++ types, variables, and operations directly within the statechart model. C/C++ header files located in your workspace are automatically recognized by the tool, and all contained type and operation declarations are made accessible in the statechart editor with all its editing features like code completion and validation. In addition to your custom C/C++ types, the C99 standard primitive types, like int16_t, are also available out of the box.
YAKINDU Statechart Tools Professional Edition comes with an SCXML domain which allows to generate SCXML code from your statechart, as well as to simulate and test it in a way that is compliant to the SCXML execution semantics.
The statechart language is used to describe statecharts. It consists both of graphical and of textual elements.
The behavior of large systems is often too complex to be captured by a single statechart. So if a statechart gets too large you should think about splitting it into two or more smaller parts. Beside the fact that the smaller state machines are easier to handle and maintain there are additional reasons for using multiple state machines instead of single monolithic ones:
This chapter demonstrates how to integrate generated C code from YAKINDU Statechart Tools on your device and ends up by referring to according examples for each scenario. State machine code generated by YAKINDU Statechart Tools can effectively be used on embedded systems. The integration contains different parts, but can mostly be described in a generic way, as most steps of the integration are platform independent.
The differences of the integration mostly stem from the selected execution semantics – cycle based or event driven – as well as the used functionalities, such as in, out and timed events. Other best practice implementation patterns can be based on whether a bare metal microcontroller or an operating system is used. So, there are different factors which may have an impact on the integration:
YAKINDU statechart models are executable. There are many use cases that require information about the execution itself. Examples are remote debugging of state machines, execution analysis, testing, co-simulation and others. This information may be provided live during the execution or it could be used post-mortem when the execution of the system already finished. In any case this information must be explicit and it must be possible to store it persistently and provide other tools access to this information.
Researching, prototyping, and putting our ideas into code, aside from the day-to-day business, is an essential part of our development culture. YAKINDU Labs is a collection of projects that are currently in beta phase and therefore not yet released with any YAKINDU product bundles. As we love early feedback, we regularly blog about what’s going on behind the scenes. So try it, and get in touch with us!
In order to start working with YAKINDU Statechart Tools, you have to install the software on your computer. The installation process is pretty simple, just download the archive, unpack it, and start the executable.
Every new version of YAKINDU Statecharts Tools contains a lot of new features and improvements. Since today, every new released version was fully backward compatible to older versions due to careful design.
However, with the new major release of version 4.0, we decided to leave some old perceptions behind. This document will cover all incompatible changes that were introduced from version 3.x to version 4. Read this document carefully to ensure a seamless migration from your existing 3.x models to the latest version 4.0.
A list of new and noteworthy features as well as bugs we have tackled down in the particular releases.
The user guide addresses all features up to the most recent tool version. Most topics covered are valid for all YAKINDU Statechart Tools versions including 3.x and even 2.x releases. Nevertheless there are some topics which are specific topics which are relevant for users of 3.x releases.
itemis AG
Am Brambusch 15
Lünen NRW 44536
+49 231 9860-606
info@itemis.com