| <?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="2014-03-31 09:04:00" /> |
| <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> |
| </head><body |
| > |
| <!--l. 1--><div class="crosslinks"><p class="noindent">[<a |
| href="etrice-docse32.html" >next</a>] [<a |
| href="etrice-docch6.html" >prev</a>] [<a |
| href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a |
| href="#tailetrice-docse31.html">tail</a>] [<a |
| href="etrice-docch6.html#etrice-docse31.html" >up</a>] </p></div> |
| <h3 class="sectionHead"><span class="titlemark">6.1 </span> <a |
| id="x39-1740006.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="x39-1750006.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="x39-1760006.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="x39-1770006.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-docse32.html" >next</a>] [<a |
| href="etrice-docch6.html" >prev</a>] [<a |
| href="etrice-docch6.html#tailetrice-docch6.html" >prev-tail</a>] [<a |
| href="etrice-docse31.html" >front</a>] [<a |
| href="etrice-docch6.html#etrice-docse31.html" >up</a>] </p></div> |
| <!--l. 92--><p class="noindent" ><a |
| id="tailetrice-docse31.html"></a> </p> |
| </body></html> |