Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Haug2015-10-15 11:43:40 +0000
committerJuergen Haug2015-10-15 11:43:40 +0000
commitb187cdc0b8a4b13ee45c1b3fd3a5c901e7db581d (patch)
tree316fb4ef98ca206eebbc837834f72bf41dabff95
parentf93781a5a813b10c0a36b6c21175e66047608580 (diff)
downloadorg.eclipse.etrice-b187cdc0b8a4b13ee45c1b3fd3a5c901e7db581d.tar.gz
org.eclipse.etrice-b187cdc0b8a4b13ee45c1b3fd3a5c901e7db581d.tar.xz
org.eclipse.etrice-b187cdc0b8a4b13ee45c1b3fd3a5c901e7db581d.zip
[doc] added version number + online site branding/back-to-topv_0.5.0
-rw-r--r--plugins/org.eclipse.etrice.doc/eclipse-help/content/etrice-doc.md7
-rw-r--r--plugins/org.eclipse.etrice.doc/eclipse-help/template/etrice-doc.st8
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/config/_master.json17
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/static/css/custom.css8
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.pngbin10648 -> 9016 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.svg21
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/static/js/custom.js8
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/template/_default.st9
-rw-r--r--plugins/org.eclipse.etrice.doc/online-doc/template/include/header.st15
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/etrice-doc.html8
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/examples.html4
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.pngbin0 -> 9016 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.svg104
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/introduction.html10
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html21
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/standalone-generators.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/targets/eclipse-help/tutorials.html58
17 files changed, 214 insertions, 86 deletions
diff --git a/plugins/org.eclipse.etrice.doc/eclipse-help/content/etrice-doc.md b/plugins/org.eclipse.etrice.doc/eclipse-help/content/etrice-doc.md
index 4778349ac..8285b603f 100644
--- a/plugins/org.eclipse.etrice.doc/eclipse-help/content/etrice-doc.md
+++ b/plugins/org.eclipse.etrice.doc/eclipse-help/content/etrice-doc.md
@@ -1,6 +1 @@
-<!-- front page: template etrice-doc.st appends toc --->
-
-<div style="text-align:center;">
-<img src="images/logo/eTRICE-logo.png">
-<h1>eTrice Documentation</h1>
-</div> \ No newline at end of file
+<!-- front page + toc---> \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.doc/eclipse-help/template/etrice-doc.st b/plugins/org.eclipse.etrice.doc/eclipse-help/template/etrice-doc.st
index daa19ad57..bec50197c 100644
--- a/plugins/org.eclipse.etrice.doc/eclipse-help/template/etrice-doc.st
+++ b/plugins/org.eclipse.etrice.doc/eclipse-help/template/etrice-doc.st
@@ -1,9 +1,15 @@
$include/header()$
+<div style="text-align:center;">
+ <p><img src="images/logo/etrice-logo-interim.png"></p>
+ <h1>$title$</h1>
+ <p>version $version$</p>
+</div>
+
$_content$
<ul>
- $toc:{e | $include/front_toc(name=e.name, url=e.url, entries=e.entries)$}$
+ $toc:{e | $include/front_toc(name=e.name, url=e.url, entries=e.entries)$}$
</ul>
$include/footer()$
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/config/_master.json b/plugins/org.eclipse.etrice.doc/online-doc/config/_master.json
index 9cf7b2759..406197b0f 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/config/_master.json
+++ b/plugins/org.eclipse.etrice.doc/online-doc/config/_master.json
@@ -1,5 +1,6 @@
{
"title": "eTrice Documentation",
+ "version": "0.5",
"xtext-langs" : {
"room" : "xtext_keyword_files/InternalRoom.tokens",
"etconfig" : "xtext_keyword_files/InternalConfig.tokens",
@@ -8,34 +9,34 @@
},
"toc" : [{
"name" : "Introduction",
- "url" : "introduction.html"
+ "url" : "introduction.html"
},
{
"name" : "Tutorials",
- "url" : "tutorials.html"
+ "url" : "tutorials.html"
},
{
"name" : "Standalone Generators",
- "url" : "standalone-generators.html"
+ "url" : "standalone-generators.html"
},
{
"name" : "Examples",
- "url" : "examples.html"
+ "url" : "examples.html"
},
{
"name" : "ROOM Concepts",
- "url" : "room-concepts.html"
+ "url" : "room-concepts.html"
},
{
"name" : "eTrice Features",
- "url" : "etrice-features.html"
+ "url" : "etrice-features.html"
},
{
"name" : "Feature Reference",
- "url" : "feature-reference.html"
+ "url" : "feature-reference.html"
},
{
"name" : "Developer's Reference",
- "url" : "developers-reference.html"
+ "url" : "developers-reference.html"
}]
} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/static/css/custom.css b/plugins/org.eclipse.etrice.doc/online-doc/static/css/custom.css
index 9e4172fba..bd6ab8e4a 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/static/css/custom.css
+++ b/plugins/org.eclipse.etrice.doc/online-doc/static/css/custom.css
@@ -1,3 +1,11 @@
+.version {
+ color: #888;
+}
+
+.pull-right {
+ float: right;
+}
+
/* bootstrap nestd list fix */
ol ol, ol ul, ul ol, ul ul {
margin-bottom: 10px;
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.png b/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.png
index adf2486c1..d79ed9802 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.png
+++ b/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.svg b/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.svg
index 1162c4751..beba37ae6 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.svg
+++ b/plugins/org.eclipse.etrice.doc/online-doc/static/images/logo/etrice-logo-interim.svg
@@ -12,9 +12,9 @@
id="svg4800"
version="1.1"
inkscape:version="0.91 r13725"
- width="410"
- height="410"
- viewBox="0 0 410 410"
+ width="296.52902"
+ height="174.608"
+ viewBox="0 0 296.52902 174.608"
sodipodi:docname="etrice-logo-interim.svg">
<metadata
id="metadata4806">
@@ -58,21 +58,26 @@
showguides="true"
inkscape:guide-bbox="true"
inkscape:zoom="1.0573171"
- inkscape:cx="154.80793"
- inkscape:cy="293.27138"
+ inkscape:cx="-104.2042"
+ inkscape:cy="142.0612"
inkscape:window-x="140"
inkscape:window-y="258"
inkscape:window-maximized="0"
- inkscape:current-layer="layer1">
+ inkscape:current-layer="layer1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
<sodipodi:guide
- position="183.01038,214.22145"
+ position="130.65338,63.011272"
orientation="0,1"
id="guide5423" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
id="layer1"
- inkscape:label="Layer 1">
+ inkscape:label="Layer 1"
+ transform="translate(-52.357,-84.181828)">
<path
style="fill:#332d71;fill-opacity:1"
d="m 106.74889,188.77496 c -9.823867,-3.51311 -14.713505,-11.28861 -14.728187,-23.42074 -0.0151,-12.46956 3.662771,-19.47358 12.861387,-24.49287 4.05414,-2.21216 5.94357,-2.6623 11.24254,-2.67841 15.18646,-0.0461 22.23035,6.82558 23.02223,22.4596 l 0.40327,7.96178 -16.48981,0 c -9.06941,0 -16.48982,0.21788 -16.48982,0.48419 0,2.24059 3.18553,7.09996 5.63222,8.59167 3.85998,2.35336 12.11179,2.41221 18.70807,0.13344 l 4.77707,-1.65031 0,5.22089 0,5.22088 -3.86715,1.57685 c -5.9664,2.43282 -19.06103,2.74256 -25.07182,0.59303 z m 18.21772,-32.90949 c -0.51304,-6.35282 -7.70595,-9.72349 -13.14483,-6.1598 -2.52835,1.65663 -5.65195,7.50514 -4.77028,8.9317 0.3475,0.56226 4.06576,0.82895 9.37412,0.67236 l 8.79819,-0.25954 z"
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/static/js/custom.js b/plugins/org.eclipse.etrice.doc/online-doc/static/js/custom.js
index 691dbad6b..2ea89b28c 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/static/js/custom.js
+++ b/plugins/org.eclipse.etrice.doc/online-doc/static/js/custom.js
@@ -2,6 +2,7 @@ $(function() {
var path = lastSegment(window.location.href);
+ // set menu expansion on site load (= remember last selection)
$("#sidebarMenu a[href='" + path + "']").each(function() {
$(this).addClass('active-item');
$(this).parents().each(function() {
@@ -22,12 +23,15 @@ $(function() {
});
+ // activate menu script (github.com/onokumus/metisMenu)
$('#sidebarMenu').metisMenu({ doubleTapToGo: true });
+
+ // set menu expansion on anchor navigation
$(window).on('hashchange', function() {
var path = lastSegment(window.location.href);
$('#sidebarMenu a').removeClass('active-item');
$("#sidebarMenu a[href='" + path + "']").addClass('active-item');
-
+
});
});
@@ -45,7 +49,7 @@ $('table').addClass('table');
/*
* window.onscroll = function() {myFunction()};
- *
+ *
* function myFunction() { var x = $('#sidebarMenu').height(); var y =
* screen.height; if($('#sidebarMenu').height() < screen.height){
* $('#sidebar').addClass('affix'); //$('#sidebar').affix({ // offset: { // top:
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/template/_default.st b/plugins/org.eclipse.etrice.doc/online-doc/template/_default.st
index 1acf58483..a3dc8e4e7 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/template/_default.st
+++ b/plugins/org.eclipse.etrice.doc/online-doc/template/_default.st
@@ -5,14 +5,17 @@
<div class="col-sm-3">
<div id="sidebar" role="navigation">
<ul class="nav metismenu" id="sidebarMenu">
- $toc:{e | $include/toc_menu(name=e.name, url=e.url, entries=e.entries)$}$
+ $toc:{e | $include/toc_menu(name=e.name, url=e.url, entries=e.entries)$}$
</ul>
</div>
</div>
+ <span class="version pull-right">version $version$</span></p>
<div class="col-sm-9">
$_content$
+ <hr>
+ <p><a href="#navbar">back to top</a> <span class="version pull-right">version $version$</span></p>
</div>
</div>
-</div>
-
+</div>
+
$include/footer()$ \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.doc/online-doc/template/include/header.st b/plugins/org.eclipse.etrice.doc/online-doc/template/include/header.st
index ebfe4193d..4e11e7bb6 100644
--- a/plugins/org.eclipse.etrice.doc/online-doc/template/include/header.st
+++ b/plugins/org.eclipse.etrice.doc/online-doc/template/include/header.st
@@ -21,28 +21,27 @@
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
-
+
</head>
<body>
-
+
<!-- Fixed navbar -->
<nav class="navbar navbar-default navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
- <a class="navbar-brand" href="#">eTrice Help</a>
+ <a class="navbar-brand" style="padding-bottom: 2px; padding-top: 4px;" href="introduction.html"><img style="height: 100%;" src="images/logo/etrice-logo-interim.png"></a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
- <li class="active"><a href="#">Online Documentation</a></li>
+ <li class="active"><a href="introduction.html">Online Documentation</a></li>
<li><a href="http://www.eclipse.org/forums/eclipse.etrice">Newsgroup</a></li>
<li><a href="https://www.eclipse.org/etrice/">eTrice Home</a></li>
<li><a href="https://www.eclipse.org/etrice/download.php">Downloads</a></li>
-
+
<li><a href="https://git.eclipse.org/c/etrice/org.eclipse.etrice.git/">Git repository</a></li>
-
+
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
-
- \ No newline at end of file
+
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/etrice-doc.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/etrice-doc.html
index e395700f2..60ea7a8ed 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/etrice-doc.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/etrice-doc.html
@@ -14,12 +14,14 @@
-<!-- front page: template etrice-doc.st appends toc --->
<div style="text-align:center;">
-<img src="images/logo/eTRICE-logo.png">
+<p><img src="images/logo/etrice-logo-interim.png"></p>
<h1>eTrice Documentation</h1>
+<p>version 0.5</p>
</div>
+<!-- front page + toc--->
+
<ul>
<li><a href="introduction.html">Introduction</a>
<ul>
@@ -1244,7 +1246,7 @@
-
+
</ul>
</body>
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/examples.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/examples.html
index 053cb869c..1d672b09a 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/examples.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/examples.html
@@ -20,8 +20,8 @@
<p>As already mentioned each example project contains several examples. Each of them comes with a room model, a mapping model a launch configuration for the code generation and a launch configuration to run the compiled example.</p>
<h2><a href="#the-c-examples-project" name="the-c-examples-project"></a>The C examples project</h2>
<p>This example project <code>org.eclipse.etrice.examples.c</code> illustrates a simplified traffic light control. It actually consists of four different steps of increasing complexity that can be generated and built one by one (but not in parallel).</p>
-<p>Most of the classes are contained in a common ROOM model <code>model/TrafficLight/TrafficLight.room</code> that also shows how ROOM classes can form a library and used as building blocks for several systems. Also the physical model is shared by all steps of this example.</p>
-<p>Contained in the example you will find a little Java GUI that some of the example use to simulate a real traffic light. The GUI is contacted using TCP/IP ports 4441 and subsequent. The protocol used on the TCP/IP socket connection is a simple text protocol with commands for the lights. Three of the example steps make use of this simulator GUI. They also contain a launch configuration for it.</p>
+<p>Most of the classes are contained in a common ROOM model <code>model/TrafficLight/TrafficLight.room</code> that also shows how ROOM classes can form a library and be used as building blocks for several systems. Also the physical model is shared by all steps of this example.</p>
+<p>Contained in the example you will find a little Java GUI that some of the examples use to simulate a real traffic light. The GUI is contacted using TCP/IP ports 4441 and subsequent. The protocol used on the TCP/IP socket connection is a simple text protocol with commands for the lights. Three of the example steps make use of this simulator GUI. They also contain a launch configuration for it.</p>
<p><strong>Note:</strong> Before compiling and linking a new step of the example the project should be cleaned to avoid duplicate symbols due to artifacts from the previous build.</p>
<h3><a href="#traffic-light-step-1" name="traffic-light-step-1"></a>Traffic light - step 1</h3>
<p>The main ROOM model and the mapping model of this example is contained in <code>org.eclipse.etrice.examples.c/model/TrafficLight_step1</code>. It also contains launch configurations for the code generation and for running the application.</p>
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.png b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.png
new file mode 100644
index 000000000..d79ed9802
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.svg b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.svg
new file mode 100644
index 000000000..beba37ae6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/images/logo/etrice-logo-interim.svg
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg4800"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ width="296.52902"
+ height="174.608"
+ viewBox="0 0 296.52902 174.608"
+ sodipodi:docname="etrice-logo-interim.svg">
+ <metadata
+ id="metadata4806">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs4804">
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4163">
+ <rect
+ style="opacity:1;fill:#008e48;fill-opacity:1;stroke:#0000c3;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4165"
+ width="293.40866"
+ height="123.54049"
+ x="-682.56122"
+ y="49.416195" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1342"
+ inkscape:window-height="660"
+ id="namedview4802"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:zoom="1.0573171"
+ inkscape:cx="-104.2042"
+ inkscape:cy="142.0612"
+ inkscape:window-x="140"
+ inkscape:window-y="258"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0">
+ <sodipodi:guide
+ position="130.65338,63.011272"
+ orientation="0,1"
+ id="guide5423" />
+ </sodipodi:namedview>
+ <g
+ inkscape:groupmode="layer"
+ id="layer1"
+ inkscape:label="Layer 1"
+ transform="translate(-52.357,-84.181828)">
+ <path
+ style="fill:#332d71;fill-opacity:1"
+ d="m 106.74889,188.77496 c -9.823867,-3.51311 -14.713505,-11.28861 -14.728187,-23.42074 -0.0151,-12.46956 3.662771,-19.47358 12.861387,-24.49287 4.05414,-2.21216 5.94357,-2.6623 11.24254,-2.67841 15.18646,-0.0461 22.23035,6.82558 23.02223,22.4596 l 0.40327,7.96178 -16.48981,0 c -9.06941,0 -16.48982,0.21788 -16.48982,0.48419 0,2.24059 3.18553,7.09996 5.63222,8.59167 3.85998,2.35336 12.11179,2.41221 18.70807,0.13344 l 4.77707,-1.65031 0,5.22089 0,5.22088 -3.86715,1.57685 c -5.9664,2.43282 -19.06103,2.74256 -25.07182,0.59303 z m 18.21772,-32.90949 c -0.51304,-6.35282 -7.70595,-9.72349 -13.14483,-6.1598 -2.52835,1.65663 -5.65195,7.50514 -4.77028,8.9317 0.3475,0.56226 4.06576,0.82895 9.37412,0.67236 l 8.79819,-0.25954 z"
+ id="path4826"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ssssscsssscccsssssscs" />
+ <path
+ style="fill:#ed1c24;fill-opacity:1"
+ d="m 135.44384,258.25173 c -5.87588,-0.68465 -13.23345,-2.34201 -19.1697,-4.31816 -34.869939,-11.60797 -59.189036,-41.78915 -63.564125,-78.88615 -0.696427,-5.90511 -0.310651,-19.74745 0.703651,-25.24827 5.024627,-27.24982 19.845207,-49.47511 42.671888,-63.991756 1.535248,-0.976341 2.791357,-1.704737 2.791357,-1.618657 0,0.08608 -1.773243,1.66716 -3.940542,3.513509 -14.558918,12.402944 -24.838733,32.670934 -27.139959,53.509984 -0.827824,7.49645 -0.381285,21.04678 0.923178,28.01402 6.720225,35.89328 31.430592,65.75051 64.245302,77.6268 11.03167,3.99257 19.8275,5.36579 31.93375,4.98551 9.52074,-0.29906 14.85473,-1.22778 22.64962,-3.94362 2.62304,-0.9139 4.82595,-1.60487 4.89533,-1.53549 0.353,0.35301 -12.92733,6.2701 -17.35043,7.73053 -12.32453,4.06937 -27.11685,5.62202 -39.64932,4.16175 z"
+ id="path4826-8"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="sssssssssssscss"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:#ee1d25;fill-opacity:1"
+ d="m 139.29988,168.72243 c -149.941187,67.5205 -74.970597,33.76025 0,0 z m 18.80702,21.02486 c -4.02168,-1.31529 -6.98513,-3.71912 -8.48718,-6.88447 -1.13203,-2.38557 -1.44327,-6.20041 -1.44327,-17.6901 l 0,-14.64864 -4.09463,0 -4.09463,0 0,-5.40719 0,-5.40719 3.86715,-0.2798 3.86715,-0.27979 0.26623,-5.50703 0.26623,-5.50703 5.80973,-1.54807 c 3.19534,-0.85143 6.45361,-1.79516 7.24059,-2.09714 1.23291,-0.47311 1.43087,0.53441 1.43087,7.28257 l 0,7.83165 5.4595,0 5.45951,0 0,5.45951 0,5.45951 -5.45951,0 -5.4595,0 0,12.08142 c 0,14.78983 0.72861,16.46842 6.93404,15.97488 l 3.98497,-0.31693 0,5.18488 c 0,2.85168 -0.39277,5.42762 -0.87282,5.72431 -1.54005,0.9518 -12.24005,1.37081 -14.67443,0.57465 z m 93.63687,-0.39767 c -7.37732,-2.08781 -13.91169,-8.33931 -16.21075,-15.50899 -0.68896,-2.14854 -0.97736,-6.44689 -0.73823,-11.00282 0.31602,-6.02103 0.8684,-8.28899 2.83698,-11.64812 5.18791,-8.8525 13.29673,-12.86695 25.75893,-12.75251 10.36564,0.0952 11.26428,0.73163 11.26428,7.97785 l 0,5.83602 -3.15548,-1.31845 c -4.34688,-1.81624 -11.23374,-1.66016 -15.05705,0.34124 -4.71116,2.46617 -7.52284,8.37122 -6.93358,14.56184 0.53538,5.62468 2.24533,8.63475 6.31477,11.11604 3.52493,2.14929 11.10233,2.37229 15.67586,0.46136 l 3.15548,-1.31845 0,5.77901 c 0,5.69586 -0.0426,5.79428 -2.95723,6.83913 -4.61513,1.65443 -15.1682,1.99124 -19.95398,0.63685 z m 44.13632,0.26052 c -5.3186,-1.05164 -8.5647,-2.91334 -12.31197,-7.06111 -4.2724,-4.72904 -5.65269,-9.11347 -5.64187,-17.92123 0.0197,-16.10425 9.82077,-26.3745 24.98548,-26.18176 13.91345,0.17682 20.80443,7.35946 22.26185,23.20406 l 0.64676,7.0314 -16.83114,0.24794 -16.83115,0.24795 1.03008,3.1532 c 1.61401,4.94065 5.93697,7.31085 13.33414,7.31085 3.36624,0 7.86127,-0.6142 9.98893,-1.36488 2.12766,-0.75068 4.02172,-1.36487 4.20903,-1.36487 0.18731,0 0.34055,2.20237 0.34055,4.89414 0,4.48581 -0.20878,4.97905 -2.50227,5.91166 -6.31083,2.56617 -15.42522,3.32683 -22.67842,1.89265 z m 15.1716,-33.04889 c 0,-9.0523 -12.54391,-11.69546 -16.7028,-3.5195 -3.43223,6.74742 -3.61089,6.5815 7.08735,6.5815 l 9.61545,0 z m 24.63759,31.64352 c -5.65252,-4.75629 -2.49998,-14.02284 4.77067,-14.02284 8.58804,0 11.68659,11.17252 4.17572,15.05655 -3.65591,1.89053 -5.76006,1.64741 -8.94639,-1.03371 z m -157.48555,-24.03193 0,-24.56778 7.27934,0 7.27934,0 0,4.54959 c 0,5.25616 0.80103,5.72017 2.72975,1.58128 2.54238,-5.45576 11.26183,-9.06375 14.3767,-5.94888 0.61185,0.61184 1.0919,3.54509 1.0919,6.67176 l 0,5.57987 -4.99367,-0.41412 c -5.8193,-0.48258 -8.65168,0.92136 -11.10603,5.50499 -1.25243,2.33897 -1.65235,5.91191 -1.93411,17.27986 l -0.35522,14.3312 -7.184,0 -7.184,0 z m 35.48678,0 0,-24.56778 7.27934,0 7.27935,0 0,24.56778 0,24.56777 -7.27935,0 -7.27934,0 z m 0.15312,-42.89873 c -5.86195,-2.90158 -8.79733,-7.86698 -8.79733,-14.88126 0,-6.37722 2.16464,-10.471081 7.45239,-14.094301 9.84185,-6.743745 24.15941,0.0727 25.52071,12.150141 1.52379,13.51904 -11.93383,22.88503 -24.17577,16.82542 z"
+ id="path4826-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccssscccccccccssscccccccsscssssssssscssssscsssssssscccsssssssssscsssssccccsssscssscccccccccccccsssss"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </g>
+</svg>
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/introduction.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/introduction.html
index 825a48c31..6f6d6073e 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/introduction.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/introduction.html
@@ -100,11 +100,11 @@
<p>The relation between classical object oriented programming and ROOM is comparable to the relation between assembler programming and C programming. It provides a shift of the object paradigm. The classical object paradigm provides some kind of information hiding. Attributes can be accessed via access methods. Logical higher level methods provide the requested behavior to the user.</p>
<p>But as the figure illustrates, the classical object paradigm does not care about concurrency issues. The threads of control will be provided by the underlying operating system and the user is responsible to avoid access violations by using those operating system mechanisms directly (semaphore, mutex).</p>
<p><img src="images/010-RoomIntroduction02.png" alt="image"></p>
-<p>ROOM provides the concept of a logical machine (called actor) with its own thread of control. It provides some kind of cooperative communication infrastructure with <em>run to completion</em> semantics. That makes developing of business logic easy and safe (see <a href="#basic-concepts">Basic Concepts</a> ). The logical machine provides an encapsulation shell including concurrency issues (see <a href="#run-to-completion">Run to completion</a> ).</p>
+<p>ROOM provides the concept of a logical machine (called actor) with its own thread of control. It provides some kind of cooperative communication infrastructure with <em>run to completion</em> semantics. That makes developing of business logic easy and safe (see <a href="#basic-concepts">Basic Concepts</a>). The logical machine provides an encapsulation shell including concurrency issues (see <a href="#run-to-completion">Run to completion</a>).</p>
<p><img src="images/010-RoomIntroduction03.png" alt="image"></p>
-<p>This thinking of an object is much more general than the classic one.</p>
+<p>This concept of an object is much more general than the classic one.</p>
<h4><a href="#what-are-the-benefits-of-room-" name="what-are-the-benefits-of-room-"></a>What are the benefits of ROOM?</h4>
-<p>ROOM has a lot of benefits and it depends on the users point of view which is the most important one. From a general point of view the most important benefit is, that ROOM allows to create SW systems very efficient, robust and safe due to the fact that it provides some abstract, high level modeling concepts combined with code generation and a small efficient runtime environment.</p>
+<p>ROOM has a lot of benefits and it depends on the user’s point of view which is the most important one. From a general point of view the most important benefit is, that ROOM allows to create SW systems very efficient, robust and safe due to the fact that it provides some abstract, high level modeling concepts combined with code generation and a small efficient runtime environment.</p>
<p>In detail:</p>
<ul>
<li>
@@ -156,12 +156,12 @@
<p><img src="images/020-Blinky151.png" alt="image"></p>
<p>From an abstract point of view there is a state <em>blinking</em>. But a simple LED is not able to blink autonomously. Therefore you have to add more details to your model to make a LED blinking, but for the current work it is not of interest how the blinking is realized. This will be done in the next lower level of the hierarchy.</p>
<p>This simple example might give an idea how powerful this mechanisms is.</p>
-<p>The hierarchical FSM provides a rich tool box to describe real world problems (see <a href="room-concepts.html">Room Concepts</a> ).</p>
+<p>The hierarchical FSM provides a rich tool box to describe real world problems (see <a href="room-concepts.html">Room Concepts</a>).</p>
<h4><a href="#layering" name="layering"></a>Layering</h4>
<p>Layering is another well known form of abstraction to reduce complexity in the structure of systems. ROOM is probably the only language that supports layering directly as a language feature. Layering can be expressed in ROOM by actors with specialized ports, called <em>Service Access Points</em> (SAP) and <em>Service Provision Points</em> (SPP).</p>
<p>The actor that provides a service implements an SPP and the client of that service implements an SAP. The layer connection connects all SAPs of a specific protocol within an actor hierarchy with an SPP that implements the service. From the actor’s point of view, SAPs and SPPs behave almost like ports.</p>
<p><img src="images/010-LayerExample.png" alt="image"></p>
-<p>The example shows a layered model. The layer connections define e.g. that the <em>ApplicationLayer</em> can only use the services of the <em>ServiceLayer</em> and the <em>CommunicationLayer</em>. Actors inside the <em>ApplicationLayer</em> that implement an SAP for those services are connected directly to the implementation of the services. Layering and actor hierarchies with port to port connections can be mixed on every level of granularity.</p>
+<p>The example shows a layered model. The layer connections define e.g. that the <em>ApplicationLayer</em> uses the services of the <em>ServiceLayer</em> and the <em>CommunicationLayer</em>. Actors inside the <em>ApplicationLayer</em> that use an SAP for those services are connected directly to the implementation of the services. Layering and actor hierarchies with port to port connections can be mixed on every level of granularity.</p>
<h4><a href="#run-to-completion" name="run-to-completion"></a>Run to Completion</h4>
<p><em>Run to completion</em> (RTC) is a very central concept of ROOM. It enables the developer to concentrate on the functional aspects of the system. The developer doesn’t have to care about concurrency issues all the time. This job is concentrated to the system designer in a very flexible way. What does <em>run to completion</em> mean: RTC means that an actor, which is processing a message, can not receive the next message as long as the processing of the current message has been finished. Receiving of the next message will be queued by the underlying run time system.</p>
<p>Note: It is very important not to confuse <em>run to completion</em> and <em>cooperative multi threading</em>. Run to completion means that an actor will finish the processing of a message before he can receive a new one (regardless of its priority). That does <em>not</em> mean that an actor cannot be preempted from an higher priority thread of control. But even a message from this higher prior thread of control will be queued until the current processing has been finished.</p>
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html
index 04b013017..40b8e9bfa 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html
@@ -98,9 +98,9 @@
</table>
<ul>
<li><em>ActorClass1</em> contains two ActorReferences (of ActorClass2 and ActorClass3)</li>
- <li><em>port1</em> is an <em>external end port</em>. Since it connects external actors with the behavior of the ActorClass, it is defined in theInterface section and the Structure section of the ActorClass.</li>
+ <li><em>port1</em> is an <em>external end port</em>. Since it connects external actors with the behavior of the ActorClass, it is defined in the Interface section as well as in the Structure section of the ActorClass.</li>
<li><em>port2</em> and <em>port3</em> are <em>internal end ports</em> and can only be connected to the ports of contained ActorReferences. Internal end ports connect the behavior of an ActorClass with its contained ActorReferences.</li>
- <li><em>port4</em> is a relay port and connects external Actors to contained ActorReferences. This port can not be accessed by the behavior of the ActorClass.</li>
+ <li><em>port4</em> is a <em>relay port</em> and connects external Actors to contained ActorReferences. This port can not be accessed by the behavior of the ActorClass.</li>
<li><em>port5</em> through <em>port9</em> are ports of contained actor references. port8 and port9 can communicate without interference with the containing actor class.</li>
<li>Bindings can connect ports of the actor class and its contained actor references.</li>
</ul>
@@ -173,11 +173,10 @@
</ul>
<h3><a href="#notation" name="notation"></a>Notation</h3>
<h4><a href="#class-ports" name="class-ports"></a>Class Ports</h4>
-<p>These symbols can only appear on the border of an actor class symbol.</p>
<p>Ports that define an external interface of the actor class, are defined in the Interface. Ports that define an internal interface are defined in the Structure (e.g. internal ports).</p>
<ul>
<li>
- <p><em>External end ports</em> are defined in the Interface and the Structure</p></li>
+ <p><em>External end ports</em> are defined in the Interface and in the Structure</p></li>
<li>
<p><em>Internal end ports</em> are only defined in the Structure</p></li>
<li>
@@ -186,6 +185,8 @@
<p><em>End ports</em> are always connected to the internal behavior of the ActorClass</p></li>
<li>
<p><em>Replicated ports</em> can be defined with a fixed replication factor, e.g.<br><span><code>Port port18 [5]: ProtocolClass1</code></span><br>or a variable replication factor, e.g.<br><span><code>Port port18[*]: ProtocolClass1</code></span></p></li>
+ <li>
+ <p>The graphical symbols of Interface ports are drawn on the border of the actor class. The graphical symbols of Structure ports are drawn inside the border of an actor class.</p></li>
</ul>
<p>The table below shows all kinds of class ports with textual and graphical notation:</p>
<table style="vertical-align: middle;text-align: center;" class="table">
@@ -332,7 +333,7 @@
</tbody>
</table>
<h4><a href="#reference-ports" name="reference-ports"></a>Reference Ports</h4>
-<p>These symbols can only appear on the border of an actor class. Since the type of port is defined in the actor class, no textual notation for the Reference Ports exists.</p>
+<p>These symbols can only appear on the border of an actor class reference. Since the type of port is defined in the respective actor class, no textual notation for the Reference Ports exists.</p>
<p>The table below shows all kinds of reference ports with textual and graphical notation:</p>
<table>
<thead>
@@ -367,7 +368,7 @@
</table>
<h2><a href="#dataclass" name="dataclass"></a>DataClass</h2>
<h3><a href="#description" name="description"></a>Description</h3>
-<p>The DataClass enables the modeling of hierarchical complex data types and operations on them. The data class is the equivalent to a class in languages like Java or C++, but has less features. The content of a data class can always be sent via message between actors (defined as message data in a ProtocolClass).</p>
+<p>The DataClass allows the modeling of hierarchical complex data types and operations on them. The data class is the equivalent to a class in languages like Java or C++, but has less features. The content of a data class can always be sent via message between actors (defined as message data in a ProtocolClass).</p>
<h3><a href="#notation" name="notation"></a>Notation</h3>
<p>Example: DataClass using PrimitiveTypes</p>
<pre><code class="room customHighlighted"><span class="keyword">DataClass</span> DataClass1 {
@@ -415,7 +416,7 @@
<p>for a given actor hierarchy, a LayerConnection defines which <abbr title="Service Access Point">SAP</abbr> will be satisfied by (connected to) which <abbr title="Service Provising Point">SPP</abbr></p></li>
</ol>
<h3><a href="#notation" name="notation"></a>Notation</h3>
-<p>For the graphical and textual notation refer to following table:</p>
+<p>For the graphical and textual notation refer to the following table:</p>
<table style="vertical-align: middle;text-align: center;caption-side: bottom;" class="table">
<thead>
<tr>
@@ -438,7 +439,7 @@
</code></pre></td>
</tr>
</tbody>
- <caption>The layer connections in this model define which services are provided by the *ServiceLayer* (*digitalIO* and *timer*)</caption>
+ <caption>The layer connections in this model define which services are provided by the <i>ServiceLayer</i> (<i>digitalIO</i> and <i>timer</i>)</caption>
</table>
<table style="vertical-align: middle;text-align: center;caption-side: bottom;" class="table">
<tbody>
@@ -459,7 +460,7 @@
</code></pre></td>
</tr>
</tbody>
- <caption>The implementation of the services (SPPs) can be delegated to sub actors. In this case the actor *ServiceLayer* relays (delegates) the implementation services *digitalIO* and *timer* to sub actors</caption>
+ <caption>The implementation of the services (SPPs) can be delegated to sub actors. In this case the actor *ServiceLayer* relays (delegates) the implementation services <i>digitalIO<ii> and <i>timer</i> to sub actors</ii></i></caption>
</table>
<table style="vertical-align: middle;text-align: center;caption-side: bottom;" class="table">
<tbody>
@@ -489,7 +490,7 @@
</code></pre></td>
</tr>
</tbody>
- <caption>Every Actor inside the *ApplicationLayer* that contains an SAP with the same protocol as *timer* or *digitalIO* will be connected to the specified SPP</caption>
+ <caption>Every Actor inside the <i>ApplicationLayer</i> that contains an SAP with the same protocol as <i>timer</i> or <i>digitalIO</i> will be connected to the specified SPP</caption>
</table>
<h2><a href="#finite-state-machines" name="finite-state-machines"></a>Finite State Machines</h2>
<h3><a href="#description" name="description"></a>Description</h3>
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/standalone-generators.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/standalone-generators.html
index f5fced2a9..305eb4c01 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/standalone-generators.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/standalone-generators.html
@@ -17,7 +17,7 @@
<h1><a href="#standalone-generators" name="standalone-generators"></a>Standalone Generators</h1>
<p>The eTrice generators can be called from the command line. This is useful e.g. if they should participate in a build process driven by command line tools like make.</p>
<p>The generators are distributed as self contained jars and can be called using</p>
-<p><code>jave -jar &lt;the generator.jar&gt; [arguments]</code>.</p>
+<p><code>java -jar &lt;the generator.jar&gt; [arguments]</code>.</p>
<p>The options for the Java generator are</p>
<pre><code>org.eclipse.etrice.generator.java.Main [-saveGenModel &lt;genmodel path&gt;] [-genDocu] [-lib]
[-noexit] [-saveGenModel &lt;genmodel path&gt;] [-inc] [-genDir &lt;generation directory&gt;]
diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/tutorials.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/tutorials.html
index a4cbde245..7ec3d5e9b 100644
--- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/tutorials.html
+++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/tutorials.html
@@ -29,7 +29,7 @@
<p>Traffic Light (Example)</p></li>
</ul>
<p>The tutorials are also available in their finished version and can be added to the workspace via the Eclipse New Wizard ( <em>File -&gt; New -&gt; Other: eTrice C/Java Tutorials</em> ).</p>
-<p>The <em>Traffic Light Example</em> in not yet available but will be provided with the next eTrice milestone.</p>
+<p>The <em>Traffic Light Example</em> in not yet available but will be provided with the next eTrice milestone (TODO: status?).</p>
<p>eTrice generates code out of ROOM models. The generated code relies on the services of a runtime framework (Runtime):</p>
<ul>
<li>execution</li>
@@ -44,11 +44,11 @@
<li>standard types</li>
</ul>
<h2><a href="#getting-started-c" name="getting-started-c"></a>Getting Started C</h2>
-<p>In this tutorial you will get a first look at a very simple eTrice model. The goal is to learn the work flow of eTrice and to understand a few basic features of ROOM.</p>
+<p>In this tutorial you will have a first look at a very simple eTrice model. The goal is to learn the work flow of eTrice and to understand a few basic features of ROOM.</p>
<p><strong>Preconditions</strong>:</p>
<ul>
<li>
- <p>Working C development environment with CDT Eclipse</p>
+ <p>Working C development environment with Eclipse CDT</p>
<ul>
<li>C compiler: MinGW/GCC (Windows) or Posix/GCC (Linux)</li>
<li>Installed C/C++ Development Tools (CDT) in Eclipse</li>
@@ -64,7 +64,7 @@
</ul>
</li>
<li>
- <p>Optional: Install <a href="http://trace2uml.stage.tigris.org/">Trace2UML</a>, a Open Source MSC viewer</p>
+ <p>Optional: Install <a href="http://trace2uml.stage.tigris.org/">Trace2UML</a>, an Open Source MSC viewer</p>
<ul>
<li><a href="http://trace2uml.tigris.org/servlets/ProjectDocumentList?folderID=6208">Windows download site</a></li>
<li><a href="http://apt.astade.de/">Linux package</a></li>
@@ -72,7 +72,7 @@
</li>
</ul>
<h4><a href="#create-template-project" name="create-template-project"></a>Create template project</h4>
-<p>After installation of eTrice in Eclipse, we can use the wizard to create the <em>template.c</em> project, which is good starting point for new ROOM applications. Select the menu <em>File -&gt; New -&gt; Other</em> (Ctrl+N) and choose <em>eTrice C Template Project</em>. To complete the wizard press <em>Next</em> and on the next page <em>Finish</em>.</p>
+<p>After installation of eTrice in Eclipse, we can use the wizard to create the <em>template.c</em> project, which is a good starting point for new ROOM applications. Select the menu <em>File -&gt; New -&gt; Other</em> (Ctrl+N) and choose <em>eTrice C Template Project</em>. To complete the wizard press <em>Next</em> and on the next page <em>Finish</em>.</p>
<p><img src="images/013-wizard.png" alt="image"></p>
<p>This will add three projects into your workspace:</p>
<ul>
@@ -90,7 +90,7 @@
<span class="uiElement"><img src="icons/obj16/file_obj.gif"> generate_Template.launch → Run As → generate_TemplateModel.</span>
<p>After that we can build and run the application by right click on file</p>
<span class="uiElement"><img src="icons/obj16/file_obj.gif"> run_Template_Windows.launch → Run As → run_Template_Windows.</span>
-<p>This will trigger the build process, carried out by CDT Eclipse and then subsequently start our application.</p>
+<p>This will trigger the build process, carried out by Eclipse CDT and then subsequently start our application.</p>
<table>
<thead>
<tr>
@@ -113,19 +113,19 @@
</tr>
</tbody>
</table>
-<p>The output of our application is logged in the Console View and it shows the “Hello World”. By typing “quit”, as prompt, and pressing enter, the application terminates regularly.</p>
+<p>The output of our application is logged in the Console View and it shows the “Hello World”. By typing “quit” on the prompt and pressing enter the application terminates regularly.</p>
<p><img src="images/013-quit-hello-msc.png" alt="image"></p>
<h4><a href="#open-the-message-sequence-chart" name="open-the-message-sequence-chart"></a>Open the Message Sequence Chart</h4>
-<p>After termination, we can inspect the behavior of our application. It is recorded in the form of a MSC (Message Sequence Chart) and can now be used for debugging or documentation purpose. Open <em>msc.seq</em> or <em>subSystemRef_Async.seq</em> in the folder <em>log</em> using the tool Trace2UML (if the file is not present, try to refresh (F5) the folder <em>log</em>).</p>
+<p>After termination, we can inspect the behavior of our application. It is recorded in the form of a MSC (Message Sequence Chart) and can now be used for debugging or documentation purposes. Open <em>msc.seq</em> or <em>subSystemRef_Async.seq</em> in the folder <em>log</em> using the tool Trace2UML (if the file is not present, try to refresh (F5) the folder <em>log</em>).</p>
<p><span class="label label-info">Note:</span> The Trace2UML (Open Source tool) download links can be found in the Preconditions of <a href="#getting-started-c">Getting Started</a>.</p>
-<p>Yet the MSC is nearly empty having not recorded any interaction between actors. It shows that <em>topActor</em> (full instance path <em>/LogSys/subSystemRef/topActor</em>) has taken <em>helloState</em>. In the next PingPong tutorial we are going to create a more sophisticated and vivid eTrice application introducing actor building blocks and message protocols.</p>
+<p>Yet the MSC is nearly empty having not recorded any interaction between actors. It shows that <em>topActor</em> (full instance path <em>/LogSys/subSystemRef/topActor</em>) has assumed <em>helloState</em>. In the next PingPong tutorial we are going to create a more sophisticated and vivid eTrice application introducing actor building blocks and message protocols.</p>
<p><img src="images/013-hello-msc.png" alt="image"></p>
<h2><a href="#getting-started-java" name="getting-started-java"></a>Getting Started Java</h2>
-<p>In this tutorial you will get a first look at a very simple eTrice model. The goal is to learn the work flow of eTrice and to understand a few basic features of ROOM.</p>
+<p>In this tutorial you will have a first look at a very simple eTrice model. The goal is to learn the work flow of eTrice and to understand a few basic features of ROOM.</p>
<p><strong>Preconditions</strong>:</p>
<ul>
<li>
- <p>Installed JDT Eclipse</p></li>
+ <p>Installed Eclipse JDT</p></li>
<li>
<p>Activated <em>Build Automatically</em> option in Eclipse: <em>Project -&gt; Build Automatically</em></p></li>
<li>
@@ -136,7 +136,7 @@
</ul>
</li>
<li>
- <p>Optional: Install <a href="http://trace2uml.stage.tigris.org/">Trace2UML</a>, a Open Source MSC viewer</p>
+ <p>Optional: Install <a href="http://trace2uml.stage.tigris.org/">Trace2UML</a>, an Open Source MSC viewer</p>
<ul>
<li><a href="http://trace2uml.tigris.org/servlets/ProjectDocumentList?folderID=6208">Windows download site</a></li>
<li><a href="http://apt.astade.de/">Linux package</a></li>
@@ -144,7 +144,7 @@
</li>
</ul>
<h4><a href="#create-template-project" name="create-template-project"></a>Create template project</h4>
-<p>After installation of eTrice in Eclipse, we can use the wizard to create the template project, which is good starting point for new ROOM applications. Select the menu <em>File -&gt; New -&gt; Other</em> (Ctrl+N) and choose <em>eTrice Java Template Project</em>. Name the project <em>TemplateModel</em> and press <em>Next</em>. On the next page select <em>use Eclipse JDT build</em> and press <em>Finish</em>.</p>
+<p>After installation of eTrice in Eclipse, we can use the wizard to create the template project, which is a good starting point for new ROOM applications. Select the menu <em>File -&gt; New -&gt; Other</em> (Ctrl+N) and choose <em>eTrice Java Template Project</em>. Name the project <em>TemplateModel</em> and press <em>Next</em>. On the next page select <em>use Eclipse JDT build</em> and press <em>Finish</em>.</p>
<p><img src="images/014-wizard.png" alt="image"></p>
<p>This will add three projects into your workspace, the library projects <em>runtime.java</em> and <em>modellib.java</em> and our application project <em>TemplateModel</em>. Now open the <em>TemplateModel.room</em> in the model folder of our project.</p>
<p><img src="images/014-after-wizard.png" alt="image"></p>
@@ -157,7 +157,7 @@
<span class="uiElement"><img src="icons/obj16/file_obj.gif"> generate_Template.launch → Run As → generate_TemplateModel</span>
<p>After that we can build and run the application by right click on file</p>
<span class="uiElement"><img src="icons/obj16/file_obj.gif"> run_TemplateModel.launch → Run As → run_TemplateModell</span>
-<p>This will trigger the build process, carried out by JDT Eclipse and then subsequently start our application.</p>
+<p>This will trigger the build process, carried out by Eclipse JDT and then subsequently start our application.</p>
<table>
<thead>
<tr>
@@ -180,16 +180,16 @@
</tr>
</tbody>
</table>
-<p>The output of our application is logged in the Console View and it shows the “Hello World”. By typing “quit”, as prompt, and pressing enter, the application terminates regularly.</p>
+<p>The output of our application is logged in the Console View and it shows the “Hello World”. By typing “quit” on the prompt and pressing enter the application terminates regularly.</p>
<p><img src="images/014-quit-hello-msc.png" alt="image"></p>
<h4><a href="#open-the-message-sequence-chart" name="open-the-message-sequence-chart"></a>Open the Message Sequence Chart</h4>
-<p>After termination, we can inspect the behavior of our application. It is recorded in the form of a MSC (Message Sequence Chart) and can now be used for debugging or documentation purpose. Open <em>msc.seq</em> or <em>subSystemRef_Async.seq</em> in the folder <em>log</em> using the tool Trace2UML (if the file is not present, try to refresh (F5) the folder <em>log</em>).</p>
+<p>After termination, we can inspect the behavior of our application. It is recorded in the form of a MSC (Message Sequence Chart) and can now be used for debugging or documentation purposes. Open <em>msc.seq</em> or <em>subSystemRef_Async.seq</em> in the folder <em>log</em> using the tool Trace2UML (if the file is not present, try to refresh (F5) the folder <em>log</em>).</p>
<p><span class="label label-info">Note:</span> The Trace2UML (Open Source tool) download links can be found in the Preconditions of <a href="#getting-started-java">Getting Started</a>.</p>
-<p>Yet the MSC is nearly empty having not recorded any interaction between actors. It shows that <em>topActor</em> (full instance path <em>/LogSys/subSystemRef/topActor</em>) has taken <em>helloState</em>. In the next PingPong tutorial we are going to create a more sophisticated and vivid eTrice application introducing actor building blocks and message protocols.</p>
+<p>Yet the MSC is nearly empty having not recorded any interaction between actors. It shows that <em>topActor</em> (full instance path <em>/LogSys/subSystemRef/topActor</em>) has assumed <em>helloState</em>. In the next PingPong tutorial we are going to create a more sophisticated and vivid eTrice application introducing actor building blocks and message protocols.</p>
<p><img src="images/014-hello-msc.png" alt="image"></p>
<h2><a href="#tutorial-ping-pong-java-and-c" name="tutorial-ping-pong-java-and-c"></a>Tutorial Ping Pong Java and C</h2>
<h3><a href="#scope" name="scope"></a>Scope</h3>
-<p>This tutorial describes how to create a simple hierarchical actor system of actors communicating via ports and bindings. Additionally you will use the Timing Service from the eTrice model library. This tutorial can be done for the target languages Java or C. For the Ping Pong scenario we want to create a model with a sender and a reveiver of a message. The receiver has to wait for the ping message from the sender, wait for a second and respond with a pong message.</p>
+<p>This tutorial describes how to create a simple hierarchical actor system of actors communicating via ports and bindings. Additionally you will use the Timing Service from the eTrice model library. This tutorial can be done for the target languages Java or C. For the Ping Pong scenario we want to create a model with a sender and a receiver of a message. The receiver has to wait for the ping message from the sender, wait for a second and respond with a pong message.</p>
<p>The resulting Message Sequence Chart (MSC) at the end of this tutorial should look like this:</p>
<p><img src="images/015-msc.png" alt="image"></p>
<p>We will take this MSC as specification for the desired behavior.</p>
@@ -238,7 +238,7 @@
<p>Remaining tasks:</p>
<ul>
<li>
- <p>creating actor hierarchic actor structure by using classes <em>Sender</em> <em>Receiver</em></p></li>
+ <p>creating the hierarchic actor structure by using classes the <em>Sender</em> and <em>Receiver</em></p></li>
<li>
<p>establish port binding</p></li>
<li>
@@ -248,23 +248,23 @@
<li>
<p>generate and run application, then verify resulting MSC</p></li>
</ul>
-<p>We are going to create hierarchic actor structure and <em>TopActor</em> will functions as a pure container actor. Thus its current state machine is obsolete, we can ignore or delete it.</p>
+<p>We are going to create the hierarchic actor structure and <em>TopActor</em> will serve as a pure container actor. Thus its current state machine is obsolete, we can ignore or delete it.</p>
<p>We continue to add the actors graphically and open the structure diagram of <em>TopActor</em> by right-click in the Outline View on <em>TopActor -&gt; Edit Structure</em>.</p>
<p><img src="images/015-edit-structure-top.png" alt="image"></p>
-<p>Drag and Drop an <em>ActorRef</em> from the <em>Palette</em> within the borders and name the new actor reference <em>sender</em> and set the type to ActorClass <em>Sender</em>. Repeat the step for the <em>receiver</em>.</p>
+<p>Drag and Drop an <em>ActorRef</em> from the <em>Palette</em> within the borders and name the new actor reference <em>sender</em> and set the type to ActorClass <em>Sender</em>. Repeat the step for the <em>receiver</em> of ActorClass type <em>Receiver</em>.</p>
<p><img src="images/015-add-sender.png" alt="image"></p>
-<p>Finally we connect the ports of both actors using the <em>Binding</em> tool in the <em>Palette</em>. Drag a connection between the two port to establish a Binding.</p>
+<p>Finally we connect the ports of both actors using the <em>Binding</em> tool in the <em>Palette</em>. Drag a connection between the two ports to establish a Binding.</p>
<p><img src="images/015-add-binding.png" alt="image"></p>
<h3><a href="#implement-the-behavior" name="implement-the-behavior"></a>Implement the Behavior</h3>
-<p>We will implement two finite state machines (*FSM*s) to define the event driven behavior of the actors <em>Sender</em> and <em>Receiver</em>.</p>
+<p>We will implement two finite state machines (FSMs) to define the event driven behavior of the actor classes <em>Sender</em> and <em>Receiver</em>.</p>
<p>Before you start with the implementation, have a look at the MSC with the specification of the behavior.</p>
-<p>Lets start with the <em>Sender</em>. Right click to <em>sender</em> <em>Open Ref Behavior</em> and in the structure diagram of <em>TopActor</em>.</p>
+<p>Lets start with the <em>Sender</em>. In the structure diagram of <em>TopActor</em> right click on <em>sender</em> and select <em>Open Ref Behavior</em>.</p>
<p><img src="images/015-open-behavior-sender.png" alt="image"></p>
<p>According to our specification:</p>
<blockquote>
- <p><em>Sender</em> initially should send the message <em>ping</em> and then take a state named <em>sendingPing</em>. After receiving the message <em>pong</em> it should remain in a state named <em>receivedPong</em>.</p>
+ <p><em>Sender</em> initially should send the message <em>ping</em> and then assume a state named <em>sendingPing</em>. After receiving the message <em>pong</em> it should switch to a state named <em>receivedPong</em>.</p>
</blockquote>
-<p>Drag and Drop the <em>Initial Point</em> and a <em>State</em> into the diagram. The latter causes the opening of the dialog <em>Edit State</em>, in which we type the name <em>sendingPing</em> and specify the entry code <code>senderPort.ping();</code>. Note the content assist is activated by pressing CTRL+Space.</p>
+<p>Drag and Drop the <em>Initial Point</em> and a <em>State</em> into the diagram. The latter causes the opening of the dialog <em>Edit State</em>, in which we type the name <em>sendingPing</em> and specify the entry code <code>senderPort.ping();</code>.<br>Note that the content assist is activated by pressing CTRL+Space.</p>
<p><img src="images/015-edit-sending.png" alt="image"></p>
<p>In the same manner we create a second <em>State</em> named <em>receivedPong</em> but without any action.</p>
<p>Use the <em>Transition</em> tool to draw the initial transition to <em>sendingPing</em>. The dialog <em>Edit Transition</em> will open and we just click <em>OK</em> as no action is required. Note that initial transitions do not have any trigger events.</p>
@@ -284,7 +284,7 @@
<blockquote>
<p><code>timingService.startTimeout(500);</code></p>
</blockquote>
-<p>We draw a transition from <em>receivedPing</em> to <em>sentPong</em>. The event trigger is the respond <em>timeout</em> of the timing service.</p>
+<p>We draw a transition from <em>receivedPing</em> to <em>sentPong</em>. The trigger event is the respond <em>timeout</em> of the timing service.</p>
<p><img src="images/015-transition-timeout.png" alt="image"></p>
<p>In the entry code of the state <em>sentPong</em> we send the message <em>pong</em> back to the <em>Sender</em>: <code>recvPort.pong();</code></p>
<p>Now the behavior of <em>Receiver</em> is complete, too. It should look like this:</p>
@@ -292,9 +292,9 @@
<p>The PingPong model is done now. You can generate, compile and run it as described in <em>Hello World for C</em> or <em>Hello World for Java</em>. The generated MSC in folder <em>log</em> should show the same MSC we used to specify the behavior at the beginning of this tutorial.</p>
<p><img src="images/015-msc.png" alt="image"></p>
<h3><a href="#summary" name="summary"></a>Summary</h3>
-<p>Within this tutorial you have learned how to create a FSM with transitions triggered by incoming messages. You have used entry code to send messages and have used the timing service from the model library. You are now familiar with the basic features of eTrice. Further tutorials and examples will take this knowledge as a precondition.</p>
+<p>Within this tutorial you have learned how to create a FSM with transitions triggered by incoming messages. You have used entry code to send messages and have used the timing service from the model library. You are now familiar with the basic features of eTrice. Further tutorials and examples will assume that the reader is already familiar with this basic knowledge.</p>
<h2><a href="#troubleshooting" name="troubleshooting"></a>Troubleshooting</h2>
-<p>If the application fails to start, the cause mainly is located in the generation or build process. Check the respective console for potential errors:</p>
+<p>If the application fails to start, look for problems in the code generation and in the build process. Check the respective console for potential errors:</p>
<h4><a href="#generation-error" name="generation-error"></a>Generation error</h4>
<p>The <em>eTrice C/Java Generator Console</em> outputs any errors, that were detected during generation, like model validation errors or missing imports/references.</p>
<p><img src="images/020-gen-console.png" alt="image"></p>

Back to the top