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>
|