This editor and generator provide Mealy-Moore hierarchical state machine function, in particular:
- init, state and group state nodes (plain and hierarchical FSM)
- state handlers
- conditions
- data model with accessors and ability to use it in the conditions
- triggers
- multiple transition handlers
- self-transitions
- auto-transitions
- ability to put any code to the generated source code (includes, types, etc.)
Generated code has no dependency on other libraries and is self-sufficient. Project is on the proof-of-concept stage.
The example of the FSM graph is provided on the picture below:
Full information on the license for this software is available in the "LICENSE" file. Full information on the license for the generated code is available in "LICENCE_GEN_CODE" file.
- A C++11 enabled compiler is needed
- escxmlcc uses CMake as buildsystem
- escxmlcc uses Boost >= 1.45.0
On Ubuntu those dependencies can be installed with the following command:
sudo apt install cmake libboost-all-dev
For compilation, call:
mkdir build
cd build
cmake ..
make
optional: sudo make install
Here are supported options:
Option | Description |
---|---|
WITH_TESTS |
Build generator with unit tests |
WITH_EXAMPLES |
Build generator with examples where you can find how to use produced headers |
To build with options, use:
mkdir build
cd build
cmake -D<OPTION>=ON -D<OTHER OPTION>=ON ..
make
optional: sudo make install
To specify an installation directory (like --prefix=
if you're used to autotools) call cmake like:
cmake -DCMAKE_INSTALL_PREFIX:PATH=$YOUR_PATH ..
make
make install
Developed and tested with Ubuntu Linux 64-bit / Intel PC
Yuriy Gurin ygurin@outlook.com