Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Detailed reference warnings
  • Label shadowing

Project Management 

...

Management

Working with SCCharts now integrates better in the Eclipse environment workflow by providing new wizards and an incremental project builder.

There are wizards for SCCharts projects on the one hand and different files on the other hand. The file wizards are used, e.g., to create files for the different new configuration DSLs.

The SCCharts project wizard is a flexible approach to create a project for some target platform that is ready to be deployed. Therefore the wizard references another project wizards (e.g. from the CDT or JDT) to integrate with other tooling. After the referenced wizard has created the project, additional files are added to work with SCCharts. These files include a model file and configuration files for the new incremental project builder.

The incremental project builder is run by Eclipse either in the background when resources changes (Project > Build automatically), or manually by the user (Project > Build Project). What and how files are built can be configured using a new DSL (kibuild files). Errors and warnings that occur during the build are added as error respectively warning markers to the resources where they occur, which is a known concept in the Eclipse IDE. For instance when working with Java, compiler errors are added as markers to files when they are saved. This is now also possible for SCCharts text files and provides faster compiler feedback to users, e.g. because a model can not be compiled, as long as the automatic build is active.

When Several actions are performed when a project is build several actions are performedbuilt:

  • Model files are compiled
    • Optionally a template is processed for each model to generate the simulation code for the model.
  • Simulation code is compiled to an executable, which can be started using the new simulation
  • Freemarker templates are processed to generate code.
    Depending of the type of the template, additional variables are injected into the template
    • Wrapper code templates are used to create the wrapper code for a specific model.
      Annotations on inputs and outputs in the model can be used to define which code snippets are injected as part of the build. These code snippets typically contain code to read or write the corresponding inputs and outputs.
    • Simulation code templates are used to create wrapper code to simulate a modelfor simulation of models.
      Thus it is a special form of wrapper code template. Instead of user defined annotations, the injected code snippets are determined by the variables in the model.
      This kind of template can be configured as part of a model compiler to automatically generate the simulation for all compiled models.
    • Simple templates are self contained and no additional variables are injected.

Corresponding to the actions that are performed during the build, the configuration in a kibuild file can contain its configuration consists of model compilers, simulation compilers and template processors, which . A template processor is either a simulation simple template processor, wrapper code template processor or simple simulation template processor.

If all of these are defined, a an incremental project build could consist for example of the following steps:

...

Note that if the Build automatically option is set, it is possible to (re-)start a simulation without the need to (re-)compile the corresponding model beforehand. This is because the simulation executable has is been created in the background as part of the build and is updated if the model changes. This results in a faster code-test-workflow compared to the previous approach, in which a model was always re-compiled before its simulation was started.

Integrated Simulation

The simulation backend has been rewritten to be more lightweight, flexible and transparent and to better integrate in the workflow.

...