Once the state machine has been modelled, you can generate state machine code from that model. The Code Generator can be fully controlled by a number of command line flags and parameters and a configuration file.
Example: Generate C code from Cadifra modelling tool
C:\>c:\jdk-11\bin\java.exe -cp "c:\sinelaboreRT5.0\bin\*" codegen.Main -p CADIFRA -l cx -o oven first_example_step3.cdd
Example: Generate CPP code from Enterprise Architect modelling tool
java "$(CODEGEN_PATH)/*" codegen.Main -l cppx -p EA -t "Model:implementation:oven" -o oven oven.xml
Here is a list of all supported command line flags and parameters:
java -cp "path_to_jar_file/*" codegen.Main Usage: java -cp "PATH-TO-JAR/*" codegen.Main [-xls] [-gencfg] [-doxygen] [-Trace] [-verbose] [-U configfile] [-t route:to:class] [-Lstates] [-Levents] [-l cppx|cx|SSC|java|swift|csharp|lua|python|rust|go] [-A] [-s|-S|-E] [-c|-c1] [-p EA|MD|CADIFRA|UMODEL|ARGOUML|SSC|ASTAH|VP|Modelio|MM|PlantUML|DrawIO] [-o outfilename] modelfilname
Flag | Description |
---|---|
-t | In case a XMI file shall be parsed the path to the class that contains the state machine definition must be specified. This option allows you to model more than one state-based class and then generate one after the other by calling the code-generator with the corresponding path. |
-p | Defines the used input format e.g. EA for Enterprise Architect. |
-o <file> | Output filename (excluding file extension. |
-l | Target language -l cx or -l cppx for example. |
-Trace | Activates the generation of trace code. |
-gencfg | Prints out all configuration options for a specific lan- guage (use -l to define the language). |
-verbose | Enables the output of information messages during parsing and code generation |
-c or c1 | Print transition coverage information and creates an Excel sheet with test routes. -c uses a depth-first tree search algorithm which produces fewer but longer test routes. -c1 uses a breadth first algorithm which creates more but shorter test routes. |
-U <file> | Path and name of the codegen configuration file. |
-L <file> | Path and name of the license file |
-Lstates | List the states in the model on the console. |
-Levents | List the events in the model on the console. |
-xls | Creates a state table in Excel format |
-doxygen | Creates a dot based description of the state diagram as part of the C/CPP file. This allows Doxygen to add a state machine diagram to the software documentation. |
-s | Start in interactive simulation mode. Also consider to use the -v flag in addition which enables the printout of the executed C-code per simulation step. |
-S | Start simulation in graphical interactive mode. |
-E | Start the integrated state diagram editor. |