blob: a291bedbfd1c90a682e54d2a1ae746959a47b64d [file] [log] [blame]
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head><title>Architecture</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
<meta name="date" content="2013-10-21 12:44:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse29.html" >next</a>] [<a
href="etrice-docch6.html" >prev</a>] [<a
href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
href="#tailetrice-docse28.html">tail</a>] [<a
href="etrice-docch6.html#etrice-docse28.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">6.1 </span> <a
id="x36-1610006.1"></a>Architecture</h3>
<!--l. 3--><p class="noindent" >The basic components of eTrice are depicted in the following diagram.
</p><!--l. 5--><p class="noindent" ><img
src="images/200-components.jpg" alt="PIC"
/>
</p><!--l. 7--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in subsequent
sections.
</p><!--l. 10--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">6.1.1 </span> <a
id="x36-1620006.1.1"></a>Editor and Generator Components</h4>
<ul class="itemize1">
<li class="itemize">core
<ul class="itemize2">
<li class="itemize">core.room
is an Xtext based language called ROOM. It consists of the plug-ins <span
class="ec-lmtt-10">org.eclipse.etrice.core.room</span>
and <span
class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. ROOM is the basic modeling language of eTrice.
</li>
<li class="itemize">core.config is an Xtext based language called Config. It consists of
the plug-ins <span
class="ec-lmtt-10">org.eclipse.etrice.core.config </span>and <span
class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. Config
is a language designed for the data configuration of model
</li>
<li class="itemize">core.etphys is an
Xtext based language called etPhys. It consists of the plug-ins <span
class="ec-lmtt-10">org.eclipse.etrice.core.etphys </span>and
<span
class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. etPhys is a language designed for the description of physical
systems onto which the logical ROOM systems are deployed.
</li>
<li class="itemize">core.etmap is an Xtext based language called etMap. It consists of
the plug-ins <span
class="ec-lmtt-10">org.eclipse.etrice.core.etmap </span>and <span
class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. etMap is
a language designed for the mapping of logical to physical systems.
</li>
<li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. It consists of the plugin
<span
class="ec-lmtt-10">org.eclipse.etrice.core.genmodel</span>. A Room model can be transformed into a genmodel which allows
easy access to implicit relations of the Room model.</li></ul>
</li>
<li class="itemize">ui
<ul class="itemize2">
<li class="itemize">textual
<ul class="itemize3">
<li class="itemize">room.ui is the ui counterpart of core.room.
It consists of the plug-in <span
class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE concepts
like content assist, error markers and navigation by hyper links for the Room language.
</li>
<li class="itemize">config.ui is the ui
counterpart of core.config. It consists of the plug-in <span
class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. This
plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
Config language.
</li>
<li class="itemize">etphys.ui is the ui
counterpart of core.etphys. It consists of the plug-in <span
class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. This
plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
etPhys language.
</li>
<li class="itemize">etmap.ui is the ui counterpart of core.etmap. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. This plug-in realizes IDE concepts like content assist, error
markers and navigation by hyper links for the etPhys language.</li></ul>
</li>
<li class="itemize">graphical
<ul class="itemize3">
<li class="itemize">ui.common is a set of common code for the two diagram editors. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.ui.common</span>.
</li>
<li class="itemize">ui.commands encapsulates some commands related to the navigation between eTrice editors. It
consists of the plug-in <span
class="ec-lmtt-10">org.eclipse.etrice.ui.commands</span>.
</li>
<li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.ui.structure</span>.
</li>
<li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.ui.behavior</span>.</li></ul>
</li></ul>
</li>
<li class="itemize">generators
<ul class="itemize2">
<li class="itemize">generator is a set of general classes and language independent parts of all generators. It consists of the
plug-in <span
class="ec-lmsso-10">org.eclipse.etrice.generator</span>.
</li>
<li class="itemize">generator.c is the generator for the ANSI-C target language. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.generator.c</span>.
</li>
<li class="itemize">generator.cpp is the generator for the C++ target language. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.generator.cpp</span>.
</li>
<li class="itemize">generator.java is the generator for the Java target language. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.generator.java</span>.
</li>
<li class="itemize">generator.doc is the generator for the model documentation. It consists of the plug-in
<span
class="ec-lmtt-10">org.eclipse.etrice.generator.doc</span>.</li></ul>
</li></ul>
<!--l. 82--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">6.1.2 </span> <a
id="x36-1630006.1.2"></a>Runtimes</h4>
<!--l. 84--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The C++ runtime is still a prototype. The runtimes are libraries written
in the target language against which the generated code is compiled.
</p><!--l. 88--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">6.1.3 </span> <a
id="x36-1640006.1.3"></a>Unit Tests</h4>
<!--l. 90--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests.
</p>
<!--l. 92--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse29.html" >next</a>] [<a
href="etrice-docch6.html" >prev</a>] [<a
href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a
href="etrice-docse28.html" >front</a>] [<a
href="etrice-docch6.html#etrice-docse28.html" >up</a>] </p></div>
<!--l. 92--><p class="noindent" ><a
id="tailetrice-docse28.html"></a> </p>
</body></html>