Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 3b2ed32cd7d593b79e7e523c6d5e5825f77f12fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?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-07-10 11:27:00" /> 
<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> 
</head><body 
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a 
href="etrice-docse4.html" >next</a>] [<a 
href="etrice-docch4.html" >prev</a>] [<a 
href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a 
href="#tailetrice-docse3.html">tail</a>] [<a 
href="etrice-docch4.html#etrice-docse3.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">4.1   </span> <a 
 id="x9-110004.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">4.1.1   </span> <a 
 id="x9-120004.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">4.1.2   </span> <a 
 id="x9-130004.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">4.1.3   </span> <a 
 id="x9-140004.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-docse4.html" >next</a>] [<a 
href="etrice-docch4.html" >prev</a>] [<a 
href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a 
href="etrice-docse3.html" >front</a>] [<a 
href="etrice-docch4.html#etrice-docse3.html" >up</a>] </p></div>
<!--l. 92--><p class="noindent" ><a 
 id="tailetrice-docse3.html"></a> </p> 
</body></html> 

Back to the top