Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2011-11-14 16:11:18 +0000
committerHenrik Rentz-Reichert2011-11-14 16:11:18 +0000
commit4ffadd5aacfcaf92757e53d38731edea2be5e5e8 (patch)
tree92fc864cc2d024dfd0b7f93177ed9e59f96e71e1
parent0ba9ea7e72a8178a032bf6f633e72400c26a14bf (diff)
parent64d688ad437607a1d70e3d53f72a61ed2b92cef4 (diff)
downloadorg.eclipse.etrice-4ffadd5aacfcaf92757e53d38731edea2be5e5e8.tar.gz
org.eclipse.etrice-4ffadd5aacfcaf92757e53d38731edea2be5e5e8.tar.xz
org.eclipse.etrice-4ffadd5aacfcaf92757e53d38731edea2be5e5e8.zip
Merge branch 'master' of ssh://hrentzreich@git.eclipse.org/gitroot/etrice/org.eclipse.etrice.git
-rw-r--r--plugins/org.eclipse.etrice.doc/build/etrice.textile31
-rw-r--r--plugins/org.eclipse.etrice.doc/build/etrice.xml52
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.textile2
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/025-tutorial-sending-data.textile8
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/030-tutorial-ped-lights.textile4
-rw-r--r--plugins/org.eclipse.etrice.doc/help/Addadataclass.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/help/DefineActorStructureandBehavior.html3
-rw-r--r--plugins/org.eclipse.etrice.doc/help/Generateandrunthemodel.html7
-rw-r--r--plugins/org.eclipse.etrice.doc/help/ImplementtheBehavior.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html4
-rw-r--r--plugins/org.eclipse.etrice.doc/help/SettinguptheWorkspace.html250
-rw-r--r--plugins/org.eclipse.etrice.doc/help/Setupthemodel.html34
-rw-r--r--plugins/org.eclipse.etrice.doc/help/Summary3.html11
-rw-r--r--plugins/org.eclipse.etrice.doc/help/TutorialPedestrianLights.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData02.pngbin101519 -> 107195 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData04.pngbin54479 -> 79206 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData05.pngbin54109 -> 147304 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData06.pngbin39724 -> 156875 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData08.pngbin67862 -> 89193 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData09.pngbin100313 -> 106392 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData10.pngbin94082 -> 117875 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData11.pngbin124828 -> 142809 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData12.pngbin93978 -> 105775 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/025-SendingData13.pngbin57849 -> 63728 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/030-PedLights01.pngbin40586 -> 59189 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/030-PedLights02.pngbin59926 -> 89976 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/030-PedLights03.pngbin91507 -> 123151 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice.html65
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData02.pngbin101519 -> 107195 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData04.pngbin54479 -> 79206 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData05.pngbin54109 -> 147304 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData06.pngbin39724 -> 156875 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData08.pngbin67862 -> 89193 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData09.pngbin100313 -> 106392 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData10.pngbin94082 -> 117875 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData11.pngbin124828 -> 142809 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData12.pngbin93978 -> 105775 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/025-SendingData13.pngbin57849 -> 63728 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/030-PedLights01.pngbin40586 -> 59189 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/030-PedLights02.pngbin59926 -> 89976 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/030-PedLights03.pngbin91507 -> 123151 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/manual/etrice.pdfbin3877134 -> 4252710 bytes
42 files changed, 292 insertions, 185 deletions
diff --git a/plugins/org.eclipse.etrice.doc/build/etrice.textile b/plugins/org.eclipse.etrice.doc/build/etrice.textile
index 90202fdb4..e071be100 100644
--- a/plugins/org.eclipse.etrice.doc/build/etrice.textile
+++ b/plugins/org.eclipse.etrice.doc/build/etrice.textile
@@ -489,7 +489,7 @@ The application should switch on and off the LED for 5 seconds in a 1 second int
Right click to ??BlinkyController?? and select ??Edit Behavior??.
Drag and Drop the ??Initial Point?? and two ??States?? into the top state. Name the states ??on?? and ??off??.
-Use the ??Transition?? tool to draw transitions from ??init?? to ??off?? from ??on?? to ??off?? and from ??off?? to ??on??.
+Use the ??Transition?? tool to draw transitions from ??init?? to ??on?? from ??on?? to ??off?? and from ??off?? to ??on??.
Open the transition dialog by double click the arrow to specify the trigger event and the action code of each transition. Note that the initial transition does not have a trigger event.
@@ -623,7 +623,7 @@ Position the cursor outside any class definition and right click the mouse withi
!images/025-SendingData01.png!
Select ??DataClass - data class skeleton?? and name it ??DemoData??.
-Remove the operations and ass the following Attributes:
+Remove the operations and add the following Attributes:
bc..
DataClass DemoData {
@@ -754,6 +754,7 @@ Operation printData(d: DemoData) : void {
bq.
For MrPing create the following state machine:
+(Remember that you can copy and paste the action code from the tutorial directory.)
!images/025-SendingData08.png!
@@ -785,7 +786,7 @@ The model is finished now and can be found in /org.eclipse.etrice.tutorials/mode
h2. Generate and run the model
-With the MWe2 workflow generate the code and run the model.
+Generate the code by right click to ??gen_SendingData.launch?? and run it as ??gen_SendingData??. Run the model.
The output should look like this:
bq..
@@ -840,20 +841,22 @@ bq.
h2. Summary
-Within the first loop an integer value will be incremented from ??MrPong?? and sent back to ??MrPing??. As long as the guard is true ??MrPing?? sends back the value.
+Within the first loop an integer value will be incremented by ??MrPong?? and sent back to ??MrPing??. As long as the guard is true ??MrPing?? sends back the value.
-Within the ??next?? transition, ??MrPing?? creates a data class and sends the default values. Than ??MrPing?? changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all.
-However, for performance reasons some applications requires sending data by value. In this case the user is responsible for the life cycle of the object. In Java the VM takes care about the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken by sending references.
+Within the ??next?? transition, ??MrPing?? creates a data class and sends the default values. Then ??MrPing?? changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called ??sending data by value??.
+However, for performance reasons some applications requires ??sending data by reference??. In this case the user is responsible for the life cycle of the object. In Java the VM takes care of the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken when sending references.
For sending data by reference you simply have to add the keyword ??ref?? to the protocol definition.
bc. Message ping(data: DemoData ref)
+Make the test and inspect the console output.
+
h1. Tutorial Pedestrian Lights
h2. Scope
-The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model => external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received from the model.
+The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model => external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received by the model.
This tutorial is not like hello world or blinky. Being familiar with the basic tool features is mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool features.
@@ -873,9 +876,17 @@ There are several possibilities to receive external events (e.g. TCP/UDP Socket,
h2. Setup the model
* Use the ??New Model Wizzard?? to create a new eTrice project and name it ??PedLightsController??.
-* Copy the package ??de.protos.PedLightGUI?? to your ??src?? directory (see blinky tutorial).
-* In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration).
-* Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory:
+* Copy the package ??org.eclipse.etrice.tutorials.PedLightGUI?? to your ??src?? directory (see blinky tutorial).
+* In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration). The error markers will disappear after the code is generated from the model.
+* Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory.
+* Adapt the import statement to your path.
+bc..
+import room.basic.service.timing.* from "../../org.eclipse.etrice.modellib/models/TimingService.room"
+bq.
+
+* Generate the code from the model.
+* Add the org.eclipse.etrice.modellib to the Java Class Path of your project.
+* All error markers should be disappeared and the model should be operable.
* Arrange the Structure and the Statemachines to understand the model
!images/030-PedLights01.png!
diff --git a/plugins/org.eclipse.etrice.doc/build/etrice.xml b/plugins/org.eclipse.etrice.doc/build/etrice.xml
index 976c45729..dbe9d8e84 100644
--- a/plugins/org.eclipse.etrice.doc/build/etrice.xml
+++ b/plugins/org.eclipse.etrice.doc/build/etrice.xml
@@ -849,7 +849,7 @@
Use the
<citation>Transition</citation> tool to draw transitions from
<citation>init</citation> to
- <citation>off</citation> from
+ <citation>on</citation> from
<citation>on</citation> to
<citation>off</citation> and from
<citation>off</citation> to
@@ -1091,7 +1091,7 @@ carLights.setState(TrafficLight3.OFF);
<para>Select
<citation>DataClass – data class skeleton</citation> and name it
<citation>DemoData</citation>.
- Remove the operations and ass the following Attributes:
+ Remove the operations and add the following Attributes:
</para>
<literallayout><code> DataClass DemoData {
Attribute int32Val: int32 = "4711"
@@ -1270,7 +1270,8 @@ carLights.setState(TrafficLight3.OFF);
<blockquote>
<para></para>
</blockquote>
- <para>For MrPing create the following state machine:</para>
+ <para>For MrPing create the following state machine:
+ (Remember that you can copy and paste the action code from the tutorial directory.)</para>
<para>
<mediaobject>
<imageobject>
@@ -1335,8 +1336,11 @@ carLights.setState(TrafficLight3.OFF);
</section>
<section id="Generateandrunthemodel">
<title>Generate and run the model</title>
- <para>With the MWe2 workflow generate the code and run the model.
- The output should look like this:</para>
+ <para>Generate the code by right click to
+ <citation>gen_SendingData.launch</citation> and run it as
+ <citation>gen_SendingData</citation>. Run the model.
+ The output should look like this:
+ </para>
<blockquote>
<para>
type &#8218;quit’ to exit
@@ -1393,29 +1397,32 @@ carLights.setState(TrafficLight3.OFF);
</section>
<section id="Summary3">
<title>Summary</title>
- <para>Within the first loop an integer value will be incremented from
+ <para>Within the first loop an integer value will be incremented by
<citation>MrPong</citation> and sent back to
<citation>MrPing</citation>. As long as the guard is true
<citation>MrPing</citation> sends back the value.
</para>
<para>Within the
<citation>next</citation> transition,
- <citation>MrPing</citation> creates a data class and sends the default values. Than
- <citation>MrPing</citation> changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all.
- However, for performance reasons some applications requires sending data by value. In this case the user is responsible for the life cycle of the object. In Java the VM takes care about the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken by sending references.
+ <citation>MrPing</citation> creates a data class and sends the default values. Then
+ <citation>MrPing</citation> changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called
+ <citation>sending data by value</citation>.
+ However, for performance reasons some applications requires
+ <citation>sending data by reference</citation>. In this case the user is responsible for the life cycle of the object. In Java the VM takes care of the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken when sending references.
</para>
<para>For sending data by reference you simply have to add the keyword
<citation>ref</citation> to the protocol definition.
</para>
<literallayout><code>Message ping(data: DemoData ref)
</code></literallayout>
+ <para>Make the test and inspect the console output.</para>
</section>
</chapter>
<chapter id="TutorialPedestrianLights">
<title>Tutorial Pedestrian Lights</title>
<section id="Scope4">
<title>Scope</title>
- <para>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received from the model.</para>
+ <para>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received by the model.</para>
<para>This tutorial is not like hello world or blinky. Being familiar with the basic tool features is mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool features.</para>
<para>The idea behind the exercise is, to control a Pedestrian crossing light. We will use the same GUI as for the blinky tutorial but now we will use the
<citation>REQUEST</citation> button to start a FSM, which controls the traffic lights.
@@ -1460,15 +1467,34 @@ carLights.setState(TrafficLight3.OFF);
</listitem>
<listitem>
<para>Copy the package
- <citation>de.protos.PedLightGUI</citation> to your
+ <citation>org.eclipse.etrice.tutorials.PedLightGUI</citation> to your
<citation>src</citation> directory (see blinky tutorial).
</para>
</listitem>
<listitem>
- <para>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration).</para>
+ <para>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration). The error markers will disappear after the code is generated from the model.</para>
+ </listitem>
+ <listitem>
+ <para>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory. </para>
+ </listitem>
+ <listitem>
+ <para>Adapt the import statement to your path.</para>
+ </listitem>
+ </itemizedlist>
+ <literallayout><code>import room.basic.service.timing.* from "../../org.eclipse.etrice.modellib/models/TimingService.room"
+</code></literallayout>
+ <blockquote>
+ <para></para>
+ </blockquote>
+ <itemizedlist>
+ <listitem>
+ <para>Generate the code from the model.</para>
+ </listitem>
+ <listitem>
+ <para>Add the org.eclipse.etrice.modellib to the Java Class Path of your project.</para>
</listitem>
<listitem>
- <para>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory:</para>
+ <para>All error markers should be disappeared and the model should be operable. </para>
</listitem>
<listitem>
<para>Arrange the Structure and the Statemachines to understand the model</para>
diff --git a/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.textile b/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.textile
index bd32d6a0c..735d2f9e2 100644
--- a/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.textile
+++ b/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.textile
@@ -141,7 +141,7 @@ The application should switch on and off the LED for 5 seconds in a 1 second int
Right click to ??BlinkyController?? and select ??Edit Behavior??.
Drag and Drop the ??Initial Point?? and two ??States?? into the top state. Name the states ??on?? and ??off??.
-Use the ??Transition?? tool to draw transitions from ??init?? to ??off?? from ??on?? to ??off?? and from ??off?? to ??on??.
+Use the ??Transition?? tool to draw transitions from ??init?? to ??on?? from ??on?? to ??off?? and from ??off?? to ??on??.
Open the transition dialog by double click the arrow to specify the trigger event and the action code of each transition. Note that the initial transition does not have a trigger event.
diff --git a/plugins/org.eclipse.etrice.doc/doc/025-tutorial-sending-data.textile b/plugins/org.eclipse.etrice.doc/doc/025-tutorial-sending-data.textile
index 86ccdae9b..0cd3c1008 100644
--- a/plugins/org.eclipse.etrice.doc/doc/025-tutorial-sending-data.textile
+++ b/plugins/org.eclipse.etrice.doc/doc/025-tutorial-sending-data.textile
@@ -41,7 +41,7 @@ Position the cursor outside any class definition and right click the mouse withi
!images/025-SendingData01.png!
Select ??DataClass - data class skeleton?? and name it ??DemoData??.
-Remove the operations and ass the following Attributes:
+Remove the operations and add the following Attributes:
bc..
DataClass DemoData {
@@ -259,10 +259,10 @@ bq.
h2. Summary
-Within the first loop an integer value will be incremented from ??MrPong?? and sent back to ??MrPing??. As long as the guard is true ??MrPing?? sends back the value.
+Within the first loop an integer value will be incremented by ??MrPong?? and sent back to ??MrPing??. As long as the guard is true ??MrPing?? sends back the value.
-Within the ??next?? transition, ??MrPing?? creates a data class and sends the default values. Than ??MrPing?? changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called ??sending data by value??.
-However, for performance reasons some applications requires ??sending data by reference??. In this case the user is responsible for the life cycle of the object. In Java the VM takes care about the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken by sending references.
+Within the ??next?? transition, ??MrPing?? creates a data class and sends the default values. Then ??MrPing?? changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called ??sending data by value??.
+However, for performance reasons some applications requires ??sending data by reference??. In this case the user is responsible for the life cycle of the object. In Java the VM takes care of the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken when sending references.
For sending data by reference you simply have to add the keyword ??ref?? to the protocol definition.
diff --git a/plugins/org.eclipse.etrice.doc/doc/030-tutorial-ped-lights.textile b/plugins/org.eclipse.etrice.doc/doc/030-tutorial-ped-lights.textile
index 7928994d6..547ef62d7 100644
--- a/plugins/org.eclipse.etrice.doc/doc/030-tutorial-ped-lights.textile
+++ b/plugins/org.eclipse.etrice.doc/doc/030-tutorial-ped-lights.textile
@@ -2,7 +2,7 @@ h1. Tutorial Pedestrian Lights
h2. Scope
-The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model => external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received from the model.
+The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model => external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received by the model.
This tutorial is not like hello world or blinky. Being familiar with the basic tool features is mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool features.
@@ -22,7 +22,7 @@ There are several possibilities to receive external events (e.g. TCP/UDP Socket,
h2. Setup the model
* Use the ??New Model Wizzard?? to create a new eTrice project and name it ??PedLightsController??.
-* Copy the package ??de.protos.PedLightGUI?? to your ??src?? directory (see blinky tutorial).
+* Copy the package ??org.eclipse.etrice.tutorials.PedLightGUI?? to your ??src?? directory (see blinky tutorial).
* In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration). The error markers will disappear after the code is generated from the model.
* Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory.
* Adapt the import statement to your path.
diff --git a/plugins/org.eclipse.etrice.doc/help/Addadataclass.html b/plugins/org.eclipse.etrice.doc/help/Addadataclass.html
index 67b7989d1..39b4202c8 100644
--- a/plugins/org.eclipse.etrice.doc/help/Addadataclass.html
+++ b/plugins/org.eclipse.etrice.doc/help/Addadataclass.html
@@ -34,7 +34,7 @@
<p>Select
[<span class="citation">DataClass &ndash; data class skeleton</span>] and name it
[<span class="citation">DemoData</span>].
- Remove the operations and ass the following Attributes:
+ Remove the operations and add the following Attributes:
</p>
<div class="literallayout">
<p>
diff --git a/plugins/org.eclipse.etrice.doc/help/DefineActorStructureandBehavior.html b/plugins/org.eclipse.etrice.doc/help/DefineActorStructureandBehavior.html
index 826ea9445..d7f5483e9 100644
--- a/plugins/org.eclipse.etrice.doc/help/DefineActorStructureandBehavior.html
+++ b/plugins/org.eclipse.etrice.doc/help/DefineActorStructureandBehavior.html
@@ -123,7 +123,8 @@
<p></p>
</blockquote>
</div>
-<p>For MrPing create the following state machine:</p>
+<p>For MrPing create the following state machine:
+ (Remember that you can copy and paste the action code from the tutorial directory.)</p>
<p>
</p>
diff --git a/plugins/org.eclipse.etrice.doc/help/Generateandrunthemodel.html b/plugins/org.eclipse.etrice.doc/help/Generateandrunthemodel.html
index c3e43e2b5..6a83cc40a 100644
--- a/plugins/org.eclipse.etrice.doc/help/Generateandrunthemodel.html
+++ b/plugins/org.eclipse.etrice.doc/help/Generateandrunthemodel.html
@@ -20,8 +20,11 @@
</div>
</div>
</div>
-<p>With the MWe2 workflow generate the code and run the model.
- The output should look like this:</p>
+<p>Generate the code by right click to
+ [<span class="citation">gen_SendingData.launch</span>] and run it as
+ [<span class="citation">gen_SendingData</span>]. Run the model.
+ The output should look like this:
+ </p>
<div class="blockquote">
<blockquote class="blockquote">
<p>
diff --git a/plugins/org.eclipse.etrice.doc/help/ImplementtheBehavior.html b/plugins/org.eclipse.etrice.doc/help/ImplementtheBehavior.html
index ed69f8a20..4d5d31580 100644
--- a/plugins/org.eclipse.etrice.doc/help/ImplementtheBehavior.html
+++ b/plugins/org.eclipse.etrice.doc/help/ImplementtheBehavior.html
@@ -35,7 +35,7 @@
Use the
[<span class="citation">Transition</span>] tool to draw transitions from
[<span class="citation">init</span>] to
- [<span class="citation">off</span>] from
+ [<span class="citation">on</span>] from
[<span class="citation">on</span>] to
[<span class="citation">off</span>] and from
[<span class="citation">off</span>] to
diff --git a/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html b/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
index aca68c335..6c0ed2b45 100644
--- a/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
+++ b/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
@@ -96,7 +96,7 @@
</div>
</div>
<p>These symbols can only appear on the border of an actor class symbol.</p>
-<table id="N1080A">
+<table id="N1082C">
<tr>
<td>
@@ -197,7 +197,7 @@
</div>
</div>
<p>These symbols can only appear on the border of an actor reference symbol.</p>
-<table id="N10899">
+<table id="N108BB">
<tr>
<td>
diff --git a/plugins/org.eclipse.etrice.doc/help/SettinguptheWorkspace.html b/plugins/org.eclipse.etrice.doc/help/SettinguptheWorkspace.html
index 37f866402..e02bd951e 100644
--- a/plugins/org.eclipse.etrice.doc/help/SettinguptheWorkspace.html
+++ b/plugins/org.eclipse.etrice.doc/help/SettinguptheWorkspace.html
@@ -1,125 +1,125 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Setting up the Workspace</title>
-<link href="book.css" rel="stylesheet" type="text/css">
-<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
-<link rel="home" href="index.html" title="eTrice User Guide">
-<link rel="up" href="index.html" title="eTrice User Guide">
-<link rel="prev" href="ExecutionModels.html" title="Execution Models">
-<link rel="next" href="TutorialHelloWorld.html" title="Tutorial HelloWorld">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Setting up the Workspace</h1>
-<div class="chapter" title="Setting up the Workspace">
-<div class="titlepage">
-<div>
-<div>
-<h2 class="title">
-<a name="SettinguptheWorkspace"></a>Setting up the Workspace</h2>
-</div>
-</div>
-</div>
-<p>ETrice generates code out of ROOM models. The code generator and the generated code relies on a runtime framework and on some ready to use model parts. This parts provide services like:</p>
-<div class="itemizedlist">
-<ul class="itemizedlist" type="disc">
-<li class="listitem">
-<p>messaging</p>
-</li>
-<li class="listitem">
-<p>logging</p>
-</li>
-<li class="listitem">
-<p>timing</p>
-</li>
-</ul>
-</div>
-<p>Additionally some tutorial models will be provided to make it easy to start with eTrice. All this parts must be available in our workspace before you can start working. After installation of eclipse (indigo) and the eTrice plug in your workspace should look like this: </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace01.png"></div>
-<p>
-
-</p>
-<p>Just the
- [<span class="citation">eTrice</span>] menu item is visible from the eTrice tool.
- From the
- [<span class="citation">File</span>] menu select
- [<span class="citation">File-&gt;New-&gt;Project</span>]
- </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace02.png"></div>
-<p>
-
-</p>
-<p>Open the
- [<span class="citation">eTrice</span>] tab and select
- [<span class="citation">eTrice Java ModelLib</span>]
- </p>
-<p>Press
- [<span class="citation">Next</span>] and
- [<span class="citation">Finish</span>] to install the Modellib into your workspace.
- </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace03.png"></div>
-<p>
-
-</p>
-<p>Do the same steps for
- [<span class="citation">eTrice Java Runtime</span>] and
- [<span class="citation">eTrice Java Tutorials</span>]. The resulting workspace should look like this:
- </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace04.png"></div>
-<p>
-
-</p>
-<p>Now workspace is set up and you can perform the tutorials or start with your work.</p>
-<p>The tutorial models are available in the
- [<span class="citation">org.eclipse.etrice.tutorials</span>] project. All tutorials are ready to generate and run without any changes. To start the code generator simply run
- [<span class="citation">gen_org.eclipse.etrice.tutorials.launch</span>] as
- [<span class="citation">gen_org.eclipse.etrice.tutorials.launch</span>]:
- </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace05.png"></div>
-<p>
-
-</p>
-<p>After generation for each tutorial a java file called
- [<span class="citation">SubSystem_ModelnameRunner.java</span>] is generated. To run the model simply run this file as a java application:
- </p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace06.png"></div>
-<p>
-
-</p>
-<p>To stop the application type &bdquo;quit&rdquo; in the console window.</p>
-<p>
-
-</p>
-<div class="mediaobject">
-<img src="images/013-SetupWorkspace07.png"></div>
-<p>
-
-</p>
-<p>Performing the tutorials will setup an dedicated project for each tutorial. Therefore there are some slight changes especially whenever a path must be set (e.g. to the model library) within your own projects. All this is described in the tutorials.</p>
-</div>
-</body>
-</html>
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Setting up the Workspace</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="eTrice User Guide">
+<link rel="up" href="index.html" title="eTrice User Guide">
+<link rel="prev" href="ExecutionModels.html" title="Execution Models">
+<link rel="next" href="TutorialHelloWorld.html" title="Tutorial HelloWorld">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Setting up the Workspace</h1>
+<div class="chapter" title="Setting up the Workspace">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title">
+<a name="SettinguptheWorkspace"></a>Setting up the Workspace</h2>
+</div>
+</div>
+</div>
+<p>ETrice generates code out of ROOM models. The code generator and the generated code relies on a runtime framework and on some ready to use model parts. This parts provide services like:</p>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>messaging</p>
+</li>
+<li class="listitem">
+<p>logging</p>
+</li>
+<li class="listitem">
+<p>timing</p>
+</li>
+</ul>
+</div>
+<p>Additionally some tutorial models will be provided to make it easy to start with eTrice. All this parts must be available in our workspace before you can start working. After installation of eclipse (indigo) and the eTrice plug in your workspace should look like this: </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace01.png"></div>
+<p>
+
+</p>
+<p>Just the
+ [<span class="citation">eTrice</span>] menu item is visible from the eTrice tool.
+ From the
+ [<span class="citation">File</span>] menu select
+ [<span class="citation">File-&gt;New-&gt;Project</span>]
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace02.png"></div>
+<p>
+
+</p>
+<p>Open the
+ [<span class="citation">eTrice</span>] tab and select
+ [<span class="citation">eTrice Java ModelLib</span>]
+ </p>
+<p>Press
+ [<span class="citation">Next</span>] and
+ [<span class="citation">Finish</span>] to install the Modellib into your workspace.
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace03.png"></div>
+<p>
+
+</p>
+<p>Do the same steps for
+ [<span class="citation">eTrice Java Runtime</span>] and
+ [<span class="citation">eTrice Java Tutorials</span>]. The resulting workspace should look like this:
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace04.png"></div>
+<p>
+
+</p>
+<p>Now workspace is set up and you can perform the tutorials or start with your work.</p>
+<p>The tutorial models are available in the
+ [<span class="citation">org.eclipse.etrice.tutorials</span>] project. All tutorials are ready to generate and run without any changes. To start the code generator simply run
+ [<span class="citation">gen_org.eclipse.etrice.tutorials.launch</span>] as
+ [<span class="citation">gen_org.eclipse.etrice.tutorials.launch</span>]:
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace05.png"></div>
+<p>
+
+</p>
+<p>After generation for each tutorial a java file called
+ [<span class="citation">SubSystem_ModelnameRunner.java</span>] is generated. To run the model simply run this file as a java application:
+ </p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace06.png"></div>
+<p>
+
+</p>
+<p>To stop the application type &bdquo;quit&rdquo; in the console window.</p>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/013-SetupWorkspace07.png"></div>
+<p>
+
+</p>
+<p>Performing the tutorials will setup an dedicated project for each tutorial. Therefore there are some slight changes especially whenever a path must be set (e.g. to the model library) within your own projects. All this is described in the tutorials.</p>
+</div>
+</body>
+</html>
diff --git a/plugins/org.eclipse.etrice.doc/help/Setupthemodel.html b/plugins/org.eclipse.etrice.doc/help/Setupthemodel.html
index 62c10b9c0..2ea51f5ec 100644
--- a/plugins/org.eclipse.etrice.doc/help/Setupthemodel.html
+++ b/plugins/org.eclipse.etrice.doc/help/Setupthemodel.html
@@ -30,15 +30,43 @@
</li>
<li class="listitem">
<p>Copy the package
- [<span class="citation">de.protos.PedLightGUI</span>] to your
+ [<span class="citation">org.eclipse.etrice.tutorials.PedLightGUI</span>] to your
[<span class="citation">src</span>] directory (see blinky tutorial).
</p>
</li>
<li class="listitem">
-<p>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration).</p>
+<p>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration). The error markers will disappear after the code is generated from the model.</p>
</li>
<li class="listitem">
-<p>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory:</p>
+<p>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory. </p>
+</li>
+<li class="listitem">
+<p>Adapt the import statement to your path.</p>
+</li>
+</ul>
+</div>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;room.basic.service.timing.*&nbsp;from&nbsp;"../../org.eclipse.etrice.modellib/models/TimingService.room"&nbsp;<br>
+
+</code>
+</p>
+</div>
+<div class="blockquote">
+<blockquote class="blockquote">
+<p></p>
+</blockquote>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>Generate the code from the model.</p>
+</li>
+<li class="listitem">
+<p>Add the org.eclipse.etrice.modellib to the Java Class Path of your project.</p>
+</li>
+<li class="listitem">
+<p>All error markers should be disappeared and the model should be operable. </p>
</li>
<li class="listitem">
<p>Arrange the Structure and the Statemachines to understand the model</p>
diff --git a/plugins/org.eclipse.etrice.doc/help/Summary3.html b/plugins/org.eclipse.etrice.doc/help/Summary3.html
index a7d8c68c5..a07c3f9bb 100644
--- a/plugins/org.eclipse.etrice.doc/help/Summary3.html
+++ b/plugins/org.eclipse.etrice.doc/help/Summary3.html
@@ -20,16 +20,18 @@
</div>
</div>
</div>
-<p>Within the first loop an integer value will be incremented from
+<p>Within the first loop an integer value will be incremented by
[<span class="citation">MrPong</span>] and sent back to
[<span class="citation">MrPing</span>]. As long as the guard is true
[<span class="citation">MrPing</span>] sends back the value.
</p>
<p>Within the
[<span class="citation">next</span>] transition,
- [<span class="citation">MrPing</span>] creates a data class and sends the default values. Than
- [<span class="citation">MrPing</span>] changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all.
- However, for performance reasons some applications requires sending data by value. In this case the user is responsible for the life cycle of the object. In Java the VM takes care about the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken by sending references.
+ [<span class="citation">MrPing</span>] creates a data class and sends the default values. Then
+ [<span class="citation">MrPing</span>] changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called
+ [<span class="citation">sending data by value</span>].
+ However, for performance reasons some applications requires
+ [<span class="citation">sending data by reference</span>]. In this case the user is responsible for the life cycle of the object. In Java the VM takes care of the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken when sending references.
</p>
<p>For sending data by reference you simply have to add the keyword
[<span class="citation">ref</span>] to the protocol definition.
@@ -41,6 +43,7 @@
</code>
</p>
</div>
+<p>Make the test and inspect the console output.</p>
</div>
</body>
</html>
diff --git a/plugins/org.eclipse.etrice.doc/help/TutorialPedestrianLights.html b/plugins/org.eclipse.etrice.doc/help/TutorialPedestrianLights.html
index 4a89f3863..9565204ed 100644
--- a/plugins/org.eclipse.etrice.doc/help/TutorialPedestrianLights.html
+++ b/plugins/org.eclipse.etrice.doc/help/TutorialPedestrianLights.html
@@ -42,7 +42,7 @@
</div>
</div>
</div>
-<p>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received from the model.</p>
+<p>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received by the model.</p>
<p>This tutorial is not like hello world or blinky. Being familiar with the basic tool features is mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool features.</p>
<p>The idea behind the exercise is, to control a Pedestrian crossing light. We will use the same GUI as for the blinky tutorial but now we will use the
[<span class="citation">REQUEST</span>] button to start a FSM, which controls the traffic lights.
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData02.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData02.png
index 19312cc80..fe00fc53a 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData02.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData04.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData04.png
index 4cccf842c..45f75a716 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData04.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData04.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData05.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData05.png
index fd825495d..454cf47ae 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData05.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData05.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData06.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData06.png
index ab03dd889..fa54fc71a 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData06.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData06.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData08.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData08.png
index a2882c140..1a3f71961 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData08.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData08.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData09.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData09.png
index e882d057e..7a18a9028 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData09.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData09.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData10.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData10.png
index 40fa0c8b6..ef7f41a19 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData10.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData10.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData11.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData11.png
index 16ea1fb67..9d24c7b90 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData11.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData11.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData12.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData12.png
index 148bbd2f4..fff129e47 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData12.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData12.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData13.png b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData13.png
index 7efefd350..4d8ef706c 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/025-SendingData13.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/025-SendingData13.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights01.png b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights01.png
index bc4fc1085..f9788c1c8 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights01.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights01.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights02.png b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights02.png
index d1670a648..a163f1bc0 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights02.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights03.png b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights03.png
index bdf251429..b503b9add 100644
--- a/plugins/org.eclipse.etrice.doc/help/images/030-PedLights03.png
+++ b/plugins/org.eclipse.etrice.doc/help/images/030-PedLights03.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice.html b/plugins/org.eclipse.etrice.doc/html/etrice.html
index 4025b7bac..49fb8f3dd 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice.html
@@ -1401,7 +1401,7 @@
Use the
[<span class="citation">Transition</span>] tool to draw transitions from
[<span class="citation">init</span>] to
- [<span class="citation">off</span>] from
+ [<span class="citation">on</span>] from
[<span class="citation">on</span>] to
[<span class="citation">off</span>] and from
[<span class="citation">off</span>] to
@@ -1723,7 +1723,7 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
<p>Select
[<span class="citation">DataClass &ndash; data class skeleton</span>] and name it
[<span class="citation">DemoData</span>].
- Remove the operations and ass the following Attributes:
+ Remove the operations and add the following Attributes:
</p>
<div class="literallayout">
<p>
@@ -1979,7 +1979,8 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
<p></p>
</blockquote>
</div>
-<p>For MrPing create the following state machine:</p>
+<p>For MrPing create the following state machine:
+ (Remember that you can copy and paste the action code from the tutorial directory.)</p>
<p>
</p>
@@ -2064,8 +2065,11 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
-<p>With the MWe2 workflow generate the code and run the model.
- The output should look like this:</p>
+<p>Generate the code by right click to
+ [<span class="citation">gen_SendingData.launch</span>] and run it as
+ [<span class="citation">gen_SendingData</span>]. Run the model.
+ The output should look like this:
+ </p>
<div class="blockquote">
<blockquote class="blockquote">
<p>
@@ -2133,16 +2137,18 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
-<p>Within the first loop an integer value will be incremented from
+<p>Within the first loop an integer value will be incremented by
[<span class="citation">MrPong</span>] and sent back to
[<span class="citation">MrPing</span>]. As long as the guard is true
[<span class="citation">MrPing</span>] sends back the value.
</p>
<p>Within the
[<span class="citation">next</span>] transition,
- [<span class="citation">MrPing</span>] creates a data class and sends the default values. Than
- [<span class="citation">MrPing</span>] changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all.
- However, for performance reasons some applications requires sending data by value. In this case the user is responsible for the life cycle of the object. In Java the VM takes care about the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken by sending references.
+ [<span class="citation">MrPing</span>] creates a data class and sends the default values. Then
+ [<span class="citation">MrPing</span>] changes the values and sends the class again. At this point you should note that during the send operation, a copy of the data class will be created and sent. Otherwise it would not be possible to send the same object two times, even more it would not be possible to send a stack object at all. This type of data passing is called
+ [<span class="citation">sending data by value</span>].
+ However, for performance reasons some applications requires
+ [<span class="citation">sending data by reference</span>]. In this case the user is responsible for the life cycle of the object. In Java the VM takes care of the life cycle of an object. This is not the case for C/C++. Consider that a object which is created within a transition of a state machine will be destroyed when the transition is finished. The receiving FSM would receive an invalid reference. Therefore care must be taken when sending references.
</p>
<p>For sending data by reference you simply have to add the keyword
[<span class="citation">ref</span>] to the protocol definition.
@@ -2154,6 +2160,7 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</code>
</p>
</div>
+<p>Make the test and inspect the console output.</p>
</div>
</div>
<div class="chapter" title="Chapter&nbsp;7.&nbsp;Tutorial Pedestrian Lights">
@@ -2174,7 +2181,7 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
-<p>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received from the model.</p>
+<p>The scope of this tutorial is to demonstrate how to receive model messages from outside the model. Calling methods which are not part of the model is simple and you have already done this within the blinky tutorial (this is the other way round: model =&gt; external code). Receiving events from outside the model is a very common problem and a very frequently asked question. Therefore this tutorial shows how an external event (outside the model) can be received by the model.</p>
<p>This tutorial is not like hello world or blinky. Being familiar with the basic tool features is mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool features.</p>
<p>The idea behind the exercise is, to control a Pedestrian crossing light. We will use the same GUI as for the blinky tutorial but now we will use the
[<span class="citation">REQUEST</span>] button to start a FSM, which controls the traffic lights.
@@ -2230,15 +2237,43 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</li>
<li class="listitem">
<p>Copy the package
- [<span class="citation">de.protos.PedLightGUI</span>] to your
+ [<span class="citation">org.eclipse.etrice.tutorials.PedLightGUI</span>] to your
[<span class="citation">src</span>] directory (see blinky tutorial).
</p>
</li>
<li class="listitem">
-<p>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration).</p>
+<p>In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 (registration). The error markers will disappear after the code is generated from the model.</p>
+</li>
+<li class="listitem">
+<p>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory. </p>
+</li>
+<li class="listitem">
+<p>Adapt the import statement to your path.</p>
+</li>
+</ul>
+</div>
+<div class="literallayout">
+<p>
+<code class="code">import&nbsp;room.basic.service.timing.*&nbsp;from&nbsp;"../../org.eclipse.etrice.modellib/models/TimingService.room"&nbsp;<br>
+
+</code>
+</p>
+</div>
+<div class="blockquote">
+<blockquote class="blockquote">
+<p></p>
+</blockquote>
+</div>
+<div class="itemizedlist">
+<ul class="itemizedlist" type="disc">
+<li class="listitem">
+<p>Generate the code from the model.</p>
+</li>
+<li class="listitem">
+<p>Add the org.eclipse.etrice.modellib to the Java Class Path of your project.</p>
</li>
<li class="listitem">
-<p>Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run the model directly in the tutorial directory:</p>
+<p>All error markers should be disappeared and the model should be operable. </p>
</li>
<li class="listitem">
<p>Arrange the Structure and the Statemachines to understand the model</p>
@@ -2439,7 +2474,7 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
<p>These symbols can only appear on the border of an actor class symbol.</p>
-<table id="N1080A">
+<table id="N1082C">
<tr>
<td>
@@ -2540,7 +2575,7 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
<p>These symbols can only appear on the border of an actor reference symbol.</p>
-<table id="N10899">
+<table id="N108BB">
<tr>
<td>
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData02.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData02.png
index 19312cc80..fe00fc53a 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData02.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData04.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData04.png
index 4cccf842c..45f75a716 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData04.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData04.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData05.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData05.png
index fd825495d..454cf47ae 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData05.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData05.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData06.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData06.png
index ab03dd889..fa54fc71a 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData06.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData06.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData08.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData08.png
index a2882c140..1a3f71961 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData08.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData08.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData09.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData09.png
index e882d057e..7a18a9028 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData09.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData09.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData10.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData10.png
index 40fa0c8b6..ef7f41a19 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData10.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData10.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData11.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData11.png
index 16ea1fb67..9d24c7b90 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData11.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData11.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData12.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData12.png
index 148bbd2f4..fff129e47 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData12.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData12.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData13.png b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData13.png
index 7efefd350..4d8ef706c 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/025-SendingData13.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/025-SendingData13.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights01.png b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights01.png
index bc4fc1085..f9788c1c8 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights01.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights01.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights02.png b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights02.png
index d1670a648..a163f1bc0 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights02.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights03.png b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights03.png
index bdf251429..b503b9add 100644
--- a/plugins/org.eclipse.etrice.doc/html/images/030-PedLights03.png
+++ b/plugins/org.eclipse.etrice.doc/html/images/030-PedLights03.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
index 52223e8e9..deea7cad2 100644
--- a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
+++ b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
Binary files differ

Back to the top