eTrice provides an implementation of the ROOM (Real-Time Object-Oriented Modeling) modeling language together with editors,
code generators for Java, C++ and C code and exemplary target middleware.
The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and behavioral (i.e. state machine) parts.
eTrice is all about the reduction of complexity:
The model files are stored in a purely textual and easily readable form. The DSL is created using Xtext and a fully featured editor with syntax highlighting, content assist, template proposals and outline view is provided.
The models allow to import other model parts and thus allow an arbitrary granularity as well as working with modeling libraries. Another great advantage is the relatively simple and understandable behavior in the case of merge conflicts. The user will be able to resolve conflicts by reviewing the changes.
The Structure Editor allows to edit the Actor Structure in a convenient way. It is possible to create and arrange actor references and ports and to create bindings and layer connections.
The Behavior Editor allows to describe the Actor Behavior by means of a hierarchical finite state machine. It is possible to create and arrange states, choice points, transition points and transitions.
Currently eTrice has two generators for ANSI-C and for Java code. A C++ generator is currently being developed. We strive to achieve a good readability of the generated code.
The Runtimes provide basic infrastructure like messaging and debug support in form of the generation of sequence diagrams from the running application. Thanks to the good Java (JDT) and C (CDT) integration within Eclipse very short round trip times can be achieved.
This project is in the Incubation Phase.
eTrice 0.3.0 is released and is available for download. See the download section for details.
For the next release cycle we plan the implementation of dynamic features of ROOM. See the project plan for details.