eTrice Developer’s Reference

eTrice Developer’s Reference

Architecture
Component Overview

Architecture

The basic components of eTrice are depicted in the following diagram.

Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in subsequent sections.

Editor and Generator Components

  • core

    • core.coom is an Xtext based language called Room. It consists of the plug-in org.eclipse.etrice.core.room. Room is the basic modeling language of eTrice.

    • core.config is an Xtext based language called Config. It consists of the plug-in org.eclipse.etrice.core.config. Config is a language designed for the data configuration of model elements. E.g. class and instance attributes can be specified.

    • core.genmodel is an EMF based aggregation layer for Room models. It consists of the plugin org.eclipse.etrice.core.genmodel. a Room model can be transformed into a genmodel which allows easy access to implicit relations of the Room model.

  • ui

    • textual

      • room.ui is the ui counterpart of core.room. It consists of the plug-in org.eclipse.etrice.core.room.ui. This plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the Room language.

      • config.ui is the ui counterpart of core.config. It consists of the plug-in org.eclipse.etrice.core.config.ui. This plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the Config language.

    • graphical

      • ui.common is a set of common code for the two diagram editors. It consists of the plug-in org.eclipse.etrice.ui.common.

      • ui.commands encapsulates some commands related to the navigation between eTrice editors. It consists of the plug-in org.eclipse.etrice.ui.commands.

      • ui.structure is the Graphiti based editor for the Actor structure. It consists of the plug-in org.eclipse.etrice.ui.structure.

      • ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the plug-in org.eclipse.etrice.ui.behavior.

  • generators

    • generator is a set of general classes and language independent parts of all generators. It consists of the plug-in org.eclipse.etrice.generator.

    • generator.c is the generator for the ANSI-C target language. It consists of the plug-in org.eclipse.etrice.generator.c.

    • generator.java is the generator for the Java target language. It consists of the plug-in org.eclipse.etrice.generator.java.

    • generator.doc is the generator for the model documentation. It consists of the plug-in org.eclipse.etrice.generator.doc.

Runtimes

Currently eTrice ships with a C and a Java runtime. The runtimes are libraries written in the target language against which the generated code is compiled.

Unit Tests

Most plug-ins and other parts of the code have related unit tests.