summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Schuetz2013-07-11 19:27:38 (EDT)
committer Thomas Schuetz2013-07-11 19:27:38 (EDT)
commit3447749b1a453735ac54fc09ea7680acdbb19b69 (patch)
tree9b9ed7ae33219abc349243e5ee140bacaec1c9b3
parentfbd82ae116b11139a88f395ec17b3fbe3481437f (diff)
downloadorg.eclipse.etrice-3447749b1a453735ac54fc09ea7680acdbb19b69.zip
org.eclipse.etrice-3447749b1a453735ac54fc09ea7680acdbb19b69.tar.gz
org.eclipse.etrice-3447749b1a453735ac54fc09ea7680acdbb19b69.tar.bz2
[doc] updated tutorials
-rw-r--r--examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room2
-rw-r--r--examples/org.eclipse.etrice.tutorials.c/model/SetupTest/SetupTest.etphys6
-rw-r--r--examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room2
-rw-r--r--plugins/org.eclipse.etrice.core.etphys.ui/templates/templates.xml3
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/013-setting-up-the-workspace-for-java.tex12
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/014-setting-up-the-workspace-for-C.tex12
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/015-hello-world-java.tex112
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/015.1-hello-world-create-statemachine.tex124
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/015.2-hello-world-open-msc.tex16
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/016-hello-world-c.tex201
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.tex11
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/etrice-doc.tex22
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld02.pngbin91954 -> 32183 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld03.pngbin11475 -> 13579 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld05.pngbin79765 -> 0 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld07.pngbin43500 -> 24863 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld08.pngbin62436 -> 20229 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld09.pngbin50577 -> 40188 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld10.pngbin83305 -> 47746 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld12.pngbin30829 -> 19710 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC01.pngbin36191 -> 48095 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC02.pngbin138276 -> 73094 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC03.pngbin94802 -> 75208 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC041.pngbin0 -> 20350 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC05.pngbin7073 -> 91209 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC06.pngbin29058 -> 87648 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC07.pngbin93328 -> 80325 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC08.pngbin93240 -> 114836 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC09.pngbin104815 -> 0 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC10.pngbin101554 -> 124774 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC11.pngbin5669 -> 5863 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC12.pngbin128401 -> 94014 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC13.pngbin12663 -> 23246 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC14.pngbin101442 -> 109650 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC15.pngbin94359 -> 97727 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC151.pngbin0 -> 37802 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC16.pngbin11914 -> 13319 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-doc.css539
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-doc.html83
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch1.html27
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch2.html77
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch3.html89
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch4.html52
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch5.html52
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docch6.html44
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docli1.html174
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse1.html157
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse10.html1033
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse11.html477
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse12.html509
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse13.html1047
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse14.html449
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse15.html1692
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse16.html525
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse17.html837
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse2.html495
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse3.html173
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse4.html485
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse5.html209
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse6.html749
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse7.html1264
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse8.html1180
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice-docse9.html496
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/013-SetupWorkspace05.pngbin51195 -> 42544 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-05-gen_SetupTestC.pngbin0 -> 40063 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-06-FinishedCodeGeneration.pngbin0 -> 15062 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-07-Compile.pngbin0 -> 51447 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-08-RunAsC-CPP-Application.pngbin0 -> 44657 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-09-ConsoleWithSetupOk.pngbin0 -> 12907 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-SetupWorkspace007.pngbin0 -> 36972 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/014-SetupWorkspaceC005.pngbin0 -> 49497 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld02.pngbin91954 -> 32183 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld03.pngbin11475 -> 13579 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld07.pngbin43500 -> 24863 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld08.pngbin62436 -> 20229 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld09.pngbin50577 -> 40188 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld10.pngbin83305 -> 47746 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/015-HelloWorld12.pngbin30829 -> 19710 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC01.pngbin36191 -> 48095 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC02.pngbin138276 -> 73094 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC03.pngbin94802 -> 75208 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC041.pngbin0 -> 20350 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC05.pngbin7073 -> 91209 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC06.pngbin29058 -> 87648 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC07.pngbin93328 -> 80325 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC08.pngbin93240 -> 114836 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC10.pngbin101554 -> 124774 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC11.pngbin5669 -> 5863 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC12.pngbin128401 -> 94014 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC13.pngbin12663 -> 23246 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC14.pngbin101442 -> 109650 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC15.pngbin94359 -> 97727 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC151.pngbin0 -> 37802 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/016-HelloWorldC16.pngbin11914 -> 13319 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/manual/etrice.pdfbin1291749 -> 3094322 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/toc.xml38
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.c.zipbin2138073 -> 2138080 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.modellib.java.zipbin255251 -> 255251 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.runtime.c.zipbin6194272 -> 6194274 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.c.zipbin6161736 -> 6161762 bytes
-rw-r--r--plugins/org.eclipse.etrice.ui.runtime/contents/org.eclipse.etrice.tutorials.java.zipbin60104 -> 60104 bytes
101 files changed, 8502 insertions, 4973 deletions
diff --git a/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room b/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
index 0a0a251..e3ea953 100644
--- a/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
+++ b/examples/org.eclipse.etrice.tutorials.c/model/HelloWorld/HelloWorld.room
@@ -12,7 +12,7 @@ RoomModel HelloWorld_Model {
StateMachine {
Transition init: initial -> state0 {
action {
- "printf(\"Hello World\");"
+ "printf(\"Hello World\\n\");"
}
}
State state0
diff --git a/examples/org.eclipse.etrice.tutorials.c/model/SetupTest/SetupTest.etphys b/examples/org.eclipse.etrice.tutorials.c/model/SetupTest/SetupTest.etphys
index c8d4cfb..ad57e50 100644
--- a/examples/org.eclipse.etrice.tutorials.c/model/SetupTest/SetupTest.etphys
+++ b/examples/org.eclipse.etrice.tutorials.c/model/SetupTest/SetupTest.etphys
@@ -10,8 +10,8 @@ PhysicalModel PhysicalModel1 {
priomax = 10
DefaultThread PhysicalThread1 {
- execmode = mixed
- interval = 100ms
+ execmode = mixed
+ interval = 100 ms
prio = 0
stacksize = 1024
msgblocksize = 32
@@ -23,4 +23,4 @@ PhysicalModel PhysicalModel1 {
model = multiThreaded
}
-}
+} \ No newline at end of file
diff --git a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
index e2ff08c..36129f3 100644
--- a/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
+++ b/examples/org.eclipse.etrice.tutorials.java/model/HelloWorld/HelloWorld.room
@@ -20,4 +20,4 @@ RoomModel HelloWorld_Model {
}
}
-} \ No newline at end of file
+}
diff --git a/plugins/org.eclipse.etrice.core.etphys.ui/templates/templates.xml b/plugins/org.eclipse.etrice.core.etphys.ui/templates/templates.xml
index 780a49d..0492071 100644
--- a/plugins/org.eclipse.etrice.core.etphys.ui/templates/templates.xml
+++ b/plugins/org.eclipse.etrice.core.etphys.ui/templates/templates.xml
@@ -15,7 +15,8 @@
priomax = 10
DefaultThread ${PhysicalThread1} {
- execmode = blocked
+ execmode = mixed
+ interval = 100ms
prio = 0
stacksize = 1024
msgblocksize = 32
diff --git a/plugins/org.eclipse.etrice.doc/doc/013-setting-up-the-workspace-for-java.tex b/plugins/org.eclipse.etrice.doc/doc/013-setting-up-the-workspace-for-java.tex
index b11c8df..d912874 100644
--- a/plugins/org.eclipse.etrice.doc/doc/013-setting-up-the-workspace-for-java.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/013-setting-up-the-workspace-for-java.tex
@@ -63,11 +63,13 @@ Try this with the file \emph{src-gen/SetupTest\_Model/SubSysClass1Runner.java} :
% !images/013-SetupWorkspace06.png!
To stop the application type \emph{quit} in the console window. If your Console contains the lines
-\newline\emph{******************}
-\newline\emph{*** Setup OK ***}
-\newline\emph{******************}
-\newline your setup should be ok.
-
+\begin{verbatim}
+******************
+*** Setup OK ***
+******************
+\end{verbatim}
+your setup should be ok.
+
\includegraphics[width=0.6\textwidth]{images/013-SetupWorkspace07.png}
% !images/013-SetupWorkspace07.png!
diff --git a/plugins/org.eclipse.etrice.doc/doc/014-setting-up-the-workspace-for-C.tex b/plugins/org.eclipse.etrice.doc/doc/014-setting-up-the-workspace-for-C.tex
index c4a0e87..f333bf7 100644
--- a/plugins/org.eclipse.etrice.doc/doc/014-setting-up-the-workspace-for-C.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/014-setting-up-the-workspace-for-C.tex
@@ -75,13 +75,15 @@ After the successful compilation you can run the application as \emph{Local C/C+
\newpage
To stop the application type \emph{quit} in the console window. If your Console contains the lines
-\newline\emph{******************}
-\newline\emph{*** Setup OK ***}
-\newline\emph{******************}
-\newline your setup should be ok.
+\begin{verbatim}
+******************
+*** Setup OK ***
+******************
+\end{verbatim}
+your setup should be ok.
%TODO : update screenshot
-\includegraphics[width=0.6\textwidth]{images/014-09-ConsoleWithSetupOk.png}
+\includegraphics[width=0.5\textwidth]{images/014-09-ConsoleWithSetupOk.png}
% !images/014-09-ConsoleWithSetupOk.png!
Now the workspace is set up and you can perform the tutorials or start with your work.
diff --git a/plugins/org.eclipse.etrice.doc/doc/015-hello-world-java.tex b/plugins/org.eclipse.etrice.doc/doc/015-hello-world-java.tex
index f7c5822..c35ff92 100644
--- a/plugins/org.eclipse.etrice.doc/doc/015-hello-world-java.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/015-hello-world-java.tex
@@ -13,12 +13,12 @@ In this tutorial you will build your first very simple \eTrice{} model. The goal
\item open the message sequence chart
\end{enumerate}
-Make sure that you have set up the workspace as described in \textit{Setting up the workspace}.
+Make sure that you have set up the workspace as described in \emph{Setting up the Workspace for Java}.
\subsection{Create a new model from scratch}
The easiest way to create a new \eTrice{} Project is to use the eclipse project wizard. From the eclipse file
-menu select \textbf{File->New->Project} and create a new \eTrice{} project and name it \textbf{HelloWorld}.
+menu select \emph{File->New->Project} and create a new \emph{Empty eTrice Java Project} and name it \textbf{HelloWorld}.
\includegraphics[width=0.8\textwidth]{images/015-HelloWorld10.png}
% !images/015-HelloWorld10.png!
@@ -29,11 +29,11 @@ project should look like this:
\includegraphics{images/015-HelloWorld11.png}
% !images/015-HelloWorld11.png!
-Within the model directory the model file \textit{HelloWorld.room} was created. Open the
-\textit{HelloWorld.room} file and delete the contents of the file. Open the content assist with Ctrl+Space
-and select \textit{model skeleton}.
+Within the model directory the model file \emph{HelloWorld.room} was created. Open the
+\emph{HelloWorld.room} file and delete the contents of the file. Open the content assist with Ctrl+Space
+and select \emph{RoomModel - model skeleton}.
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld12.png}
+\includegraphics[width=0.6\textwidth]{images/015-HelloWorld12.png}
% !images/015-HelloWorld12.png!
Edit the template variables by typing the new names and jumping with Tab from name to name.
@@ -41,108 +41,48 @@ Edit the template variables by typing the new names and jumping with Tab from na
The resulting model code should look like this:
\begin{lstlisting}[language=ROOM]
-RoomModel HelloWorld {
+RoomModel HelloWorld_Model {
- LogicalSystem System_HelloWorld {
- SubSystemRef subsystem : SubSystem_HelloWorld
- }
+ LogicalSystem LogSys1 {
+ SubSystemRef subSysRef1: SubSysClass1
+ }
- SubSystemClass SubSystem_HelloWorld {
- ActorRef application : HelloWorldTop
- }
+ SubSystemClass SubSysClass1 {
+ ActorRef actorRef1: HelloWorldTop
+ LogicalThread defaultThread
+ }
- ActorClass HelloWorldTop {
- }
-}
-\end{lstlisting}
-
-The goal of \eTrice{} is to describe distributed systems on a logical level. In the current version not all
-elements will be used. But as prerequisite for further versions the following elements can be defined:
-\begin{itemize}
-\item the \textit{LogicalSystem} (currently optional)
-\item at least one \textit{SubSystemClass} (mandatory)
-\item at least one \textit{ActorClass} (mandatory)
-\end{itemize}
-
-The \textit{LogicalSystem} represents the complete distributed system and contains at least one
-\textit{SubSystemRef}. The \textit{SubSystemClass} represents an address space and contains at least one
-\textit{ActorRef}. The \textit{ActorClass} is the building block of which an application will be built of.
-It is in general a good idea to define a top level actor that can be used as reference within the subsystem.
-
-The outline view of the textual ROOM editor shows the main modeling elements in an easy to navigate tree.
-
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld02.png}
-% !images/015-HelloWorld02.png!
-
-
-\subsection{Create a state machine}
-
-We will implement the Hello World code on the initial transition of the \textit{HelloWorldTop} actor.
-Therefore open the state machine editor by right clicking the \textit{HelloWorldTop} actor in the outline
-view and select \textit{Edit Behavior}.
-
-\includegraphics{images/015-HelloWorld03.png}
-% !images/015-HelloWorld03.png!
+ ActorClass HelloWorldTop { }
-The state machine editor will be opened. Drag and drop an \textit{Initial Point} from the tool box to the
-diagram into the top level state. Drag and drop a \textit{State} from the tool box to the diagram. Confirm
-the dialogue with \textit{ok}. Select the \textit{Transition} in the tool box and draw the transition from
-the \textit{Initial Point} to the State. Open the transition dialogue by double clicking the transition
-arrow and fill in the action code.
-
-\begin{verbatim}
- System.out.println("Hello World !");
-\end{verbatim}
-
-The result should look like this:
-
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld04.png}
-% !images/015-HelloWorld04.png!
-
-Save the diagram and inspect the model file. Note that the textual representation was created after saving
-the diagram.
-
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld05.png}
-% !images/015-HelloWorld05.png!
+}
+\end{lstlisting}
+\input{015.1-hello-world-create-statemachine}
\subsection{Build and run the model}
-Now the model is finished and source code can be generated. The project wizard has created a launch
-configuration that is responsible for generating the source code. From \textit{HelloWorld/} right click
-\textbf{gen\_HelloWorld.launch} and run it as gen\_HelloWorld. All model files in the model directory will
-be generated.
+Now the model is finished and the source code can be generated. The project wizard has created a launch
+configuration that is responsible for generating the source code. In the project \textit{HelloWorld} right click \emph{\_HelloWorld.launch} and run it as \emph{gen\_HelloWorld}.
\includegraphics[width=0.8\textwidth]{images/015-HelloWorld06.png}
% !images/015-HelloWorld06.png!
-The code will be generated to the src-gen directory. The main function will be contained in
-\textbf{SubSystem\_HelloWorldRunner.java}. Select this file and run it as Java application.
+The source code for the model will be generated into the folder \emph{src-gen}. The main function will be contained in \emph{SubSystem\_HelloWorldRunner.java}. Select this file and run it as Java application.
\includegraphics{images/015-HelloWorld07.png}
% !images/015-HelloWorld07.png!
-The Hello World application starts and the string will be printed on the console window. To stop the
-application the user must type \textbf{quit} in the console window.
+The Hello World application starts and the string \emph{"Hello World"} will be printed into the console window. To stop the application the user must type \emph{quit} in the console window.
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld08.png}
+\includegraphics[width=0.6\textwidth]{images/015-HelloWorld08.png}
% !images/015-HelloWorld08.png!
-\subsection{Open the Message Sequence Chart}
-
-During runtime the application produced a MSC and wrote it to a file. Open
-HelloWorld/tmp/log/SubSystem\_HelloWorld\_Async.seq using Trace2UML (it is open source and can be obtained
-from http://trace2uml.tigris.org/). You should see something like this:
-
-\includegraphics[width=0.8\textwidth]{images/015-HelloWorld09.png}
-% !images/015-HelloWorld09.png!
-
+\input{015.2-hello-world-open-msc}
\subsection{Summary}
Now you have generated your first \eTrice{} model from scratch. You can switch between diagram editor and
-model (.room file) and you can see what will be generated during editing and saving the diagram files.
+textual model representation (.room file) and you can see what will be generated during editing and saving the diagram files.
You should take a look at the generated source files to understand how the state machine is generated and
-the life cycle of the application. The next tutorials will deal with more complex hierarchies in structure
-and behavior.
+the life cycle of the application works. The next tutorials will deal with more complex hierarchies in structure and behavior.
diff --git a/plugins/org.eclipse.etrice.doc/doc/015.1-hello-world-create-statemachine.tex b/plugins/org.eclipse.etrice.doc/doc/015.1-hello-world-create-statemachine.tex
new file mode 100644
index 0000000..b6f5bcf
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/015.1-hello-world-create-statemachine.tex
@@ -0,0 +1,124 @@
+The goal of \eTrice{} is to describe distributed systems on a logical level. In the current version not all
+elements will be used. But as prerequisite for further versions the following elements can be defined:
+\begin{itemize}
+\item the \textit{LogicalSystem} (currently optional)
+\item at least one \textit{SubSystemClass} (mandatory)
+\item at least one \textit{ActorClass} (mandatory)
+\end{itemize}
+
+The \textit{LogicalSystem} represents the complete distributed system and contains at least one
+\textit{SubSystemRef}. The \textit{SubSystemClass} represents an address space (e.g. a linux process or an image for a microcontroller) and contains at least one
+\textit{ActorRef}. The \textit{ActorClass} is the building block for building the hierachical structure of an application.
+A good point to start is to define a top level actor that can be used as structural root within the subsystem.
+
+The outline view of the textual ROOM editor shows the main modeling elements in a navigation tree. You can jump to an element in the textual editor by double clicking the element in the outline view.
+
+\includegraphics[width=0.8\textwidth]{images/015-HelloWorld02.png}
+% !images/015-HelloWorld02.png!
+
+\subsection{Create a state machine}
+
+We will implement the Hello World code on the initial transition of the \textit{HelloWorldTop} actor.
+Therefore open the state machine editor by right clicking the \textit{HelloWorldTop} actor in the outline view and select \textit{Edit Behavior}.
+
+\includegraphics{images/015-HelloWorld03.png}
+% !images/015-HelloWorld03.png!
+
+The state machine editor will be opened. Drag and drop an \textit{Initial Point} from the tool box to the
+diagram into the top level state. Drag and drop a \textit{State} from the tool box to the diagram. Confirm the dialogue with \textit{ok}. Select the \textit{Transition} in the tool box and draw the transition from the \textit{Initial Point} to the State. Open the transition dialogue by double clicking the transition arrow and fill in the action code. Be aware of the different action code in Java and C.
+
+\begin{figure}[ht]
+\begin{minipage}[b]{0.45\linewidth}
+ \begin{mdframed}
+ \textbf{action code for Java}
+ \begin{verbatim}
+ System.out.println("Hello World !");
+ \end{verbatim}
+ \end{mdframed}
+\end{minipage}
+\hspace{0.5cm}
+\begin{minipage}[b]{0.45\linewidth}
+ \begin{mdframed}
+ \textbf{action code for C}
+ \begin{verbatim}
+ printf("Hello World\n");
+ \end{verbatim}
+ \end{mdframed}
+\end{minipage}
+\end{figure}
+
+
+The result should look like this:
+
+\includegraphics[width=0.8\textwidth]{images/015-HelloWorld04.png}
+% !images/015-HelloWorld04.png!
+
+Save the diagram and inspect the model (HelloWorld.room) file. Note that the textual representation was changed after saving
+the diagram.
+
+\begin{figure}[ht]
+\begin{minipage}[t]{0.50\linewidth}
+\begin{mdframed}
+ \textbf{room model for Java}
+ \newline
+\begin{lstlisting}[language=ROOM]
+RoomModel HelloWorld_Model {
+ LogicalSystem LogSys1 {
+ SubSystemRef subSysRef1:SubSysClass1
+ }
+ SubSystemClass SubSysClass1 {
+ ActorRef actorRef1:HelloWorldTop
+ LogicalThread defaultThread
+ }
+ ActorClass HelloWorldTop {
+ Structure { }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> state0 {
+ action {
+ "System.out.println(\"Hello World\");"
+ }
+ }
+ State state0
+ }
+ }
+ }
+}
+\end{lstlisting}
+\end{mdframed}
+\end{minipage}
+\hspace{0.1cm}
+\begin{minipage}[t]{0.50\linewidth}
+\begin{mdframed}
+ \textbf{room model for C}
+ \newline
+\begin{lstlisting}[language=ROOM]
+RoomModel HelloWorld_Model {
+ LogicalSystem LogSys1 {
+ SubSystemRef subSysRef1: SubSysClass1
+ }
+ SubSystemClass SubSysClass1 {
+ ActorRef actorRef1: HelloWorldTop
+ LogicalThread defaultThread
+ }
+ ActorClass HelloWorldTop {
+ Structure { }
+ Behavior {
+ StateMachine {
+ Transition init: initial -> state0 {
+ action {
+ "printf(\"Hello World\\n\");"
+ }
+ }
+ State state0
+ }
+ }
+ }
+}
+\end{lstlisting}
+\end{mdframed}
+\end{minipage}
+\end{figure}
+
+
+
diff --git a/plugins/org.eclipse.etrice.doc/doc/015.2-hello-world-open-msc.tex b/plugins/org.eclipse.etrice.doc/doc/015.2-hello-world-open-msc.tex
new file mode 100644
index 0000000..7a609c9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/015.2-hello-world-open-msc.tex
@@ -0,0 +1,16 @@
+\subsection{Open the Message Sequence Chart}
+
+For debugging and learning purposes, the application produced a Message Sequence Chart and wrote it to a file. Open the file \emph{subSysRef1\_Async.seq} or \emph{msc.seq} in the folder \emph{HelloWorld/tmp/log/} using the tool Trace2UML. Create the path if not already there.
+
+Trace2UML is an open source MSC viewer and can be obtained here:
+\begin{itemize}
+\item \href{http://trace2uml.tigris.org/}{Trace2UML project home and download of windows version}
+\item \href{http://apt.astade.de/}{download of the linux package of the Astade UML tool which contains Trace2UML}
+\end{itemize}
+After opening the file, you should see something like this:
+
+\includegraphics[width=0.6\textwidth]{images/015-HelloWorld09.png}
+% !images/015-HelloWorld09.png!
+
+The Actor with the instance path \emph{/LogSys1/subSysRef1/actorRef1} is in the state \emph{state0}.
+This is the simplest possible MSC. The MSCs for further tutorials will contain more information.
diff --git a/plugins/org.eclipse.etrice.doc/doc/016-hello-world-c.tex b/plugins/org.eclipse.etrice.doc/doc/016-hello-world-c.tex
index 4c637b1..0cd26fb 100644
--- a/plugins/org.eclipse.etrice.doc/doc/016-hello-world-c.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/016-hello-world-c.tex
@@ -2,38 +2,38 @@
\subsection{Scope}
-In this tutorial you will learn how to create a model for C from scratch. There are some more steps to do
-in C compared to Java. The goal is to get familiar with the additional steps. The Java tutorial is a
-prerequisite for the following explanations.
+In this tutorial you will build your first very simple \eTrice{} model. The goal is to learn the work flow of
+\eTrice{} and to understand a few basic features of ROOM. There are some more steps to do
+in C compared to Java. You will perform the following steps:
+
You will perform the following steps:
\begin{enumerate}
-\item create a new model from scratch for C
-\item create structure and behavior similar to Java
+\item create a new model from scratch
+\item add a very simple state machine to an actor
\item create a launch configuration for the C code generator
\item setup the C environment
\item generate the source code
\item run the model
+\item open the message sequence chart
\end{enumerate}
-Make sure that you have set up the workspace as described in \textit{Setting up the Workspace for C
-Projects}.
-
+Make sure that you have set up the workspace as described in \emph{Setting up the Workspace for C}.
\subsection{Create a new model from scratch}
Before you can create a new C-model, you have to create a new C project as described in \textit{Setting up
the Workspace for C Projects}.
-Remember:
-\begin{itemize}
+
+\begin{enumerate}
\item select the \textit{C/C++} perspective
-\item From the main menue select \textit{File->New->C Project}
-\item Name the project \textit{HelloWorldC}
-\item Project type is \textit{Executable / Empty C Project}
-\item Toolchain is \textit{MinGW}
-\end{itemize}
+\item select \textit{File->New->C Project} from the main menue
+\item name the project \textit{HelloWorldC}
+\item the project type is \textit{Executable / Empty C Project}
+\item select the Toolchain for your platform (e.g. \textit{MinGW GCC})
+\end{enumerate}
-The workspace should look like this:
+Your project explorer should look like this:
\includegraphics{images/016-HelloWorldC01.png}
% !images/016-HelloWorldC01.png!
@@ -41,95 +41,127 @@ The workspace should look like this:
The next step is to add the model folder:
Right click on the new project. Select \textit{New->Folder} and name it \textit{model}.
-\includegraphics{images/016-HelloWorldC02.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC02.png}
% !images/016-HelloWorldC02.png!
Add the model file to the folder. Right click on the new folder. Select \textit{New->file} and name it
\textit{HelloWorldC.room}.
-\includegraphics{images/016-HelloWorldC03.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC03.png}
% !images/016-HelloWorldC03.png!
-Due to the file ending \textit{.room}, the tool will ask you to add the Xtext nature. Answer with
-\textit{Yes}.
+Since the file extension \textit{.room} is recognised as an Xtext based format, the tool will ask you to add the Xtext nature. Answer with \textit{Yes}.
-\includegraphics{images/016-HelloWorldC04.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC04.png}
% !images/016-HelloWorldC04.png!
-The workspace should look like this:
+Open the \emph{HelloWorld.room} file and delete the contents of the file. Open the content assist with <Ctrl>+<Space> and select \emph{RoomModel - model skeleton}.
-\includegraphics{images/016-HelloWorldC05.png}
-% !images/016-HelloWorldC05.png!
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC041.png}
+% !images/016-HelloWorldC041.png!
+
+Edit the template variables by typing the new names and jumping with <Tab> from name to name.
+
+The resulting model code should look like this:
+
+\begin{lstlisting}[language=ROOM]
+RoomModel HelloWorld_Model {
+
+ LogicalSystem LogSys1 {
+ SubSystemRef subSysRef1: SubSysClass1
+ }
+
+ SubSystemClass SubSysClass1 {
+ ActorRef actorRef1: HelloWorldTop
+ LogicalThread defaultThread
+ }
+
+ ActorClass HelloWorldTop { }
+
+}
+\end{lstlisting}
+
+Now create the file model/HelloWorldC.etphys for the physical model and insert (<Ctrl>+<Space>) the code template \emph{PhysicalModel - model skeleton} without changes.
+Listing for HelloWorldC.etphys :
+\begin{lstlisting}[language=etPhys]
+PhysicalModel PhysicalModel1 {
-\subsection{Create the HelloWorld model}
+ PhysicalSystem PhysSys1 {
+ NodeRef nodeRef1 : NodeClass1
+ }
-Once the model file is created and the Xtext nature is added, you can create the model as you did it for
-Java.
-Creating the model is not the focus of this tutorial. Therefore copy and paste the following code into
-your model file. Optionally you can open and layout the diagrams.
-Recognize the C specific parts:
-\begin{itemize}
-\item The action code contains C instead of Java. Later versions will contain a common action language,
-but for the moment the action language is target specific.
-\item The application must be shutdown on model level (see also \textit{etRuntimeConfig.h}).
-\end{itemize}
+ NodeClass NodeClass1 {
+ runtime = RuntimeClass1
+ priomin = -10
+ priomax = 10
+ DefaultThread PhysicalThread1 {
+ execmode = mixed
+ interval = 100 ms
+ prio = 0
+ stacksize = 1024
+ msgblocksize = 32
+ msgpoolsize = 10
+ }
+ }
-\begin{verbatim}
-RoomModel HelloWorldCModel {
- import room.basic.types.* from "../../org.eclipse.etrice.modellib.c/model/Types.room"
- SubSystemClass HelloWorldCSubSysClass {
- ActorRef HelloETriceTopRef:AHelloWorldCTop
+ RuntimeClass RuntimeClass1 {
+ model = multiThreaded
}
- ActorClass AHelloWorldCTop {
- Structure { }
- Behavior {
- StateMachine {
- Transition init: initial -> state0 { }
- State state0 {
- entry {
- "printf(\"HelloWorldC !\\n\");"
- "SubSysClass_shutdown();"
- "\t\t\t\t\t\t"
- }
- }
- }
+}
+\end{lstlisting}
+
+The physical model defines the setup of your nodes with their attributes like threads and mode of execution. In this case we define one node with one thread.
+
+The mapping model we will create now defines the mapping (deployment) of the logical elements in the .room model to the physical elements int the .etphys model. Now create the file model/HelloWorldC.etmap for the mapping model and insert (Ctrl+Space) the code template \emph{MappingModel - model skeleton} with some changes (jump with <Tab> between the template variables):
+
+\begin{lstlisting}[language=etMap]
+MappingModel MappingModel1 {
+ import HelloWorld_Model.* from "HelloWorld.room"
+ import PhysicalModel1.* from "HelloWorld.etphys"
+ Mapping LogSys1 -> PhysSys1 {
+ SubSystemMapping subSysRef1 -> nodeRef1 {
+ ThreadMapping defaultThread -> PhysicalThread1
}
- }
+ }
}
-\end{verbatim}
+\end{lstlisting}
+
+Now the workspace should look like this:
+
+\includegraphics{images/016-HelloWorldC05.png}
+% !images/016-HelloWorldC05.png!
+
+\input{015.1-hello-world-create-statemachine}
\subsection{Create a launch configuration to start the C code generator}
-Other than in Java a launch configuration for the C code generator must be created.
+Unlike in Java a launch configuration for the C code generator must be created.
-From the \textit{Run} menu select \textit{Run Configurations}
+From the main menu \textit{Run} or the context menu \textit{Run As} in the \emph{Project Explorer} select \textit{Run Configurations} .
-\includegraphics{images/016-HelloWorldC06.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC06.png}
% !images/016-HelloWorldC06.png!
Within the dialog select \textit{\eTrice{} C Generator} and click the \textit{New} button to create a new
launch configuration.
-\includegraphics{images/016-HelloWorldC07.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC07.png}
% !images/016-HelloWorldC07.png!
-A new configuration should be created. Name it \textit{gen\_HelloWorldC} and add the model via one of the
+A new configuration should be created. Name it \textit{gen\_HelloWorld} and add the mapping model \emph{HelloWorld.etmap} model via one of the
\textit{add} buttons.
-\includegraphics{images/016-HelloWorldC08.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC08.png}
% !images/016-HelloWorldC08.png!
-In the \textit{Refresh} tab select \textit{The entire workspace}
-
-\includegraphics{images/016-HelloWorldC09.png}
-% !images/016-HelloWorldC09.png!
+The mapping model is the root model for the code generator.
-In the \textit{Common} tab select \textit{Shared file} and add the \textit{HelloWorldC} project via the
+To save your launch configuration, select \textit{Shared file} in the tab \textit{Common} and add the \textit{HelloWorldC} project via the
\textit{Browse} button.
-\includegraphics{images/016-HelloWorldC10.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC10.png}
% !images/016-HelloWorldC10.png!
Apply your changes. The new configuration should now exist in your workspace.
@@ -140,43 +172,50 @@ Apply your changes. The new configuration should now exist in your workspace.
\subsection{Generate the code}
-Now you can generate the code as you know it from Java. Right click on the launch configuration and run it
+Now you can generate the code. Right click on the launch configuration and run it
as \textit{gen\_HelloWorldC}.
-\includegraphics{images/016-HelloWorldC12.png}
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC12.png}
% !images/016-HelloWorldC12.png!
-The code should be generated.
+The code should be generated and placed in the src-gen folder.
\includegraphics{images/016-HelloWorldC13.png}
% !images/016-HelloWorldC13.png!
-\subsection{Setup the include path}
+\subsection{Setup the C build}
-Before you can build the application you must setup the include path for the runtime system. Right click
-the project and select \textit{Properties}. Add the include path as described in \textit{setting up the
-workspace}.
+Before you can build the application you must setup the include and library pathes for the runtime system.
-\includegraphics{images/016-HelloWorldC14.png}
+Right click the project and select \textit{Properties -> C/C++ Build -> Settings -> Includes}.
+Add the include path for the current project \emph{src-gen} and the runtime source folders \emph{common}, \emph{config} and the chosen platform ( \emph{MT\_WIN\_MinGW} or \emph{MT\_POSIX\_GENERIC\_GCC} ).
+
+\includegraphics[width=0.8\textwidth]{images/016-HelloWorldC14.png}
% !images/016-HelloWorldC14.png!
-Add the runtime library.
+Add the runtime library: \textit{Properties -> C/C++ Build -> Settings -> Libraries}.
\includegraphics{images/016-HelloWorldC15.png}
% !images/016-HelloWorldC15!
-Recognize the name of the library ("org.eclipse.etrice.runtime.c"). The library file on your disk is
-"liborg.eclipse.etrice.runtime.c.a".
+The name of the library is \emph{org.eclipse.etrice.runtime.c} but the actual filename for the library is \emph{liborg.eclipse.etrice.runtime.c.a} .
+
+Exclude the folder \emph{src-gen-info} from the build path. This folder is used to store temporary files for the incremetal code generation and must not be compiled in order to avoid multiple definition of symbols.
+
+\includegraphics{images/016-HelloWorldC151.png}
+% !images/016-HelloWorldC151!
\subsection{Build and run the model}
-Now you can build the application. Click the build button to build the application.
-Run the application as \textit{Local C/C++ Application}.
-Verify the output.
+Now you can build the application. Click the build button (hammer symbol) to build the application.
+Run the application in the folder \emph{Binary} as \textit{Local C/C++ Application}.
+The output in the Console View should contain the message \emph{Hello World}.
\includegraphics{images/016-HelloWorldC16.png}
% !images/016-HelloWorldC16.png!
+\input{015.2-hello-world-open-msc}
+
\subsection{Summary}
You are now familiar with all necessary steps to create, build and run an \eTrice{} C model from scratch. You
diff --git a/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.tex b/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.tex
index 92a52c8..52a9b4d 100644
--- a/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/020-tutorial-blinky.tex
@@ -321,14 +321,3 @@ model of \eTrice{}. Within this tutorial you have learned how to create a hierar
transitions and history transitions and you have used entry code. You are now familiar with the basic
features of \eTrice{}. The further tutorials will take this knowledge as a precondition.
-\begin{figure}[ht]
-\begin{minipage}[b]{0.45\linewidth}
-\centering
-Text1
-\end{minipage}
-\hspace{0.5cm}
-\begin{minipage}[b]{0.45\linewidth}
-\centering
-Text2
-\end{minipage}
-\end{figure} \ No newline at end of file
diff --git a/plugins/org.eclipse.etrice.doc/doc/etrice-doc.tex b/plugins/org.eclipse.etrice.doc/doc/etrice-doc.tex
index f2a5459..76d7eec 100644
--- a/plugins/org.eclipse.etrice.doc/doc/etrice-doc.tex
+++ b/plugins/org.eclipse.etrice.doc/doc/etrice-doc.tex
@@ -6,13 +6,13 @@
\usepackage{lmodern}
\usepackage{longtable}
\usepackage[usenames,dvipsnames]{xcolor}
-\usepackage{hyperref}
+\usepackage[colorlinks=true, linkcolor=blue, urlcolor=blue]{hyperref}
\hypersetup{hidelinks}
\usepackage{array}
\usepackage{graphicx}
\usepackage[labelfont=bf,singlelinecheck=false,format=plain,,justification=justified,indention=0cm]{caption}
-
\usepackage{listings}
+\usepackage{mdframed}
\input{roomlistings}
@@ -53,24 +53,24 @@
\chapter{Introduction}
-%\input{000-etrice-introduction}
-%\input{010-room-introduction}
+\input{000-etrice-introduction}
+\input{010-room-introduction}
\chapter{Tutorials}
-%\input{012-working-with-tutorials}
+\input{012-working-with-tutorials}
\input{013-setting-up-the-workspace-for-java}
\input{014-setting-up-the-workspace-for-C}
\input{015-hello-world-java}
-%\input{016-hello-world-c}
-\input{020-tutorial-blinky}
+\input{016-hello-world-c}
+%\input{020-tutorial-blinky}
%\input{025-tutorial-sending-data}
%\input{030-tutorial-ped-lights}
-%\input{040-room-concepts}
-\chapter{eTrice{} Features}
+\input{040-room-concepts}
-%\input{043-layout-with-kieler}
+\chapter{eTrice{} Features}
+\input{043-layout-with-kieler}
%*** BEGIN Not implemented yet
%\input{050-etrice-features}
@@ -78,7 +78,7 @@
%\input{070-runtimes}
%*** END Not implemented yet
-%\input{080-etrice-models}
+\input{080-etrice-models}
\chapter{eTrice{} Tool Developer's Reference}
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld02.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld02.png
index 40cdc88..2d8a646 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld02.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld03.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld03.png
index 16403dd..043818f 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld03.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld03.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld05.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld05.png
deleted file mode 100644
index 7df3612..0000000
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld05.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld07.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld07.png
index 088dec9..98d14e6 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld07.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld07.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld08.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld08.png
index 5e689af..58780d9 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld08.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld08.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld09.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld09.png
index 7d88df7..31abe81 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld09.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld09.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld10.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld10.png
index 2816d00..e552860 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld10.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld10.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld12.png b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld12.png
index 8a53f18..fc6a6ea 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld12.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/015-HelloWorld12.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC01.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC01.png
index a8f303b..952ac26 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC01.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC01.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC02.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC02.png
index 25b59ee..212c70b 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC02.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC02.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC03.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC03.png
index 2892125..46b4289 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC03.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC03.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC041.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC041.png
new file mode 100644
index 0000000..781721f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC041.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC05.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC05.png
index 8bab9bc..076f19b 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC05.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC05.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC06.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC06.png
index 6adf37a..203baa0 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC06.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC06.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC07.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC07.png
index d64c323..4186e44 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC07.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC07.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC08.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC08.png
index 14867cb..3154b1b 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC08.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC08.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC09.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC09.png
deleted file mode 100644
index 73fbeeb..0000000
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC09.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC10.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC10.png
index ec764ef..c048858 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC10.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC10.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC11.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC11.png
index 8bca1b9..6fe38c3 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC11.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC11.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC12.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC12.png
index f66f9de..6cc8a74 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC12.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC12.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC13.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC13.png
index 372c940..5b3510d 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC13.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC13.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC14.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC14.png
index d4c5cb5..a7599ee 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC14.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC14.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC15.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC15.png
index 806e796..683014b 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC15.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC15.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC151.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC151.png
new file mode 100644
index 0000000..f6771ff
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC151.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC16.png b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC16.png
index 71e7674..ed5e34c 100644
--- a/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC16.png
+++ b/plugins/org.eclipse.etrice.doc/doc/images/016-HelloWorldC16.png
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc.css b/plugins/org.eclipse.etrice.doc/html/etrice-doc.css
index bffdaf7..305ce90 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-doc.css
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc.css
@@ -1,181 +1,358 @@
-
-/* start css.sty */
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-10{ font-family: sans-serif;}
-.ec-lmss-17x-x-143{font-size:243%; font-family: sans-serif;}
-.ec-lmss-17x-x-143{ font-family: sans-serif;}
-.ec-lmss-17x-x-143{ font-family: sans-serif;}
-.ec-lmss-17x-x-143{ font-family: sans-serif;}
-.ec-lmss-17x-x-143{ font-family: sans-serif;}
-.ec-lmss-17x-x-143{ font-family: sans-serif;}
-.ec-lmss-12{font-size:120%; font-family: sans-serif;}
-.ec-lmss-12{ font-family: sans-serif;}
-.ec-lmss-12{ font-family: sans-serif;}
-.ec-lmss-12{ font-family: sans-serif;}
-.ec-lmss-12{ font-family: sans-serif;}
-.ec-lmss-12{ font-family: sans-serif;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmtt-10{ font-family: monospace;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
-@media print {span.next {visibility:hidden;}}
-p.noindent { text-indent: 0em }
-td p.noindent { text-indent: 0em; margin-top:0em; }
-p.nopar { text-indent: 0em; }
-p.indent{ text-indent: 1.5em }
-@media print {div.crosslinks {visibility:hidden;}}
-a img { border-top: 0; border-left: 0; border-right: 0; }
-center { margin-top:1em; margin-bottom:1em; }
-td center { margin-top:0em; margin-bottom:0em; }
-.Canvas { position:relative; }
-img.math{vertical-align:middle;}
-li p.indent { text-indent: 0em }
-li p:first-child{ margin-top:0em; }
-li p:last-child, li div:last-child { margin-bottom:0.5em; }
-li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; }
-.enumerate1 {list-style-type:decimal;}
-.enumerate2 {list-style-type:lower-alpha;}
-.enumerate3 {list-style-type:lower-roman;}
-.enumerate4 {list-style-type:upper-alpha;}
-div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
-.obeylines-h,.obeylines-v {white-space: nowrap; }
-div.obeylines-v p { margin-top:0; margin-bottom:0; }
-.overline{ text-decoration:overline; }
-.overline img{ border-top: 1px solid black; }
-td.displaylines {text-align:center; white-space:nowrap;}
-.centerline {text-align:center;}
-.rightline {text-align:right;}
-div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
-.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-div.fbox {display:table}
-div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-div.minipage{width:100%;}
-div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
-div.center div {text-align: left;}
-div.flushright, div.flushright div.flushright {text-align: right;}
-div.flushright div {text-align: left;}
-div.flushleft {text-align: left;}
-.underline{ text-decoration:underline; }
-.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
-.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
-.framebox-c {text-align:center;}
-.framebox-l {text-align:left;}
-.framebox-r {text-align:right;}
-span.thank-mark{ vertical-align: super }
-span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
-div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
-table.tabular td p{margin-top:0em;}
-table.tabular {margin-left: auto; margin-right: auto;}
-td p:first-child{ margin-top:0em; }
-td p:last-child{ margin-bottom:0em; }
-div.td00{ margin-left:0pt; margin-right:0pt; }
-div.td01{ margin-left:0pt; margin-right:5pt; }
-div.td10{ margin-left:5pt; margin-right:0pt; }
-div.td11{ margin-left:5pt; margin-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-td.td00{ padding-left:0pt; padding-right:0pt; }
-td.td01{ padding-left:0pt; padding-right:5pt; }
-td.td10{ padding-left:5pt; padding-right:0pt; }
-td.td11{ padding-left:5pt; padding-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-.hline hr, .cline hr{ height : 1px; margin:0px; }
-.tabbing-right {text-align:right;}
-span.TEX {letter-spacing: -0.125em; }
-span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
-a span.TEX span.E {text-decoration: none; }
-span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
-span.LATEX span.TEX{ position:relative; left: -0.4em; }
-div.float, div.figure {margin-left: auto; margin-right: auto;}
-div.float img {text-align:center;}
-div.figure img {text-align:center;}
-.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
-.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
-table.equation {width:100%;}
-.equation td{text-align:center; }
-td.equation { margin-top:1em; margin-bottom:1em; }
-td.equation-label { width:5%; text-align:center; }
-td.eqnarray4 { width:5%; white-space: normal; }
-td.eqnarray2 { width:5%; }
-table.eqnarray-star, table.eqnarray {width:100%;}
-div.eqnarray{text-align:center;}
-div.array {text-align:center;}
-div.pmatrix {text-align:center;}
-table.pmatrix {width:100%;}
-span.pmatrix img{vertical-align:middle;}
-div.pmatrix {text-align:center;}
-table.pmatrix {width:100%;}
-span.bar-css {text-decoration:overline;}
-img.cdots{vertical-align:middle;}
-.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
-.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;}
-.index-item, .index-subitem, .index-subsubitem {display:block}
-div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
-div.caption span.id{font-weight: bold; white-space: nowrap; }
-h1.partHead{text-align: center}
-p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
-p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
-.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
-.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
-.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
-.verse{white-space:nowrap; margin-left:2em}
-div.maketitle {text-align:center;}
-h2.titleHead{text-align:center;}
-div.maketitle{ margin-bottom: 2em; }
-div.author, div.date {text-align:center;}
-div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
-div.author{white-space: nowrap;}
-.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
-h1.partHead{text-align: center}
- .chapterToc, .likechapterToc {margin-left:0em;}
- .chapterToc ~ .likesectionToc, .chapterToc ~ .sectionToc, .likechapterToc ~ .likesectionToc, .likechapterToc ~ .sectionToc {margin-left:2em;}
- .chapterToc ~ .likesectionToc ~ .likesubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc, .likechapterToc ~ .sectionToc ~ .subsectionToc {margin-left:4em;}
-.chapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc ~ .subsubsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likechapterToc ~ .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc .likechapterToc ~ .sectionToc ~ .subsectionToc ~ .subsubsectionToc {margin-left:6em;}
- .likesectionToc , .sectionToc {margin-left:0em;}
- .likesectionToc ~ .likesubsectionToc, .likesectionToc ~ .subsectionToc, .sectionToc ~ .likesubsectionToc, .sectionToc ~ .subsectionToc {margin-left:2em;}
-.likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .sectionToc ~ .subsectionToc ~ .subsubsectionToc {margin-left:4em;}
- .likesubsectionToc, .subsectionToc {margin-left:0em;}
- .likesubsectionToc ~ .subsubsectionToc, .subsectionToc ~ .subsubsectionToc, {margin-left:2em;}
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-div.longtable{text-align:center;}
-div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
-table.tabular td p{margin-top:0em;}
-table.tabular {margin-left: auto; margin-right: auto;}
-td p:first-child{ margin-top:0em; }
-td p:last-child{ margin-bottom:0em; }
-div.td00{ margin-left:0pt; margin-right:0pt; }
-div.td01{ margin-left:0pt; margin-right:5pt; }
-div.td10{ margin-left:5pt; margin-right:0pt; }
-div.td11{ margin-left:5pt; margin-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-td.td00{ padding-left:0pt; padding-right:0pt; }
-td.td01{ padding-left:0pt; padding-right:5pt; }
-td.td10{ padding-left:5pt; padding-right:0pt; }
-td.td11{ padding-left:5pt; padding-right:5pt; }
-table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
-.hline hr, .cline hr{ height : 1px; margin:0px; }
-div.array {text-align:center;}
-.figure img.graphics {margin-left:10%;}
-.lstlisting .label{margin-right:0.5em; }
-div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
-div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
-.lstinputlisting .label{margin-right:0.5em;}
-/* end css.sty */
-
+
+/* start css.sty */
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-10{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{font-size:243%; font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-17x-x-143{ font-family: sans-serif;}
+.ec-lmss-12{font-size:120%; font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmss-12{ font-family: sans-serif;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmtt-10{ font-family: monospace;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10{ font-family: sans-serif; font-weight: bold;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmsso-10{ font-family: sans-serif; font-style: oblique;}
+.ec-lmss-9{font-size:90%; font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmss-9{ font-family: sans-serif;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtk-10{ font-family: monospace;}
+.ec-lmtt-9{font-size:90%; font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmtt-9{ font-family: monospace;}
+.ec-lmss-8x-x-62{font-size:49%; font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmss-8x-x-62{ font-family: sans-serif;}
+.ec-lmssbx-10x-x-90{font-size:90%; font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbx-10x-x-90{ font-family: sans-serif; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+.ec-lmssbo-10{ font-family: sans-serif; font-style: oblique; font-weight: bold;}
+@media print {span.next {visibility:hidden;}}
+p.noindent { text-indent: 0em }
+td p.noindent { text-indent: 0em; margin-top:0em; }
+p.nopar { text-indent: 0em; }
+p.indent{ text-indent: 1.5em }
+@media print {div.crosslinks {visibility:hidden;}}
+a img { border-top: 0; border-left: 0; border-right: 0; }
+center { margin-top:1em; margin-bottom:1em; }
+td center { margin-top:0em; margin-bottom:0em; }
+.Canvas { position:relative; }
+img.math{vertical-align:middle;}
+li p.indent { text-indent: 0em }
+li p:first-child{ margin-top:0em; }
+li p:last-child, li div:last-child { margin-bottom:0.5em; }
+li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; }
+.enumerate1 {list-style-type:decimal;}
+.enumerate2 {list-style-type:lower-alpha;}
+.enumerate3 {list-style-type:lower-roman;}
+.enumerate4 {list-style-type:upper-alpha;}
+div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
+.obeylines-h,.obeylines-v {white-space: nowrap; }
+div.obeylines-v p { margin-top:0; margin-bottom:0; }
+.overline{ text-decoration:overline; }
+.overline img{ border-top: 1px solid black; }
+td.displaylines {text-align:center; white-space:nowrap;}
+.centerline {text-align:center;}
+.rightline {text-align:right;}
+div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
+.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+div.fbox {display:table}
+div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+div.minipage{width:100%;}
+div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
+div.center div {text-align: left;}
+div.flushright, div.flushright div.flushright {text-align: right;}
+div.flushright div {text-align: left;}
+div.flushleft {text-align: left;}
+.underline{ text-decoration:underline; }
+.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
+.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
+.framebox-c {text-align:center;}
+.framebox-l {text-align:left;}
+.framebox-r {text-align:right;}
+span.thank-mark{ vertical-align: super }
+span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
+div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
+table.tabular td p{margin-top:0em;}
+table.tabular {margin-left: auto; margin-right: auto;}
+td p:first-child{ margin-top:0em; }
+td p:last-child{ margin-bottom:0em; }
+div.td00{ margin-left:0pt; margin-right:0pt; }
+div.td01{ margin-left:0pt; margin-right:5pt; }
+div.td10{ margin-left:5pt; margin-right:0pt; }
+div.td11{ margin-left:5pt; margin-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+td.td00{ padding-left:0pt; padding-right:0pt; }
+td.td01{ padding-left:0pt; padding-right:5pt; }
+td.td10{ padding-left:5pt; padding-right:0pt; }
+td.td11{ padding-left:5pt; padding-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+.hline hr, .cline hr{ height : 1px; margin:0px; }
+.tabbing-right {text-align:right;}
+span.TEX {letter-spacing: -0.125em; }
+span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
+a span.TEX span.E {text-decoration: none; }
+span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
+span.LATEX span.TEX{ position:relative; left: -0.4em; }
+div.float, div.figure {margin-left: auto; margin-right: auto;}
+div.float img {text-align:center;}
+div.figure img {text-align:center;}
+.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
+.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
+table.equation {width:100%;}
+.equation td{text-align:center; }
+td.equation { margin-top:1em; margin-bottom:1em; }
+td.equation-label { width:5%; text-align:center; }
+td.eqnarray4 { width:5%; white-space: normal; }
+td.eqnarray2 { width:5%; }
+table.eqnarray-star, table.eqnarray {width:100%;}
+div.eqnarray{text-align:center;}
+div.array {text-align:center;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+span.pmatrix img{vertical-align:middle;}
+div.pmatrix {text-align:center;}
+table.pmatrix {width:100%;}
+span.bar-css {text-decoration:overline;}
+img.cdots{vertical-align:middle;}
+.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
+.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;}
+.index-item, .index-subitem, .index-subsubitem {display:block}
+div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
+div.caption span.id{font-weight: bold; white-space: nowrap; }
+h1.partHead{text-align: center}
+p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
+p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
+.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
+.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
+.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
+.verse{white-space:nowrap; margin-left:2em}
+div.maketitle {text-align:center;}
+h2.titleHead{text-align:center;}
+div.maketitle{ margin-bottom: 2em; }
+div.author, div.date {text-align:center;}
+div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
+div.author{white-space: nowrap;}
+.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
+h1.partHead{text-align: center}
+ .chapterToc, .likechapterToc {margin-left:0em;}
+ .chapterToc ~ .likesectionToc, .chapterToc ~ .sectionToc, .likechapterToc ~ .likesectionToc, .likechapterToc ~ .sectionToc {margin-left:2em;}
+ .chapterToc ~ .likesectionToc ~ .likesubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc, .likechapterToc ~ .sectionToc ~ .subsectionToc {margin-left:4em;}
+.chapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .chapterToc ~ .sectionToc ~ .subsectionToc ~ .subsubsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likechapterToc ~ .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likechapterToc ~ .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc .likechapterToc ~ .sectionToc ~ .subsectionToc ~ .subsubsectionToc {margin-left:6em;}
+ .likesectionToc , .sectionToc {margin-left:0em;}
+ .likesectionToc ~ .likesubsectionToc, .likesectionToc ~ .subsectionToc, .sectionToc ~ .likesubsectionToc, .sectionToc ~ .subsectionToc {margin-left:2em;}
+.likesectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .likesectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .likesectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .likesectionToc ~ .subsectionToc ~ .subsubsectionToc, .sectionToc ~ .likesubsectionToc ~ .likesubsubsectionToc, .sectionToc ~ .likesubsectionToc ~ .subsubsectionToc, .sectionToc ~ .subsectionToc ~ .likesubsubsectionToc, .sectionToc ~ .subsectionToc ~ .subsubsectionToc {margin-left:4em;}
+ .likesubsectionToc, .subsectionToc {margin-left:0em;}
+ .likesubsectionToc ~ .subsubsectionToc, .subsectionToc ~ .subsubsectionToc, {margin-left:2em;}
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+div.longtable{text-align:center;}
+div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
+table.tabular td p{margin-top:0em;}
+table.tabular {margin-left: auto; margin-right: auto;}
+td p:first-child{ margin-top:0em; }
+td p:last-child{ margin-bottom:0em; }
+div.td00{ margin-left:0pt; margin-right:0pt; }
+div.td01{ margin-left:0pt; margin-right:5pt; }
+div.td10{ margin-left:5pt; margin-right:0pt; }
+div.td11{ margin-left:5pt; margin-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+td.td00{ padding-left:0pt; padding-right:0pt; }
+td.td01{ padding-left:0pt; padding-right:5pt; }
+td.td10{ padding-left:5pt; padding-right:0pt; }
+td.td11{ padding-left:5pt; padding-right:5pt; }
+table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+.hline hr, .cline hr{ height : 1px; margin:0px; }
+div.array {text-align:center;}
+.figure img.graphics {margin-left:10%;}
+.lstlisting .label{margin-right:0.5em; }
+div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
+div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
+.lstinputlisting .label{margin-right:0.5em;}
+span#textcolor1{color:rgb(0,0,235)}
+span#textcolor2{color:rgb(0,0,235)}
+span#textcolor3{color:rgb(0,0,235)}
+span#textcolor4{color:rgb(0,0,235)}
+span#textcolor5{color:rgb(0,0,235)}
+span#textcolor6{color:rgb(0,0,235)}
+span#textcolor7{color:rgb(0,0,235)}
+span#textcolor8{color:rgb(0,0,235)}
+span#textcolor9{color:rgb(0,0,235)}
+span#textcolor10{color:rgb(0,0,235)}
+span#textcolor11{color:rgb(0,0,235)}
+span#textcolor12{color:rgb(0,0,235)}
+span#textcolor13{color:rgb(0,0,235)}
+span#textcolor14{color:rgb(0,0,235)}
+span#textcolor15{color:rgb(0,0,235)}
+span#textcolor16{color:rgb(0,0,235)}
+span#textcolor17{color:rgb(0,0,235)}
+span#textcolor18{color:rgb(0,0,235)}
+span#textcolor19{color:rgb(0,0,235)}
+span#textcolor20{color:rgb(0,0,235)}
+span#textcolor21{color:rgb(0,0,235)}
+span#textcolor22{color:rgb(0,0,235)}
+span#textcolor23{color:rgb(0,0,235)}
+span#textcolor24{color:rgb(0,0,235)}
+span#textcolor25{color:rgb(0,0,235)}
+span#textcolor26{color:rgb(0,0,235)}
+span#textcolor27{color:rgb(0,0,235)}
+span#textcolor28{color:rgb(0,0,235)}
+span#textcolor29{color:rgb(0,0,235)}
+span#textcolor30{color:rgb(0,0,235)}
+span#textcolor31{color:rgb(0,0,235)}
+span#textcolor32{color:rgb(0,0,235)}
+span#textcolor33{color:rgb(0,0,235)}
+span#textcolor34{color:rgb(0,0,235)}
+span#textcolor35{color:rgb(0,0,235)}
+span#textcolor36{color:rgb(0,0,235)}
+span#textcolor37{color:rgb(0,0,235)}
+span#textcolor38{color:rgb(0,0,235)}
+span#textcolor39{color:rgb(0,0,235)}
+span#textcolor40{color:rgb(0,0,235)}
+span#textcolor41{color:rgb(0,0,235)}
+span#textcolor42{color:rgb(0,0,235)}
+span#textcolor43{color:rgb(0,0,235)}
+span#textcolor44{color:rgb(0,0,235)}
+span#textcolor45{color:rgb(0,0,235)}
+span#textcolor46{color:rgb(0,0,235)}
+span#textcolor47{color:rgb(0,0,235)}
+span#textcolor48{color:rgb(0,0,235)}
+span#textcolor49{color:rgb(0,0,235)}
+span#textcolor50{color:rgb(0,0,235)}
+span#textcolor51{color:rgb(0,0,235)}
+span#textcolor52{color:rgb(0,0,235)}
+span#textcolor53{color:rgb(0,0,235)}
+span#textcolor54{color:rgb(0,0,235)}
+span#textcolor55{color:rgb(0,0,235)}
+span#textcolor56{color:rgb(0,0,235)}
+span#textcolor57{color:rgb(0,0,235)}
+span#textcolor58{color:rgb(0,0,235)}
+span#textcolor59{color:rgb(0,0,235)}
+span#textcolor60{color:rgb(0,0,235)}
+span#textcolor61{color:rgb(0,0,235)}
+span#textcolor62{color:rgb(0,0,235)}
+span#textcolor63{color:rgb(0,0,235)}
+span#textcolor64{color:rgb(0,0,235)}
+span#textcolor65{color:rgb(0,0,235)}
+span#textcolor66{color:rgb(0,0,235)}
+span#textcolor67{color:rgb(0,0,235)}
+span#textcolor68{color:rgb(0,0,235)}
+span#textcolor69{color:rgb(0,0,235)}
+/* end css.sty */
+
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
index c62c2f8..d028d83 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html
@@ -10,15 +10,15 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<div class="maketitle">
-
-
-
-
+
+
+
+
<h2 class="titleHead">eTrice</h2>
<div class="author" ><span
@@ -27,48 +27,79 @@ class="ec-lmss-12">Trice</span> <span
class="ec-lmss-12">committers and contributors</span></div>
<br />
<div class="date" ><span
-class="ec-lmss-12">July 10, 2013</span></div>
-
-
+class="ec-lmss-12">July 12, 2013</span></div>
+
+
</div>
-
-
+
+
<div class="tableofcontents">
<span class="likechapterToc" ><a
href="etrice-docli1.html#x2-1000" id="QQ2-2-1">Contents</a></span>
<br /><span class="chapterToc" >1 <a
href="etrice-docch1.html#x3-20001" id="QQ2-3-2">Introduction</a></span>
+<br />&#x00A0;<span class="sectionToc" >1.1 <a
+href="etrice-docse1.html#x4-30001.1" id="QQ2-4-3">eTrice Overview</a></span>
+<br />&#x00A0;<span class="sectionToc" >1.2 <a
+href="etrice-docse2.html#x5-60001.2" id="QQ2-5-6">Introduction to the ROOM Language</a></span>
<br /><span class="chapterToc" >2 <a
-href="etrice-docch2.html#x4-30002" id="QQ2-4-3">Tutorials</a></span>
+href="etrice-docch2.html#x6-250002" id="QQ2-6-26">Tutorials</a></span>
<br />&#x00A0;<span class="sectionToc" >2.1 <a
-href="etrice-docse1.html#x5-40002.1" id="QQ2-5-4">Setting up the Workspace for Java Projects</a></span>
+href="etrice-docse3.html#x7-260002.1" id="QQ2-7-27">Working with the tutorials</a></span>
<br />&#x00A0;<span class="sectionToc" >2.2 <a
-href="etrice-docse2.html#x6-60002.2" id="QQ2-6-6">Setting up the Workspace for C Projects</a></span>
+href="etrice-docse4.html#x8-270002.2" id="QQ2-8-28">Setting up the Workspace for Java Projects</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.3 <a
+href="etrice-docse5.html#x9-300002.3" id="QQ2-9-31">Setting up the Workspace for C Projects</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.4 <a
+href="etrice-docse6.html#x10-330002.4" id="QQ2-10-34">HelloWorld for Java</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.5 <a
+href="etrice-docse7.html#x11-400002.5" id="QQ2-11-41">HelloWorld for C</a></span>
<br /><span class="chapterToc" >3 <a
-href="etrice-docch3.html#x7-90003" id="QQ2-7-9">eTrice Features</a></span>
+href="etrice-docch3.html#x12-500003" id="QQ2-12-51">ROOM Concepts</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.1 <a
+href="etrice-docse8.html#x13-510003.1" id="QQ2-13-52">Actors</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.2 <a
+href="etrice-docse9.html#x14-590003.2" id="QQ2-14-62">Protocols</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.3 <a
+href="etrice-docse10.html#x15-630003.3" id="QQ2-15-66">Ports</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.4 <a
+href="etrice-docse11.html#x16-690003.4" id="QQ2-16-86">DataClass</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.5 <a
+href="etrice-docse12.html#x17-720003.5" id="QQ2-17-89">Layering</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.6 <a
+href="etrice-docse13.html#x18-750003.6" id="QQ2-18-93">Finite State Machines</a></span>
<br /><span class="chapterToc" >4 <a
-href="etrice-docch4.html#x8-100004" id="QQ2-8-10">eTrice Tool Developer&#8217;s Reference</a></span>
+href="etrice-docch4.html#x19-820004" id="QQ2-19-106">eTrice Features</a></span>
<br />&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse3.html#x9-110004.1" id="QQ2-9-11">Architecture</a></span>
+href="etrice-docse14.html#x20-830004.1" id="QQ2-20-107">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse4.html#x10-150004.2" id="QQ2-10-15">Component Overview</a></span>
+href="etrice-docse15.html#x21-960004.2" id="QQ2-21-124">eTrice Models and Their Relations</a></span>
+<br /><span class="chapterToc" >5 <a
+href="etrice-docch5.html#x22-1010005" id="QQ2-22-135">eTrice Tool Developer&#8217;s Reference</a></span>
+<br />&#x00A0;<span class="sectionToc" >5.1 <a
+href="etrice-docse16.html#x23-1020005.1" id="QQ2-23-136">Architecture</a></span>
+<br />&#x00A0;<span class="sectionToc" >5.2 <a
+href="etrice-docse17.html#x24-1060005.2" id="QQ2-24-140">Component Overview</a></span>
</div>
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
+
+
+
<!--l. 87--><p class="noindent" ><span class="next">[<a
href="etrice-docli1.html" id="tailetrice-doc" >next</a>]</span></p>
</body></html>
-
+
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
index 889f33c..69aae83 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html
@@ -10,22 +10,39 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 54--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch2.html" >next</a>] [<a
+href="etrice-docse1.html" >next</a>] [<a
href="etrice-docli1.html" >prev</a>] [<a
href="etrice-docli1.html#tailetrice-docli1.html" >prev-tail</a>] [<a
href="#tailetrice-docch1.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch1.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;1</span><br /><a
id="x3-20001"></a>Introduction</h2>
-
-
+<div class="sectionTOCS">
+&#x00A0;<span class="sectionToc" >1.1 <a
+href="etrice-docse1.html#x4-30001.1">eTrice Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.1.1 <a
+href="etrice-docse1.html#x4-40001.1.1">What is eTrice?</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.1.2 <a
+href="etrice-docse1.html#x4-50001.1.2">Reduction of Complexity</a></span>
+<br />&#x00A0;<span class="sectionToc" >1.2 <a
+href="etrice-docse2.html#x5-60001.2">Introduction to the ROOM Language</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.1 <a
+href="etrice-docse2.html#x5-70001.2.1">Scope of ROOM</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.2 <a
+href="etrice-docse2.html#x5-130001.2.2">Basic Concepts</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.3 <a
+href="etrice-docse2.html#x5-180001.2.3">Execution Models</a></span>
+</div>
+
+
+
<!--l. 59--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch2.html" >next</a>] [<a
+href="etrice-docse1.html" >next</a>] [<a
href="etrice-docli1.html" >prev</a>] [<a
href="etrice-docli1.html#tailetrice-docli1.html" >prev-tail</a>] [<a
href="etrice-docch1.html" >front</a>] [<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
index a8d8ee3..67a3507 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html
@@ -10,39 +10,80 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 59--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse1.html" >next</a>] [<a
-href="etrice-docch1.html" >prev</a>] [<a
-href="etrice-docch1.html#tailetrice-docch1.html" >prev-tail</a>] [<a
+href="etrice-docse3.html" >next</a>] [<a
+href="etrice-docse2.html" >prev</a>] [<a
+href="etrice-docse2.html#tailetrice-docse2.html" >prev-tail</a>] [<a
href="#tailetrice-docch2.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch2.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;2</span><br /><a
- id="x4-30002"></a>Tutorials</h2>
+ id="x6-250002"></a>Tutorials</h2>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >2.1 <a
-href="etrice-docse1.html#x5-40002.1">Setting up the Workspace for Java Projects</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.1.1 <a
-href="etrice-docse1.html#x5-50002.1.1">Create Library, Tutorial and Simulator Projects</a></span>
+href="etrice-docse3.html#x7-260002.1">Working with the tutorials</a></span>
<br />&#x00A0;<span class="sectionToc" >2.2 <a
-href="etrice-docse2.html#x6-60002.2">Setting up the Workspace for C Projects</a></span>
+href="etrice-docse4.html#x8-270002.2">Setting up the Workspace for Java Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.2.1 <a
-href="etrice-docse2.html#x6-70002.2.1">Testing the environment</a></span>
+href="etrice-docse4.html#x8-280002.2.1">Create Library, Tutorial and Simulator Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.2.2 <a
-href="etrice-docse2.html#x6-80002.2.2">Building the C runtime system</a></span>
+href="etrice-docse4.html#x8-290002.2.2">Perform Setup Test</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.3 <a
+href="etrice-docse5.html#x9-300002.3">Setting up the Workspace for C Projects</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.3.1 <a
+href="etrice-docse5.html#x9-310002.3.1">Create Library, Tutorial and Simulator Projects</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.3.2 <a
+href="etrice-docse5.html#x9-320002.3.2">Perform Setup Test</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.4 <a
+href="etrice-docse6.html#x10-330002.4">HelloWorld for Java</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.1 <a
+href="etrice-docse6.html#x10-340002.4.1">Scope</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.2 <a
+href="etrice-docse6.html#x10-350002.4.2">Create a new model from scratch</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.3 <a
+href="etrice-docse6.html#x10-360002.4.3">Create a state machine</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.4 <a
+href="etrice-docse6.html#x10-370002.4.4">Build and run the model</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.5 <a
+href="etrice-docse6.html#x10-380002.4.5">Open the Message Sequence Chart</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.6 <a
+href="etrice-docse6.html#x10-390002.4.6">Summary</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.5 <a
+href="etrice-docse7.html#x11-400002.5">HelloWorld for C</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.1 <a
+href="etrice-docse7.html#x11-410002.5.1">Scope</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.2 <a
+href="etrice-docse7.html#x11-420002.5.2">Create a new model from scratch</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.3 <a
+href="etrice-docse7.html#x11-430002.5.3">Create a state machine</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.4 <a
+href="etrice-docse7.html#x11-440002.5.4">Create a launch configuration to start the C code generator</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.5 <a
+href="etrice-docse7.html#x11-450002.5.5">Generate the code</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.6 <a
+href="etrice-docse7.html#x11-460002.5.6">Setup the C build</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.7 <a
+href="etrice-docse7.html#x11-470002.5.7">Build and run the model</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.8 <a
+href="etrice-docse7.html#x11-480002.5.8">Open the Message Sequence Chart</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.9 <a
+href="etrice-docse7.html#x11-490002.5.9">Summary</a></span>
</div>
-
-
-<!--l. 71--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse1.html" >next</a>] [<a
-href="etrice-docch1.html" >prev</a>] [<a
-href="etrice-docch1.html#tailetrice-docch1.html" >prev-tail</a>] [<a
+
+
+
+
+
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse3.html" >next</a>] [<a
+href="etrice-docse2.html" >prev</a>] [<a
+href="etrice-docse2.html#tailetrice-docse2.html" >prev-tail</a>] [<a
href="etrice-docch2.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch2.html" >up</a>] </p></div>
-<!--l. 71--><p class="noindent" ><a
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docch2.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
index 0d23903..f45b5d5 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html
@@ -4,32 +4,93 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>3 eTrice Features</title>
+<head><title>3 ROOM Concepts</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 71--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch4.html" >next</a>] [<a
-href="etrice-docse2.html" >prev</a>] [<a
-href="etrice-docse2.html#tailetrice-docse2.html" >prev-tail</a>] [<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse8.html" >next</a>] [<a
+href="etrice-docse7.html" >prev</a>] [<a
+href="etrice-docse7.html#tailetrice-docse7.html" >prev-tail</a>] [<a
href="#tailetrice-docch3.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch3.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;3</span><br /><a
- id="x7-90003"></a>eTrice Features</h2>
-
-
-<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch4.html" >next</a>] [<a
-href="etrice-docse2.html" >prev</a>] [<a
-href="etrice-docse2.html#tailetrice-docse2.html" >prev-tail</a>] [<a
+ id="x12-500003"></a>ROOM Concepts</h2>
+<!--l. 4--><p class="noindent" >This chapter gives an overview over the ROOM language elements and their textual and graphical
+notation. The formal ROOM grammar based on Xtext (EBNF) you can find in the eTrice repository:
+<a
+href="http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/plain/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext" class="url" ><span
+class="ec-lmtt-10">http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/plain/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext</span></a>
+</p>
+<div class="sectionTOCS">
+&#x00A0;<span class="sectionToc" >3.1 <a
+href="etrice-docse8.html#x13-510003.1">Actors</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.1 <a
+href="etrice-docse8.html#x13-520003.1.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.2 <a
+href="etrice-docse8.html#x13-530003.1.2">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.3 <a
+href="etrice-docse8.html#x13-540003.1.3">Notation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.4 <a
+href="etrice-docse8.html#x13-550003.1.4">Details</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.2 <a
+href="etrice-docse9.html#x14-590003.2">Protocols</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.1 <a
+href="etrice-docse9.html#x14-600003.2.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.2 <a
+href="etrice-docse9.html#x14-610003.2.2">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.3 <a
+href="etrice-docse9.html#x14-620003.2.3">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.3 <a
+href="etrice-docse10.html#x15-630003.3">Ports</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.1 <a
+href="etrice-docse10.html#x15-640003.3.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.2 <a
+href="etrice-docse10.html#x15-650003.3.2">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.3 <a
+href="etrice-docse10.html#x15-660003.3.3">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.4 <a
+href="etrice-docse11.html#x16-690003.4">DataClass</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.4.1 <a
+href="etrice-docse11.html#x16-700003.4.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.4.2 <a
+href="etrice-docse11.html#x16-710003.4.2">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.5 <a
+href="etrice-docse12.html#x17-720003.5">Layering</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.5.1 <a
+href="etrice-docse12.html#x17-730003.5.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.5.2 <a
+href="etrice-docse12.html#x17-740003.5.2">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.6 <a
+href="etrice-docse13.html#x18-750003.6">Finite State Machines</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.1 <a
+href="etrice-docse13.html#x18-760003.6.1">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.2 <a
+href="etrice-docse13.html#x18-770003.6.2">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.3 <a
+href="etrice-docse13.html#x18-780003.6.3">Notation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.4 <a
+href="etrice-docse13.html#x18-810003.6.4">Examples</a></span>
+</div>
+
+
+
+
+
+
+
+<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse8.html" >next</a>] [<a
+href="etrice-docse7.html" >prev</a>] [<a
+href="etrice-docse7.html#tailetrice-docse7.html" >prev-tail</a>] [<a
href="etrice-docch3.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch3.html" >up</a>] </p></div>
-<!--l. 83--><p class="noindent" ><a
+<!--l. 72--><p class="noindent" ><a
id="tailetrice-docch3.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
index a1a888a..f0235cc 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html
@@ -4,53 +4,59 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>4 eTrice Tool Developer&#8217;s Reference</title>
+<head><title>4 eTrice Features</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse3.html" >next</a>] [<a
-href="etrice-docch3.html" >prev</a>] [<a
-href="etrice-docch3.html#tailetrice-docch3.html" >prev-tail</a>] [<a
+<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse14.html" >next</a>] [<a
+href="etrice-docse13.html" >prev</a>] [<a
+href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
href="#tailetrice-docch4.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch4.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;4</span><br /><a
- id="x8-100004"></a>eTrice Tool Developer&#8217;s Reference</h2>
+ id="x19-820004"></a>eTrice Features</h2>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse3.html#x9-110004.1">Architecture</a></span>
+href="etrice-docse14.html#x20-830004.1">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.1 <a
-href="etrice-docse3.html#x9-120004.1.1">Editor and Generator Components</a></span>
+href="etrice-docse14.html#x20-840004.1.1">Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.2 <a
-href="etrice-docse3.html#x9-130004.1.2">Runtimes</a></span>
+href="etrice-docse14.html#x20-850004.1.2">Performing Automatic Layout</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.3 <a
-href="etrice-docse3.html#x9-140004.1.3">Unit Tests</a></span>
+href="etrice-docse14.html#x20-860004.1.3">Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.4 <a
+href="etrice-docse14.html#x20-870004.1.4">Configuring Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.5 <a
+href="etrice-docse14.html#x20-920004.1.5">Special Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.6 <a
+href="etrice-docse14.html#x20-950004.1.6">Further References</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse4.html#x10-150004.2">Component Overview</a></span>
+href="etrice-docse15.html#x21-960004.2">eTrice Models and Their Relations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.1 <a
-href="etrice-docse4.html#x10-160004.2.1">Room Language Overview</a></span>
+href="etrice-docse15.html#x21-970004.2.1">The ROOM Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.2 <a
-href="etrice-docse4.html#x10-220004.2.2">Config Language Overview</a></span>
+href="etrice-docse15.html#x21-980004.2.2">The Config Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.3 <a
-href="etrice-docse4.html#x10-260004.2.3">Aggregation Layer Overview</a></span>
+href="etrice-docse15.html#x21-990004.2.3">The Physical Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.4 <a
-href="etrice-docse4.html#x10-300004.2.4">Generator Overview</a></span>
+href="etrice-docse15.html#x21-1000004.2.4">The Mapping Model</a></span>
</div>
-
-
-<!--l. 87--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse3.html" >next</a>] [<a
-href="etrice-docch3.html" >prev</a>] [<a
-href="etrice-docch3.html#tailetrice-docch3.html" >prev-tail</a>] [<a
+
+
+<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse14.html" >next</a>] [<a
+href="etrice-docse13.html" >prev</a>] [<a
+href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
href="etrice-docch4.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch4.html" >up</a>] </p></div>
-<!--l. 87--><p class="noindent" ><a
+<!--l. 83--><p class="noindent" ><a
id="tailetrice-docch4.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
index 22083da..9fde421 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html
@@ -4,59 +4,53 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>5 eTrice Features</title>
+<head><title>5 eTrice Tool Developer&#8217;s Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 71--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse19.html" >next</a>] [<a
-href="etrice-docse18.html" >prev</a>] [<a
-href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
+<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse16.html" >next</a>] [<a
+href="etrice-docse15.html" >prev</a>] [<a
+href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
href="#tailetrice-docch5.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch5.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;5</span><br /><a
- id="x25-1040005"></a>eTrice Features</h2>
+ id="x22-1010005"></a>eTrice Tool Developer&#8217;s Reference</h2>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >5.1 <a
-href="etrice-docse19.html#x26-1050005.1">Automatic Diagram Layout with KIELER</a></span>
+href="etrice-docse16.html#x23-1020005.1">Architecture</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.1 <a
-href="etrice-docse19.html#x26-1060005.1.1">Overview</a></span>
+href="etrice-docse16.html#x23-1030005.1.1">Editor and Generator Components</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.2 <a
-href="etrice-docse19.html#x26-1070005.1.2">Performing Automatic Layout</a></span>
+href="etrice-docse16.html#x23-1040005.1.2">Runtimes</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.3 <a
-href="etrice-docse19.html#x26-1080005.1.3">Layout Options</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.4 <a
-href="etrice-docse19.html#x26-1090005.1.4">Configuring Layout Options</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.5 <a
-href="etrice-docse19.html#x26-1140005.1.5">Special Layout Options</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.6 <a
-href="etrice-docse19.html#x26-1170005.1.6">Further References</a></span>
+href="etrice-docse16.html#x23-1050005.1.3">Unit Tests</a></span>
<br />&#x00A0;<span class="sectionToc" >5.2 <a
-href="etrice-docse20.html#x27-1180005.2">eTrice Models and Their Relations</a></span>
+href="etrice-docse17.html#x24-1060005.2">Component Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.1 <a
-href="etrice-docse20.html#x27-1190005.2.1">The ROOM Model</a></span>
+href="etrice-docse17.html#x24-1070005.2.1">Room Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.2 <a
-href="etrice-docse20.html#x27-1200005.2.2">The Config Model</a></span>
+href="etrice-docse17.html#x24-1130005.2.2">Config Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.3 <a
-href="etrice-docse20.html#x27-1210005.2.3">The Physical Model</a></span>
+href="etrice-docse17.html#x24-1170005.2.3">Aggregation Layer Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.4 <a
-href="etrice-docse20.html#x27-1220005.2.4">The Mapping Model</a></span>
+href="etrice-docse17.html#x24-1210005.2.4">Generator Overview</a></span>
</div>
-
-
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse19.html" >next</a>] [<a
-href="etrice-docse18.html" >prev</a>] [<a
-href="etrice-docse18.html#tailetrice-docse18.html" >prev-tail</a>] [<a
+
+
+<!--l. 87--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse16.html" >next</a>] [<a
+href="etrice-docse15.html" >prev</a>] [<a
+href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
href="etrice-docch5.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch5.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+<!--l. 87--><p class="noindent" ><a
id="tailetrice-docch5.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
index 1945216..a796953 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html
@@ -10,47 +10,47 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-11 16:27:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse21.html" >next</a>] [<a
-href="etrice-docse20.html" >prev</a>] [<a
-href="etrice-docse20.html#tailetrice-docse20.html" >prev-tail</a>] [<a
+<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse16.html" >next</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="#tailetrice-docch6.html">tail</a>] [<a
href="etrice-doc.html#etrice-docch6.html" >up</a>] </p></div>
<h2 class="chapterHead"><span class="titlemark">Chapter&#x00A0;6</span><br /><a
- id="x28-1230006"></a>eTrice Tool Developer&#8217;s Reference</h2>
+ id="x23-840006"></a>eTrice Tool Developer&#8217;s Reference</h2>
<div class="sectionTOCS">
&#x00A0;<span class="sectionToc" >6.1 <a
-href="etrice-docse21.html#x29-1240006.1">Architecture</a></span>
+href="etrice-docse16.html#x24-850006.1">Architecture</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.1 <a
-href="etrice-docse21.html#x29-1250006.1.1">Editor and Generator Components</a></span>
+href="etrice-docse16.html#x24-860006.1.1">Editor and Generator Components</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.2 <a
-href="etrice-docse21.html#x29-1260006.1.2">Runtimes</a></span>
+href="etrice-docse16.html#x24-870006.1.2">Runtimes</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.1.3 <a
-href="etrice-docse21.html#x29-1270006.1.3">Unit Tests</a></span>
+href="etrice-docse16.html#x24-880006.1.3">Unit Tests</a></span>
<br />&#x00A0;<span class="sectionToc" >6.2 <a
-href="etrice-docse22.html#x30-1280006.2">Component Overview</a></span>
+href="etrice-docse17.html#x25-890006.2">Component Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.1 <a
-href="etrice-docse22.html#x30-1290006.2.1">Room Language Overview</a></span>
+href="etrice-docse17.html#x25-900006.2.1">Room Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.2 <a
-href="etrice-docse22.html#x30-1350006.2.2">Config Language Overview</a></span>
+href="etrice-docse17.html#x25-960006.2.2">Config Language Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.3 <a
-href="etrice-docse22.html#x30-1390006.2.3">Aggregation Layer Overview</a></span>
+href="etrice-docse17.html#x25-1000006.2.3">Aggregation Layer Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >6.2.4 <a
-href="etrice-docse22.html#x30-1430006.2.4">Generator Overview</a></span>
+href="etrice-docse17.html#x25-1040006.2.4">Generator Overview</a></span>
</div>
-
-
-<!--l. 81--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse21.html" >next</a>] [<a
-href="etrice-docse20.html" >prev</a>] [<a
-href="etrice-docse20.html#tailetrice-docse20.html" >prev-tail</a>] [<a
+
+
+<!--l. 87--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse16.html" >next</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="etrice-docch6.html" >front</a>] [<a
href="etrice-doc.html#etrice-docch6.html" >up</a>] </p></div>
-<!--l. 81--><p class="noindent" ><a
+<!--l. 87--><p class="noindent" ><a
id="tailetrice-docch6.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
index da648e3..0e9a417 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -25,45 +25,173 @@ href="etrice-doc.html#etrice-docli1.html" >up</a>] </p></div>
<div class="tableofcontents">
<span class="chapterToc" >1 <a
href="etrice-docch1.html#x3-20001">Introduction</a></span>
+<br />&#x00A0;<span class="sectionToc" >1.1 <a
+href="etrice-docse1.html#x4-30001.1">eTrice Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.1.1 <a
+href="etrice-docse1.html#x4-40001.1.1" id="QQ2-4-4">What is eTrice?</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.1.2 <a
+href="etrice-docse1.html#x4-50001.1.2" id="QQ2-4-5">Reduction of Complexity</a></span>
+<br />&#x00A0;<span class="sectionToc" >1.2 <a
+href="etrice-docse2.html#x5-60001.2">Introduction to the ROOM Language</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.1 <a
+href="etrice-docse2.html#x5-70001.2.1" id="QQ2-5-7">Scope of ROOM</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.2 <a
+href="etrice-docse2.html#x5-130001.2.2" id="QQ2-5-13">Basic Concepts</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >1.2.3 <a
+href="etrice-docse2.html#x5-180001.2.3" id="QQ2-5-19">Execution Models</a></span>
<br /><span class="chapterToc" >2 <a
-href="etrice-docch2.html#x4-30002">Tutorials</a></span>
+href="etrice-docch2.html#x6-250002">Tutorials</a></span>
+
+
<br />&#x00A0;<span class="sectionToc" >2.1 <a
-href="etrice-docse1.html#x5-40002.1">Setting up the Workspace for Java Projects</a></span>
-<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.1.1 <a
-href="etrice-docse1.html#x5-50002.1.1" id="QQ2-5-5">Create Library, Tutorial and Simulator Projects</a></span>
+href="etrice-docse3.html#x7-260002.1">Working with the tutorials</a></span>
<br />&#x00A0;<span class="sectionToc" >2.2 <a
-href="etrice-docse2.html#x6-60002.2">Setting up the Workspace for C Projects</a></span>
+href="etrice-docse4.html#x8-270002.2">Setting up the Workspace for Java Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.2.1 <a
-href="etrice-docse2.html#x6-70002.2.1" id="QQ2-6-7">Testing the environment</a></span>
+href="etrice-docse4.html#x8-280002.2.1" id="QQ2-8-29">Create Library, Tutorial and Simulator Projects</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.2.2 <a
-href="etrice-docse2.html#x6-80002.2.2" id="QQ2-6-8">Building the C runtime system</a></span>
+href="etrice-docse4.html#x8-290002.2.2" id="QQ2-8-30">Perform Setup Test</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.3 <a
+href="etrice-docse5.html#x9-300002.3">Setting up the Workspace for C Projects</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.3.1 <a
+href="etrice-docse5.html#x9-310002.3.1" id="QQ2-9-32">Create Library, Tutorial and Simulator Projects</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.3.2 <a
+href="etrice-docse5.html#x9-320002.3.2" id="QQ2-9-33">Perform Setup Test</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.4 <a
+href="etrice-docse6.html#x10-330002.4">HelloWorld for Java</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.1 <a
+href="etrice-docse6.html#x10-340002.4.1" id="QQ2-10-35">Scope</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.2 <a
+href="etrice-docse6.html#x10-350002.4.2" id="QQ2-10-36">Create a new model from scratch</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.3 <a
+href="etrice-docse6.html#x10-360002.4.3" id="QQ2-10-37">Create a state machine</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.4 <a
+href="etrice-docse6.html#x10-370002.4.4" id="QQ2-10-38">Build and run the model</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.5 <a
+href="etrice-docse6.html#x10-380002.4.5" id="QQ2-10-39">Open the Message Sequence Chart</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.4.6 <a
+href="etrice-docse6.html#x10-390002.4.6" id="QQ2-10-40">Summary</a></span>
+<br />&#x00A0;<span class="sectionToc" >2.5 <a
+href="etrice-docse7.html#x11-400002.5">HelloWorld for C</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.1 <a
+href="etrice-docse7.html#x11-410002.5.1" id="QQ2-11-42">Scope</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.2 <a
+href="etrice-docse7.html#x11-420002.5.2" id="QQ2-11-43">Create a new model from scratch</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.3 <a
+href="etrice-docse7.html#x11-430002.5.3" id="QQ2-11-44">Create a state machine</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.4 <a
+href="etrice-docse7.html#x11-440002.5.4" id="QQ2-11-45">Create a launch configuration to start the C code generator</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.5 <a
+href="etrice-docse7.html#x11-450002.5.5" id="QQ2-11-46">Generate the code</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.6 <a
+href="etrice-docse7.html#x11-460002.5.6" id="QQ2-11-47">Setup the C build</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.7 <a
+href="etrice-docse7.html#x11-470002.5.7" id="QQ2-11-48">Build and run the model</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.8 <a
+href="etrice-docse7.html#x11-480002.5.8" id="QQ2-11-49">Open the Message Sequence Chart</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >2.5.9 <a
+href="etrice-docse7.html#x11-490002.5.9" id="QQ2-11-50">Summary</a></span>
<br /><span class="chapterToc" >3 <a
-href="etrice-docch3.html#x7-90003">eTrice Features</a></span>
+href="etrice-docch3.html#x12-500003">ROOM Concepts</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.1 <a
+href="etrice-docse8.html#x13-510003.1">Actors</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.1 <a
+href="etrice-docse8.html#x13-520003.1.1" id="QQ2-13-53">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.2 <a
+href="etrice-docse8.html#x13-530003.1.2" id="QQ2-13-54">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.3 <a
+href="etrice-docse8.html#x13-540003.1.3" id="QQ2-13-55">Notation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.1.4 <a
+href="etrice-docse8.html#x13-550003.1.4" id="QQ2-13-57">Details</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.2 <a
+href="etrice-docse9.html#x14-590003.2">Protocols</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.1 <a
+href="etrice-docse9.html#x14-600003.2.1" id="QQ2-14-63">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.2 <a
+href="etrice-docse9.html#x14-610003.2.2" id="QQ2-14-64">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.2.3 <a
+href="etrice-docse9.html#x14-620003.2.3" id="QQ2-14-65">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.3 <a
+href="etrice-docse10.html#x15-630003.3">Ports</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.1 <a
+href="etrice-docse10.html#x15-640003.3.1" id="QQ2-15-67">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.2 <a
+href="etrice-docse10.html#x15-650003.3.2" id="QQ2-15-68">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.3.3 <a
+href="etrice-docse10.html#x15-660003.3.3" id="QQ2-15-69">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.4 <a
+href="etrice-docse11.html#x16-690003.4">DataClass</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.4.1 <a
+href="etrice-docse11.html#x16-700003.4.1" id="QQ2-16-87">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.4.2 <a
+href="etrice-docse11.html#x16-710003.4.2" id="QQ2-16-88">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.5 <a
+href="etrice-docse12.html#x17-720003.5">Layering</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.5.1 <a
+href="etrice-docse12.html#x17-730003.5.1" id="QQ2-17-90">Description</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.5.2 <a
+href="etrice-docse12.html#x17-740003.5.2" id="QQ2-17-91">Notation</a></span>
+<br />&#x00A0;<span class="sectionToc" >3.6 <a
+href="etrice-docse13.html#x18-750003.6">Finite State Machines</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.1 <a
+href="etrice-docse13.html#x18-760003.6.1" id="QQ2-18-94">Description</a></span>
+
+
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.2 <a
+href="etrice-docse13.html#x18-770003.6.2" id="QQ2-18-95">Motivation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.3 <a
+href="etrice-docse13.html#x18-780003.6.3" id="QQ2-18-96">Notation</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >3.6.4 <a
+href="etrice-docse13.html#x18-810003.6.4" id="QQ2-18-101">Examples</a></span>
<br /><span class="chapterToc" >4 <a
-href="etrice-docch4.html#x8-100004">eTrice Tool Developer&#8217;s Reference</a></span>
+href="etrice-docch4.html#x19-820004">eTrice Features</a></span>
<br />&#x00A0;<span class="sectionToc" >4.1 <a
-href="etrice-docse3.html#x9-110004.1">Architecture</a></span>
+href="etrice-docse14.html#x20-830004.1">Automatic Diagram Layout with KIELER</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.1 <a
-href="etrice-docse3.html#x9-120004.1.1" id="QQ2-9-12">Editor and Generator Components</a></span>
+href="etrice-docse14.html#x20-840004.1.1" id="QQ2-20-108">Overview</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.2 <a
-href="etrice-docse3.html#x9-130004.1.2" id="QQ2-9-13">Runtimes</a></span>
+href="etrice-docse14.html#x20-850004.1.2" id="QQ2-20-109">Performing Automatic Layout</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.3 <a
-href="etrice-docse3.html#x9-140004.1.3" id="QQ2-9-14">Unit Tests</a></span>
+href="etrice-docse14.html#x20-860004.1.3" id="QQ2-20-110">Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.4 <a
+href="etrice-docse14.html#x20-870004.1.4" id="QQ2-20-112">Configuring Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.5 <a
+href="etrice-docse14.html#x20-920004.1.5" id="QQ2-20-120">Special Layout Options</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.1.6 <a
+href="etrice-docse14.html#x20-950004.1.6" id="QQ2-20-123">Further References</a></span>
<br />&#x00A0;<span class="sectionToc" >4.2 <a
-href="etrice-docse4.html#x10-150004.2">Component Overview</a></span>
+href="etrice-docse15.html#x21-960004.2">eTrice Models and Their Relations</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.1 <a
-href="etrice-docse4.html#x10-160004.2.1" id="QQ2-10-16">Room Language Overview</a></span>
+href="etrice-docse15.html#x21-970004.2.1" id="QQ2-21-125">The ROOM Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.2 <a
-href="etrice-docse4.html#x10-220004.2.2" id="QQ2-10-22">Config Language Overview</a></span>
+href="etrice-docse15.html#x21-980004.2.2" id="QQ2-21-128">The Config Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.3 <a
-href="etrice-docse4.html#x10-260004.2.3" id="QQ2-10-26">Aggregation Layer Overview</a></span>
+href="etrice-docse15.html#x21-990004.2.3" id="QQ2-21-130">The Physical Model</a></span>
<br />&#x00A0;&#x00A0;<span class="subsectionToc" >4.2.4 <a
-href="etrice-docse4.html#x10-300004.2.4" id="QQ2-10-30">Generator Overview</a></span>
-
-
+href="etrice-docse15.html#x21-1000004.2.4" id="QQ2-21-133">The Mapping Model</a></span>
+<br /><span class="chapterToc" >5 <a
+href="etrice-docch5.html#x22-1010005">eTrice Tool Developer&#8217;s Reference</a></span>
+<br />&#x00A0;<span class="sectionToc" >5.1 <a
+href="etrice-docse16.html#x23-1020005.1">Architecture</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.1 <a
+href="etrice-docse16.html#x23-1030005.1.1" id="QQ2-23-137">Editor and Generator Components</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.2 <a
+href="etrice-docse16.html#x23-1040005.1.2" id="QQ2-23-138">Runtimes</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.1.3 <a
+href="etrice-docse16.html#x23-1050005.1.3" id="QQ2-23-139">Unit Tests</a></span>
+<br />&#x00A0;<span class="sectionToc" >5.2 <a
+href="etrice-docse17.html#x24-1060005.2">Component Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.1 <a
+href="etrice-docse17.html#x24-1070005.2.1" id="QQ2-24-141">Room Language Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.2 <a
+href="etrice-docse17.html#x24-1130005.2.2" id="QQ2-24-147">Config Language Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.3 <a
+href="etrice-docse17.html#x24-1170005.2.3" id="QQ2-24-151">Aggregation Layer Overview</a></span>
+<br />&#x00A0;&#x00A0;<span class="subsectionToc" >5.2.4 <a
+href="etrice-docse17.html#x24-1210005.2.4" id="QQ2-24-155">Generator Overview</a></span>
</div>
-
-
+
+
<!--l. 54--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docch1.html" >next</a>] [<a
href="etrice-doc.html" >prev</a>] [<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
index 3ffd013..cc7489b 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html
@@ -4,123 +4,82 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Setting up the Workspace for Java Projects</title>
+<head><title>eTrice Overview</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse2.html" >next</a>] [<a
-href="etrice-docch2.html" >prev</a>] [<a
-href="etrice-docch2.html#tailetrice-docch2.html" >prev-tail</a>] [<a
+href="etrice-docch1.html" >prev</a>] [<a
+href="etrice-docch1.html#tailetrice-docch1.html" >prev-tail</a>] [<a
href="#tailetrice-docse1.html">tail</a>] [<a
-href="etrice-docch2.html#etrice-docse1.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">2.1 </span> <a
- id="x5-40002.1"></a>Setting up the Workspace for Java Projects</h3>
-<!--l. 3--><p class="noindent" ><span
-class="ec-lmssbx-10">Objectives for this tutorial:</span> </p>
+href="etrice-docch1.html#etrice-docse1.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">1.1 </span> <a
+ id="x4-30001.1"></a>eTrice Overview</h3>
+<!--l. 3--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">1.1.1 </span> <a
+ id="x4-40001.1.1"></a>What is eTrice?</h4>
+<!--l. 5--><p class="noindent" >eTrice provides an implementation of the ROOM modeling language (Real Time Object Oriented Modeling) together with
+editors, code generators for Java, C++ and C code and exemplary target middleware.
+</p><!--l. 8--><p class="noindent" >The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and behavioral (i.e. state
+machine) parts.
+</p><!--l. 11--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">1.1.2 </span> <a
+ id="x4-50001.1.2"></a>Reduction of Complexity</h4>
+<!--l. 13--><p class="noindent" >eTrice is all about the reduction of complexity:
+</p>
<ul class="itemize1">
- <li class="itemize">create all needed library projects (runtime.java and modellib.java)
+ <li class="itemize">structural complexity
+ <ul class="itemize2">
+ <li class="itemize">by explicit modeling of hierarchical Actor containment, layering and inheritance</li></ul>
</li>
- <li class="itemize">create the tutorial project with the examples
+ <li class="itemize">behavioral complexity
+ <ul class="itemize2">
+ <li class="itemize">by hierarchical state machines with inheritance</li></ul>
</li>
- <li class="itemize">create the project with a traffic light simulator
+ <li class="itemize">team work complexity
+ <ul class="itemize2">
+ <li class="itemize">because loosely coupled Actors provide a natural way to structure team work
+
+
+ </li>
+ <li class="itemize">since textual model notation allows simple branching and merging</li></ul>
</li>
- <li class="itemize">test the workspace setup by running one of the examples</li></ul>
-<!--l. 11--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">2.1.1 </span> <a
- id="x5-50002.1.1"></a>Create Library, Tutorial and Simulator Projects</h4>
-<!--l. 13--><p class="noindent" >After installation of eclipse and the eTrice plug in, your workspace should look like this:
-</p><!--l. 15--><p class="noindent" ><img
-src="images/013-SetupWorkspace01.png" alt="PIC"
- />
-</p><!--l. 18--><p class="noindent" >
-
-
-</p><!--l. 19--><p class="noindent" >Just the eTrice menu item is visible of the installed eTrice plugins.
-</p><!--l. 21--><p class="noindent" >Select the menu <span
-class="ec-lmsso-10">File-&#x003E;New-&#x003E;Other</span>
-</p><!--l. 23--><p class="noindent" ><img
-src="images/013-SetupWorkspace02.png" alt="PIC"
- />
-</p><!--l. 26--><p class="noindent" >Open the eTrice tab and select <span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">Java Runtime</span>
-</p><!--l. 28--><p class="noindent" >Press <span
-class="ec-lmsso-10">Next </span>and <span
-class="ec-lmsso-10">Finish </span>to install the Runtime into your workspace.
-</p><!--l. 30--><p class="noindent" ><img
-src="images/013-SetupWorkspace03.png" alt="PIC"
- />
-</p><!--l. 33--><p class="noindent" >
-
-
-</p><!--l. 34--><p class="noindent" >Do the same steps for <span
-class="ec-lmsso-10">eTrice Java Modellib</span>, <span
-class="ec-lmsso-10">eTrice Java Tutorials </span>and <span
-class="ec-lmsso-10">eTrice Trafficlight for Tutorials</span>. To
-avoid temporary error markers you should keep the proposed order of installation. The resulting workspace
-should look like this:
-</p><!--l. 38--><p class="noindent" ><img
-src="images/013-SetupWorkspace04.png" alt="PIC"
- />
-</p><!--l. 41--><p class="noindent" >Now the workspace is set up and you can perform the tutorials or start with your work.
-</p><!--l. 43--><p class="noindent" >The tutorial models are available in the <span
-class="ec-lmsso-10">org.eclipse.etrice.tutorials.java </span>project. All tutorials are ready to
-generate and run without any changes. To test the code generator and the workspace setup simply run
-<span
-class="ec-lmsso-10">gen_SetupTest.launch </span>as <span
-class="ec-lmsso-10">gen_SetupTest</span>:
-</p><!--l. 47--><p class="noindent" ><img
-src="images/013-SetupWorkspace05.png" alt="PIC"
- />
-</p><!--l. 50--><p class="noindent" >The successful generation ends with <span
-class="ec-lmsso-10">Info: &#8211; finished code generation </span>in the Console.
-</p><!--l. 52--><p class="noindent" ><img
-src="images/013-SetupWorkspace051.png" alt="PIC"
- />
-</p><!--l. 55--><p class="noindent" >
-
-
-</p><!--l. 56--><p class="noindent" >For each tutorial in the folder src-gen a java package is generated including a java file called
-<span
-class="ec-lmsso-10">SubSys&#x003C;...&#x003E;Runner.java </span>. To run the a generated application simply run this file as a java application. Try this
-with the file <span
-class="ec-lmsso-10">src-gen/SetupTest_Model/SubSysClass1Runner.java </span>:
-</p><!--l. 60--><p class="noindent" ><img
-src="images/013-SetupWorkspace06.png" alt="PIC"
- />
-</p><!--l. 63--><p class="noindent" >To stop the application type <span
-class="ec-lmsso-10">quit </span>in the console window. If your Console contains the lines <br
-class="newline" /><span
-class="ec-lmsso-10">****************** </span><br
-class="newline" /><span
-class="ec-lmsso-10">*** Setup OK *** </span><br
-class="newline" /><span
-class="ec-lmsso-10">****************** </span><br
-class="newline" />your setup should be ok.
-</p><!--l. 69--><p class="noindent" ><img
-src="images/013-SetupWorkspace07.png" alt="PIC"
- />
-</p><!--l. 72--><p class="noindent" >Performing the tutorials will setup a 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>
+ <li class="itemize">complexity of concurrent &amp; distributed systems
+ <ul class="itemize2">
+ <li class="itemize">because loosely coupled Actors are deployable to threads, processes, nodes</li></ul>
+ </li>
+ <li class="itemize">complexity of variant handling and reuse (e.g. for product lines)
+ <ul class="itemize2">
+ <li class="itemize">by composition of existing Actors to new structures
+ </li>
+ <li class="itemize">since Protocols and Ports make Actors replaceable
+ </li>
+ <li class="itemize">by inheritance for structure, behavior and Protocols
+ </li>
+ <li class="itemize">by making use of model level libraries</li></ul>
+ </li>
+ <li class="itemize">complexity of debugging
+ <ul class="itemize2">
+ <li class="itemize">model level debugging: state machine animation, data inspection and manipulation, message injection,
+ generated message sequence charts
+ </li>
+ <li class="itemize">model checking easier for model than for code (detect errors before they occur)</li></ul>
+ </li></ul>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse2.html" >next</a>] [<a
-href="etrice-docch2.html" >prev</a>] [<a
-href="etrice-docch2.html#tailetrice-docch2.html" >prev-tail</a>] [<a
+href="etrice-docch1.html" >prev</a>] [<a
+href="etrice-docch1.html#tailetrice-docch1.html" >prev-tail</a>] [<a
href="etrice-docse1.html" >front</a>] [<a
-href="etrice-docch2.html#etrice-docse1.html" >up</a>] </p></div>
+href="etrice-docch1.html#etrice-docse1.html" >up</a>] </p></div>
<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse1.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
index d083222..e3a831c 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html
@@ -4,68 +4,1009 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Scope</title>
+<head><title>Ports</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 3--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse11.html" >next</a>] [<a
-href="etrice-docch3.html" >prev</a>] [<a
-href="etrice-docch3.html#tailetrice-docch3.html" >prev-tail</a>] [<a
+href="etrice-docse9.html" >prev</a>] [<a
+href="etrice-docse9.html#tailetrice-docse9.html" >prev-tail</a>] [<a
href="#tailetrice-docse10.html">tail</a>] [<a
href="etrice-docch3.html#etrice-docse10.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">3.1 </span> <a
- id="x15-690003.1"></a>Scope</h3>
-<!--l. 5--><p class="noindent" >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 =&#x003E; 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><!--l. 11--><p class="noindent" >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><!--l. 14--><p class="noindent" >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="ec-lmsso-10">REQUEST </span>button to start a FSM, which controls the traffic
-lights.
-</p><!--l. 18--><p class="noindent" ><img
-src="images/020-Blinky08.png" alt="PIC"
- />
-</p><!--l. 21--><p class="noindent" >The <span
-class="ec-lmsso-10">REQUEST </span>must lead to a model message which starts the activity of the lights.
-</p><!--l. 23--><p class="noindent" >There are several possibilities to receive external events (e.g. TCP/UDP Socket, using OS messaging
-mechanism), but the easiest way is, to make a port usable from outside the model. To do that a few steps are
-necessary:
- </p><ol class="enumerate1" >
- <li
- class="enumerate" id="x15-69002x1">specify the messages (within a protocol) which should be sent into the model
+<h3 class="sectionHead"><span class="titlemark">3.3 </span> <a
+ id="x15-630003.3"></a>Ports</h3>
+<!--l. 203--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">3.3.1 </span> <a
+ id="x15-640003.3.1"></a>Description</h4>
+<!--l. 205--><p class="noindent" ><span id="textcolor42"><span
+class="ec-lmssbx-10">Port</span></span>s are the only interfaces of actors. A port has always a protocol assigned. Service Access Points (SAP) and Service
+Provision Points (SPP) are specialized ports that are used to define layering.
+</p><!--l. 209--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">3.3.2 </span> <a
+ id="x15-650003.3.2"></a>Motivation</h4>
+ <ul class="itemize1">
+ <li class="itemize">Ports decouple interface definition (protocols) from interface usage
</li>
- <li
- class="enumerate" id="x15-69004x2">model an actor with a port (which uses the specified protocol) and connect the port to the receiver
+ <li class="itemize">Ports decouple the logical interface from the transport</li></ul>
+<!--l. 216--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">3.3.3 </span> <a
+ id="x15-660003.3.3"></a>Notation</h4>
+<!--l. 218--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x15-670003.3.3"></a>Class Ports</h5>
+<!--l. 220--><p class="noindent" >These symbols can only appear on the border of an actor class symbol.
+</p><!--l. 222--><p class="noindent" >Ports that define an external interface of the actor class, are defined in the <span id="textcolor43"><span
+class="ec-lmssbx-10">Interface</span></span>. Ports that define an internal interface
+are defined in the <span id="textcolor44"><span
+class="ec-lmssbx-10">Structure</span></span> (e.g. internal ports).
+</p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">External end ports </span>are defined in the Interface and the Structure
</li>
- <li
- class="enumerate" id="x15-69006x3">the external code should know the port (import of the port class)
+ <li class="itemize"><span
+class="ec-lmsso-10">Internal end ports </span>are only defined in the Structure
</li>
- <li
- class="enumerate" id="x15-69008x4">the external code should provide a registration method, so that the actor is able to allow access
- to this port
+ <li class="itemize"><span
+class="ec-lmsso-10">Relay ports </span>are only defined in the Interface
</li>
- <li
- class="enumerate" id="x15-69010x5">the port can be used from the external code</li></ol>
-
-
-<!--l. 35--><div class="crosslinks"><p class="noindent">[<a
+ <li class="itemize"><span
+class="ec-lmsso-10">End ports </span>are always connected to the internal behavior of the ActorClass
+
+
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Replicated ports </span>can be defined with a fixed replication factor, e.g.<br
+class="newline" /><span id="textcolor45"><span
+class="ec-lmtk-10">Port</span></span> <span
+class="ec-lmtt-10">port18 [5]: ProtocolClass1</span><br
+class="newline" />or a variable replication factor, e.g.<br
+class="newline" /><span id="textcolor46"><span
+class="ec-lmtk-10">Port</span></span> <span
+class="ec-lmtt-10">port18[*]: ProtocolClass1</span></li></ul>
+<!--l. 236--><p class="noindent" >The table <a
+href="#x15-67001r3">3.3<!--tex4ht:ref: tab:class_port_notation --></a> shows all kinds of class ports with textual and graphical notation.
+<a
+ id="x15-67001r3"></a>
+</p>
+<!--l. 240--><div class="longtable"> <table id="TBL-5" class="longtable"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-5-1g"><col
+id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col
+id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col
+id="TBL-5-3" /></colgroup>
+
+
+<tr
+ style="vertical-align:baseline;" id="TBL-5-1-"><td colspan="3" style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-1-1"
+class="td11"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"> <div class="caption"
+><span class="id">Table&#x00A0;3.3: </span><span
+class="content">Class Port Notation</span></div><!--tex4ht:label?: x15-67001r3 --> </div> <a
+ id="x15-67002"></a>
+</td></tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-1"
+class="td11">
+ <!--l. 243--><p class="noindent" ><span
+class="ec-lmssbx-10">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-3"
+class="td11">
+ <!--l. 243--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-1"
+class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2"
+class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-3"
+class="td11">
+</td></tr>
+<tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-1"
+class="td11">
+ <!--l. 246--><p class="noindent" >Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2"
+class="td11"> <img
+src="images/040-ClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-6" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-6-1g"><col
+id="TBL-6-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
+class="td11"><span
+class="ec-lmsso-10">External Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
+class="td11"><!--l. 250--> <!--l. 250--><p class="noindent" ><a
+ id="x15-67003r1"></a><a
+ id="x15-67004"></a><div class="lstlisting" id="listing-15"><span class="label"><a
+ id="x15-67005r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67006r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67007r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67008r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67009r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67010r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67011r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67012r8"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
+class="td11"><span
+class="ec-lmsso-10">Internal Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
+class="td11"><!--l. 263--> <!--l. 263--><p class="noindent" ><a
+ id="x15-67013r2"></a><a
+ id="x15-67014"></a><div class="lstlisting" id="listing-16"><span class="label"><a
+ id="x15-67015r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67016r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67017r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67018r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67019r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port20</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67020r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67021r7"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-1"
+class="td11">
+ <!--l. 276--><p class="noindent" >Conjugated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2"
+class="td11"> <img
+src="images/040-ConjugatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-7" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-7-1g"><col
+id="TBL-7-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
+class="td11"><span
+class="ec-lmsso-10">External Conjugated Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
+class="td11"><!--l. 280--> <!--l. 280--><p class="noindent" ><a
+ id="x15-67022r3"></a><a
+ id="x15-67023"></a><div class="lstlisting" id="listing-17"><span class="label"><a
+ id="x15-67024r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67025r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67026r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67027r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67028r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67029r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67030r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67031r8"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
+class="td11"><span
+class="ec-lmsso-10">Internal Conjugated Class End Port: </span></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
+class="td11"><!--l. 293--> <!--l. 293--><p class="noindent" ><a
+ id="x15-67032r4"></a><a
+ id="x15-67033"></a><div class="lstlisting" id="listing-18"><span class="label"><a
+ id="x15-67034r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67035r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67036r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67037r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67038r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port21</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67039r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67040r7"></a></span><span
+class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-1"
+class="td11">
+ <!--l. 307--><p class="noindent" >Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2"
+class="td11"> <img
+src="images/040-ClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-3"
+class="td11">
+ <!--l. 309-->
+ <a
+ id="x15-67041r5"></a>
+ <a
+ id="x15-67042"></a>
+ <div class="lstlisting" id="listing-19"><span class="label"><a
+ id="x15-67043r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67044r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67045r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port10</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67046r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67047r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67048r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67049r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 320--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-1"
+class="td11">
+ <!--l. 321--><p class="noindent" >Conjugated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2"
+class="td11"> <img
+src="images/040-ConjugatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-3"
+class="td11">
+ <!--l. 323-->
+ <a
+ id="x15-67050r6"></a>
+ <a
+ id="x15-67051"></a>
+ <div class="lstlisting" id="listing-20"><span class="label"><a
+ id="x15-67052r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67053r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67054r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port10</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67055r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67056r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67057r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67058r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 334--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-1"
+class="td11">
+ <!--l. 335--><p class="noindent" >Replicated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2"
+class="td11"> <img
+src="images/040-ReplicatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-8" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-8-1g"><col
+id="TBL-8-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1"
+class="td11"><!--l. 338--><p class="noindent" ><span
+class="ec-lmsso-10">External Replicated Class End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1"
+class="td11"><!--l. 339-->
+<a
+ id="x15-67059r7"></a>
+<a
+ id="x15-67060"></a>
+<div class="lstlisting" id="listing-21"><span class="label"><a
+ id="x15-67061r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67062r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67063r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67064r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67065r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67066r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67067r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67068r8"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 351--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1"
+class="td11"><!--l. 351--><p class="noindent" ><span
+class="ec-lmsso-10">Internal Replicated Class End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1"
+class="td11"><!--l. 352-->
+<a
+ id="x15-67069r8"></a>
+<a
+ id="x15-67070"></a>
+<div class="lstlisting" id="listing-22"><span class="label"><a
+ id="x15-67071r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67072r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67073r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67074r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67075r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67076r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67077r7"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 363--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-1"
+class="td11">
+ <!--l. 366--><p class="noindent" >Conjugated
+ Replicated
+ Class
+ End
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-3"
+class="td11">
+ <div class="tabular"> <table id="TBL-9" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-9-1g"><col
+id="TBL-9-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1"
+class="td11"><!--l. 369--><p class="noindent" ><span
+class="ec-lmsso-10">External Conjugated Replicated Class</span>
+<span
+class="ec-lmsso-10">End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1"
+class="td11"><!--l. 370-->
+<a
+ id="x15-67078r9"></a>
+<a
+ id="x15-67079"></a>
+<div class="lstlisting" id="listing-23"><span class="label"><a
+ id="x15-67080r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67081r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67082r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port17</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67083r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67084r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67085r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port17</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67086r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67087r8"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 382--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1"
+class="td11"><!--l. 382--><p class="noindent" ><span
+class="ec-lmsso-10">Internal Conjugated Replicated Class</span>
+<span
+class="ec-lmsso-10">End Port:</span> </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1"
+class="td11"><!--l. 383-->
+<a
+ id="x15-67088r10"></a>
+<a
+ id="x15-67089"></a>
+<div class="lstlisting" id="listing-24"><span class="label"><a
+ id="x15-67090r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67091r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67092r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67093r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67094r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port23</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67095r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67096r7"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 394--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1"
+class="td11"> </td></tr></table> </div> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-1"
+class="td11">
+ <!--l. 397--><p class="noindent" >Replicated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-10-2"
+class="td11"> <img
+src="images/040-ReplicatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-3"
+class="td11">
+ <!--l. 399-->
+ <a
+ id="x15-67097r11"></a>
+ <a
+ id="x15-67098"></a>
+ <div class="lstlisting" id="listing-25"><span class="label"><a
+ id="x15-67099r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67100r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67101r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port18</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67102r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67103r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67104r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67105r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 409--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-1"
+class="td11">
+ <!--l. 410--><p class="noindent" >Conjugated
+ Replicated
+ Class
+ Relay
+ Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-11-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-3"
+class="td11">
+ <!--l. 412-->
+ <a
+ id="x15-67106r12"></a>
+ <a
+ id="x15-67107"></a>
+ <div class="lstlisting" id="listing-26"><span class="label"><a
+ id="x15-67108r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67109r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67110r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">port19</span><span
+class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67111r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67112r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67113r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x15-67114r7"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 423--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-12-1"
+class="td11"> </td>
+
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-13-1"
+class="td11"> </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-14-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-15-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-15-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-5-16-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-16-1"
+class="td11">
+ <!--l. 424--><p class="noindent" > </p></td>
+</tr>
+</table></div>
+<!--l. 427--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x15-680003.3.3"></a>Reference Ports</h5>
+<!--l. 429--><p class="noindent" >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><!--l. 432--><p class="noindent" >The table <a
+href="#x15-680014">3.4<!--tex4ht:ref: tab:reference_port_notation --></a> shows all kinds of reference ports with textual and graphical notation.
+</p>
+<div class="table">
+
+
+<!--l. 435--><p class="noindent" ><a
+ id="x15-680014"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;3.4: </span><span
+class="content">Reference Port Notation</span></div><!--tex4ht:label?: x15-680014 -->
+<div class="tabular"> <table id="TBL-10" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-10-1g"><col
+id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col
+id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col
+id="TBL-10-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1"
+class="td11"> <span
+class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3"
+class="td11"> <span
+class="ec-lmssbx-10">Textual Notation </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1"
+class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2"
+class="td11"> <img
+src="images/040-ReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1"
+class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2"
+class="td11"> <img
+src="images/040-ConjugatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1"
+class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2"
+class="td11"> <img
+src="images/040-ReplicatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1"
+class="td11"> Conjugated Replicated </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1"
+class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2"
+class="td11"> <img
+src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3"
+class="td11"> <span
+class="ec-lmsso-10">implicit </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
+
+
+<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse11.html" >next</a>] [<a
-href="etrice-docch3.html" >prev</a>] [<a
-href="etrice-docch3.html#tailetrice-docch3.html" >prev-tail</a>] [<a
+href="etrice-docse9.html" >prev</a>] [<a
+href="etrice-docse9.html#tailetrice-docse9.html" >prev-tail</a>] [<a
href="etrice-docse10.html" >front</a>] [<a
href="etrice-docch3.html#etrice-docse10.html" >up</a>] </p></div>
-<!--l. 35--><p class="noindent" ><a
- id="tailetrice-docse10.html"></a> </p>
+<!--l. 450--><p class="noindent" ><a
+ id="tailetrice-docse10.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
index 9b4c4bf..d2dfcbd 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html
@@ -4,121 +4,408 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Setup the model</title>
+<head><title>DataClass</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 35--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse12.html" >next</a>] [<a
href="etrice-docse10.html" >prev</a>] [<a
href="etrice-docse10.html#tailetrice-docse10.html" >prev-tail</a>] [<a
href="#tailetrice-docse11.html">tail</a>] [<a
href="etrice-docch3.html#etrice-docse11.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">3.2 </span> <a
- id="x16-700003.2"></a>Setup the model</h3>
- <ul class="itemize1">
- <li class="itemize">Use the <span
-class="ec-lmsso-10">New Model Wizzard </span>to create a new eTrice project and name it <span
-class="ec-lmsso-10">PedLightsController</span>.
- </li>
- <li class="itemize">Copy the package <span
-class="ec-lmsso-10">org.eclipse.etrice.tutorials.PedLightGUI </span>to your <span
-class="ec-lmsso-10">src </span>directory (see blinky
- tutorial).
- </li>
- <li class="itemize">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.
- </li>
- <li class="itemize">
- <div class="flushleft"
->
-<!--l. 44--><p class="noindent" >
-Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, or run
-the model directly in the tutorial directory.</p></div>
- </li>
- <li class="itemize">Adapt the import statement to your path.</li></ul>
-
-
-<div class="verbatim" id="verbatim-17">
-import&#x00A0;room.basic.service.timing.*&#x00A0;from
-&#x00A0;<br />"../../org.eclipse.etrice.modellib/models/TimingService.room"
-</div>
-<!--l. 53--><p class="nopar" >
+<h3 class="sectionHead"><span class="titlemark">3.4 </span> <a
+ id="x16-690003.4"></a>DataClass</h3>
+<!--l. 452--><p class="noindent" >
</p>
- <ul class="itemize1">
- <li class="itemize">Generate the code from the model.
- </li>
- <li class="itemize">Add the org.eclipse.etrice.modellib to the Java Class Path of your project.
- </li>
- <li class="itemize">All error markers should be disappeared and the model should be operable.
- </li>
- <li class="itemize">Arrange the Structure and the Statemachines to understand the model</li></ul>
-
-<!--l. 63--><p class="noindent" ><img
-src="images/030-PedLights01.png" alt="PIC"
- /> The <span
-class="ec-lmsso-10">GuiAdapter </span>represents the interface to the external code. It registers its <span
-class="ec-lmsso-10">ControlPort </span>by the external
-code.
-</p><!--l. 68--><p class="noindent" ><img
-src="images/030-PedLights02.png" alt="PIC"
- /> Visit the initial transition to understand the registration. The actor handles the incoming messages as
-usual and controls the traffic lights as known from blinky.
-</p><!--l. 73--><p class="noindent" ><img
-src="images/030-PedLights03.png" alt="PIC"
- /> The <span
-class="ec-lmsso-10">Controller </span>receives the <span
-class="ec-lmsso-10">start </span>message and controls the timing of the lights. Note that the <span
-class="ec-lmsso-10">start</span>
-message will be sent from the external code whenever the <span
-class="ec-lmsso-10">REQUEST </span>button is pressed.
+<h4 class="subsectionHead"><span class="titlemark">3.4.1 </span> <a
+ id="x16-700003.4.1"></a>Description</h4>
+<!--l. 454--><p class="noindent" >The <span id="textcolor47"><span
+class="ec-lmssbx-10">DataClass</span></span> 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 <span id="textcolor48"><span
+class="ec-lmssbx-10">ProtocolClass</span></span>).
+</p><!--l. 458--><p class="noindent" >
</p>
- <ul class="itemize1">
- <li class="itemize">Visit the model and take a closer look to the following elements:
- <ol class="enumerate1" >
- <li
- class="enumerate" id="x16-70002x1">PedControlProtocol =&#x003E; notice that the start message is defined as usual
- </li>
- <li
- class="enumerate" id="x16-70004x2">Initial transition of the <span
-class="ec-lmsso-10">GuiAdapter </span>=&#x003E; see the registration
- </li>
- <li
- class="enumerate" id="x16-70006x3">The <span
-class="ec-lmsso-10">Controller </span>=&#x003E; notice that the <span
-class="ec-lmsso-10">Controller </span>receives the external message (not the
- <span
-class="ec-lmsso-10">GuiAdapter</span>). The <span
-class="ec-lmsso-10">GuiAdapter </span>just provides its port and handles the incoming messages.
- </li>
- <li
- class="enumerate" id="x16-70008x4">Visit the hand written code =&#x003E; see the import statement of the protocol class and the
- usage of the port.</li></ol>
- </li>
- <li class="itemize">Generate and test the model
- </li>
- <li class="itemize">Take a look at the generated MSC =&#x003E; notice that the start message will shown as if the <span
-class="ec-lmsso-10">GuiAdapter</span>
- had sent it.</li></ul>
-
-<!--l. 94--><p class="noindent" ><img
-src="images/030-PedLights04.png" alt="PIC"
- />
-
-
+<h4 class="subsectionHead"><span class="titlemark">3.4.2 </span> <a
+ id="x16-710003.4.2"></a>Notation</h4>
+<!--l. 460--><p class="noindent" >Example: DataClass using PrimitiveTypes
</p>
-<!--l. 97--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 462-->
+<div class="lstlisting" id="listing-27"><span class="label"><a
+ id="x16-71001r1"></a></span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71002r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71003r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">float32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">another</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71004r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71005r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71006r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">()</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71007r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71008r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71009r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">no</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71010r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">void</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71011r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71012r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71013r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">argument</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71014r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation3</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">float64</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71015r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71016r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71017r17"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+<!--l. 483--><p class="noindent" >Example: DataClass using other DataClasses:
+</p>
+<!--l. 485-->
+<div class="lstlisting" id="listing-28"><span class="label"><a
+ id="x16-71018r1"></a></span><span
+class="ec-lmssbx-10x-x-90">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71019r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71020r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">of</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71021r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71022r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71023r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation1</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71024r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71025r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71026r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">//</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">arguments</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">and</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">return</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">value</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reference</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">except</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">for</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">primitive</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">types</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71027r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Operation</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">operation2</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Param1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int32</span><span
+class="ec-lmtt-9">,</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Param2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DataClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71028r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">UserCodeLine1</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71029r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x16-71030r13"></a></span><span
+class="ec-lmtt-9">}</span>
+</div>
+
+
+<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse12.html" >next</a>] [<a
href="etrice-docse10.html" >prev</a>] [<a
href="etrice-docse10.html#tailetrice-docse10.html" >prev-tail</a>] [<a
href="etrice-docse11.html" >front</a>] [<a
href="etrice-docch3.html#etrice-docse11.html" >up</a>] </p></div>
-<!--l. 97--><p class="noindent" ><a
+<!--l. 502--><p class="noindent" ><a
id="tailetrice-docse11.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
index 413a69c..cfbb811 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html
@@ -4,58 +4,497 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Why does it work and why is it safe?</title>
+<head><title>Layering</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 97--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch4.html" >next</a>] [<a
+<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse13.html" >next</a>] [<a
href="etrice-docse11.html" >prev</a>] [<a
href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
href="#tailetrice-docse12.html">tail</a>] [<a
href="etrice-docch3.html#etrice-docse12.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">3.3 </span> <a
- id="x17-710003.3"></a>Why does it work and why is it safe?</h3>
-<!--l. 99--><p class="noindent" >The tutorial shows that it is generally possible to use every port from outside the model as long as the port
-knows its peer. This is guaranteed by describing protocol and the complete structure (especially the bindings)
-within the model. The only remaining question is: Why is it safe and does not violate the <span
-class="ec-lmssbx-10">run to</span>
-<span
-class="ec-lmssbx-10">completion </span>semantic. To answer this question, take a look at the <span
-class="ec-lmsso-10">MessageService.java </span>from the
-runtime environment. There you will find the receive method which puts each message into the
-queue.
-
-
+<h3 class="sectionHead"><span class="titlemark">3.5 </span> <a
+ id="x17-720003.5"></a>Layering</h3>
+<!--l. 504--><p class="noindent" >
</p>
-<div class="verbatim" id="verbatim-18">
-&#x00A0;&#x00A0;&#x00A0;&#x00A0;@Override
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;public&#x00A0;synchronized&#x00A0;void&#x00A0;receive(Message&#x00A0;msg)&#x00A0;{
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;if&#x00A0;(msg!=null)&#x00A0;{
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;messageQueue.push(msg);
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;notifyAll();&#x00A0;//&#x00A0;wake&#x00A0;up&#x00A0;thread&#x00A0;to&#x00A0;compute&#x00A0;message
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
-</div>
-<!--l. 114--><p class="nopar" >
-</p><!--l. 116--><p class="noindent" >This method is synchronized. That means, regardless who sends the message, the queue is secured. If we later
-on (e.g. for performance reasons in C/C++) distinguish between internal and external senders (same thread or
-not), care must be taken to use the external (secure) queue.
-
-
+<h4 class="subsectionHead"><span class="titlemark">3.5.1 </span> <a
+ id="x17-730003.5.1"></a>Description</h4>
+<!--l. 506--><p class="noindent" >In addition to the actor containment hierarchies, layering provides another method to hierarchically structure a
+software system. Layering and actor hierarchies with port to port connections can be mixed on every level of
+granularity.
+</p><!--l. 510--><p class="noindent" >
+ </p><ol class="enumerate1" >
+ <li
+ class="enumerate" id="x17-73002x1">an actor class can define a Service Provision Point (<span id="textcolor49"><span
+class="ec-lmssbx-10">SPPRef</span></span>) to publish a specific service, defined by a protocol
+ class
+ </li>
+ <li
+ class="enumerate" id="x17-73004x2">an actor class can define a Service Access Point (<span id="textcolor50"><span
+class="ec-lmssbx-10">SAPRef</span></span>) if it needs a service, defined by a protocol class
+ </li>
+ <li
+ class="enumerate" id="x17-73006x3">for a given actor hierarchy, a <span id="textcolor51"><span
+class="ec-lmssbx-10">LayerConnection</span></span> defines which SAP will be satisfied by (connected to) which
+ SPP</li></ol>
+<!--l. 519--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">3.5.2 </span> <a
+ id="x17-740003.5.2"></a>Notation</h4>
+<!--l. 521--><p class="noindent" >For the graphical and textual notation refer to table <a
+href="#x17-740015">3.5<!--tex4ht:ref: tab:layering_notation --></a>
</p>
-<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch4.html" >next</a>] [<a
+<div class="table">
+
+
+<!--l. 524--><p class="noindent" ><a
+ id="x17-740015"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;3.5: </span><span
+class="content">Layering Notation</span></div><!--tex4ht:label?: x17-740015 -->
+<div class="tabular"> <table id="TBL-11" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-11-1g"><col
+id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col
+id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col
+id="TBL-11-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1"
+class="td11"> <!--l. 528--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-3"
+class="td11"> <!--l. 528--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 530--><p class="noindent" >
+ The layer
+ connections in this
+ model define which
+ services are provided
+ by the <span
+class="ec-lmsso-10">ServiceLayer</span>
+ (<span
+class="ec-lmsso-10">digitalIO </span>and
+ <span
+class="ec-lmsso-10">timer</span>)</p></div>
+ <!--l. 533--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2"
+class="td11"> <img
+src="images/040-LayeringModel.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-3"
+class="td11"> <!--l. 537-->
+ <div class="lstlisting" id="listing-29"><span class="label"><a
+ id="x17-74002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Mode1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74003r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74004r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74005r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74006r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74007r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ref</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Application</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Services</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74008r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74009r8"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 548--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 549--><p class="noindent" >
+ The
+ implementation of
+ the services (SPPs)
+ can be delegated to
+ sub actors. In this
+ case the actor
+ <span
+class="ec-lmsso-10">ServiceLayer </span>relays
+ (delegates) the
+ implementation
+ services <span
+class="ec-lmsso-10">digitalIO</span>
+ and <span
+class="ec-lmsso-10">timer </span>to sub
+ actors</p></div>
+ <!--l. 553--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2"
+class="td11"> <img
+src="images/040-LayeringServiceLayer.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-3"
+class="td11"> <!--l. 556-->
+ <div class="lstlisting" id="listing-30"><span class="label"><a
+ id="x17-74010r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ServiceLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74011r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74012r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SPP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74013r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SPP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74014r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74015r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74016r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Timer</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerService</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74017r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DifitalIOService</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74018r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Timer</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">timer</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74019r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LayerConnection</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">relay_sap</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">satisfied_by</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigIO</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">digitalIO</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74020r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74021r12"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 571--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1"
+class="td11">
+ <div class="flushleft"
+>
+ <!--l. 572--><p class="noindent" >
+ Every Actor inside
+ the
+ <span
+class="ec-lmsso-10">ApplicationLayer</span>
+ that contains an
+ SAP with the same
+ protocol as <span
+class="ec-lmsso-10">timer </span>or
+ <span
+class="ec-lmsso-10">digitalIO </span>will be
+ connected to the
+ specified SPP</p></div>
+ <!--l. 575--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2"
+class="td11"> <img
+src="images/040-LayeringApplicationLayer.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-3"
+class="td11"> <!--l. 578-->
+ <div class="lstlisting" id="listing-31"><span class="label"><a
+ id="x17-74022r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ApplicationLayer</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74023r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74024r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">A</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74025r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">B</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74026r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function3</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">C</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74027r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">function4</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">D</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74028r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74029r8"></a></span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74030r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74031r10"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">A</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74032r11"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74033r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timerSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74034r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74035r14"></a></span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74036r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74037r16"></a></span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">B</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74038r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74039r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">timerSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">TimerProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74040r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SAP</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">digitalSAP</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">DigitalIOProtocol</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74041r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x17-74042r21"></a></span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 602--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1"
+class="td11"> </td></tr></table></div>
+
+
+</div><hr class="endfloat" />
+</div>
+
+
+<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse13.html" >next</a>] [<a
href="etrice-docse11.html" >prev</a>] [<a
href="etrice-docse11.html#tailetrice-docse11.html" >prev-tail</a>] [<a
href="etrice-docse12.html" >front</a>] [<a
href="etrice-docch3.html#etrice-docse12.html" >up</a>] </p></div>
-<!--l. 1--><p class="noindent" ><a
+<!--l. 606--><p class="noindent" ><a
id="tailetrice-docse12.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
index 86d88e3..8e6ceaf 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html
@@ -4,778 +4,457 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Actors</title>
+<head><title>Finite State Machines</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 8--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse14.html" >next</a>] [<a
-href="etrice-docch4.html" >prev</a>] [<a
-href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
+<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch4.html" >next</a>] [<a
+href="etrice-docse12.html" >prev</a>] [<a
+href="etrice-docse12.html#tailetrice-docse12.html" >prev-tail</a>] [<a
href="#tailetrice-docse13.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse13.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.1 </span> <a
- id="x19-730004.1"></a>Actors</h3>
-<!--l. 10--><p class="noindent" >
+href="etrice-docch3.html#etrice-docse13.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">3.6 </span> <a
+ id="x18-750003.6"></a>Finite State Machines</h3>
+<!--l. 608--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.1 </span> <a
- id="x19-740004.1.1"></a>Description</h4>
-
-
-<!--l. 12--><p class="noindent" >The actor is the basic structural building block for building systems with ROOM. An actor can be refined
-hierarchically and thus can be of arbitrarily large scope. Ports define the interface of an actor. An actor can
-also have a behavior usually defined by a finite state machine.
-</p><!--l. 16--><p class="noindent" >
+<h4 class="subsectionHead"><span class="titlemark">3.6.1 </span> <a
+ id="x18-760003.6.1"></a>Description</h4>
+<!--l. 610--><p class="noindent" >Definition from <a
+href="http://en.wikipedia.org/wiki/Finite-state_machine" >Wikipedia</a>:
+</p><!--l. 612--><p class="noindent" >
+ </p><div class="quote">
+ <!--l. 613--><p class="noindent" >A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a state machine,
+ is a mathematical model used to design computer programs and digital logic circuits. It is conceived as
+ an abstract machine that can be in one of a finite number of states. The machine is in only one state at
+ a time; the state it is in at any given time is called the current state. It can change from one state to
+ another when initiated by a triggering event or condition, this is called a transition. A particular FSM is
+ defined by a list of the possible states it can transition to from each state, and the triggering condition
+ for each transition.
+ </p><!--l. 621--><p class="noindent" >In ROOM each actor class can implement its behavior using a state machine. Events occurring at the
+ end ports of an actor will be forwarded to and processed by the state machine. Events possibly trigger
+ state transitions.</p></div>
+<!--l. 626--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.2 </span> <a
- id="x19-750004.1.2"></a>Motivation</h4>
- <ul class="itemize1">
- <li class="itemize">Actors enable the construction of hierarchical structures by composition and layering
- </li>
- <li class="itemize">Actors have their own logical thread of execution
- </li>
- <li class="itemize">Actors can be freely deployed
- </li>
- <li class="itemize">Actors define potentially re-usable blocks</li></ul>
-<!--l. 25--><p class="noindent" >
+<h4 class="subsectionHead"><span class="titlemark">3.6.2 </span> <a
+ id="x18-770003.6.2"></a>Motivation</h4>
+<!--l. 628--><p class="noindent" >For event driven systems a finite state machine is ideal for processing the stream of events. Typically during processing new
+events are produced which are sent to peer actors.
+</p><!--l. 631--><p class="noindent" >We distinguish flat and hierarchical state machines.
+</p><!--l. 633--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">3.6.3 </span> <a
+ id="x18-780003.6.3"></a>Notation</h4>
+<!--l. 635--><p class="noindent" >We distinguish flat finite state machines (with just one level of hierarchy) and hierarchical ones.
+</p><!--l. 637--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x18-790003.6.3"></a>Flat Finite State Machine</h5>
+<!--l. 639--><p class="noindent" >The simpler flat finite state machines are composed of the elements shown in table <a
+href="#x18-790016">3.6<!--tex4ht:ref: tab:flat_fsm_notation --></a>.
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.3 </span> <a
- id="x19-760004.1.3"></a>Notation</h4>
<div class="table">
-
-
-<!--l. 30--><p class="noindent" ><a
- id="x19-760011"></a></p><hr class="float" /><div class="float"
+
+
+<!--l. 642--><p class="noindent" ><a
+ id="x18-790016"></a></p><hr class="float" /><div class="float"
>
-
-
+
+
<div class="caption"
-><span class="id">Table&#x00A0;4.1: </span><span
-class="content">Actor Class Notation</span></div><!--tex4ht:label?: x19-760011 -->
-<div class="tabular"> <table id="TBL-3" class="tabular"
+><span class="id">Table&#x00A0;3.6: </span><span
+class="content">Flat finite state machine notation</span></div><!--tex4ht:label?: x18-790016 -->
+<div class="tabular"> <table id="TBL-12" class="tabular"
cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-3-1g"><col
-id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col
-id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col
-id="TBL-3-3" /></colgroup><tr
+><colgroup id="TBL-12-1g"><col
+id="TBL-12-1" /></colgroup><colgroup id="TBL-12-2g"><col
+id="TBL-12-2" /></colgroup><colgroup id="TBL-12-3g"><col
+id="TBL-12-3" /></colgroup><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3"
+ style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-1"
+class="td11"> <!--l. 646--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-2"
class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-1-3"
+class="td11"> <!--l. 646--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
-class="td11"> ActorClass </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
-class="td11"> <img
-src="images/040-ActorClassNotation.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3"
-class="td11"> <!--l. 36--> <!--l. 36--><p class="noindent" ><div class="lstlisting" id="listing-2"><span class="label"><a
- id="x19-76002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{}</span>
- </p> </div> </td>
+ style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-1"
+class="td11"> <!--l. 648--><p class="noindent" >State </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-2"
+class="td11"> <img
+src="images/040-State.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-2-3"
+class="td11"> <!--l. 649-->
+ <div class="lstlisting" id="listing-32"><span class="label"><a
+ id="x18-79002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SomeState</span>
+
+</div>
+<!--l. 654--><p class="noindent" > </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
-class="td11"> ActorRef </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
-class="td11"> <img
-src="images/040-ActorReferenceNotation.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3"
-class="td11"> <!--l. 41--> <!--l. 41--><p class="noindent" ><div class="lstlisting" id="listing-3"><span class="label"><a
- id="x19-76003r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-76004r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-76005r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorReference</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-76006r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-76007r5"></a></span><span
-class="ec-lmtt-9">}</span>
- </p> </div> </td>
+ style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-1"
+class="td11"> <!--l. 655--><p class="noindent" >InitialPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-2"
+class="td11"> <img
+src="images/040-InitialPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-3-3"
+class="td11"> <!--l. 655--><p class="noindent" ><span
+class="ec-lmsso-10">implicit</span> </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
+ style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-1"
+class="td11"> <!--l. 657--><p class="noindent" >TransitionPoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-2"
+class="td11"> <img
+src="images/040-TransitionPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-4-3"
+class="td11"> <!--l. 658-->
+ <div class="lstlisting" id="listing-33"><span class="label"><a
+ id="x18-79003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">TransitionPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tp</span>
+
</div>
-<h4 class="subsectionHead"><span class="titlemark">4.1.4 </span> <a
- id="x19-770004.1.4"></a>Details</h4>
-<!--l. 55--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x19-780004.1.4"></a>Actor Classes, Actor References, Ports and Bindings</h5>
-<!--l. 57--><p class="noindent" >An <span id="textcolor1"><span
-class="ec-lmssbx-10">ActorClass</span></span> defines the type (or blueprint) of an actor. Hierarchies are built by <span id="textcolor2"><span
-class="ec-lmssbx-10">ActorClass</span></span>es that contain
-<span id="textcolor3"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences which have another <span id="textcolor4"><span
-class="ec-lmssbx-10">ActorClass</span></span> as type. The interface of an <span id="textcolor5"><span
-class="ec-lmssbx-10">ActorClass</span></span> is
-always defined by <span id="textcolor6"><span
-class="ec-lmssbx-10">Port</span></span>s. The <span id="textcolor7"><span
-class="ec-lmssbx-10">ActorClass</span></span> can also contain <span id="textcolor8"><span
-class="ec-lmssbx-10">Attribute</span></span>s, <span id="textcolor9"><span
-class="ec-lmssbx-10">Operation</span></span>s and a finite
-<span id="textcolor10"><span
-class="ec-lmssbx-10">StateMachine</span></span>.
-</p><!--l. 63--><p class="noindent" >External <span id="textcolor11"><span
-class="ec-lmssbx-10">Port</span></span>s define the external interface of an actor and are defined in the <span id="textcolor12"><span
-class="ec-lmssbx-10">Interface</span></span> section of the
-<span id="textcolor13"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 66--><p class="noindent" >Internal <span id="textcolor14"><span
-class="ec-lmssbx-10">Port</span></span>s define the internal interface of an actor and are defined in the <span id="textcolor15"><span
-class="ec-lmssbx-10">Structure</span></span> section of the
-<span id="textcolor16"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 69--><p class="noindent" ><span id="textcolor17"><span
-class="ec-lmssbx-10">Binding</span></span>s connect <span id="textcolor18"><span
-class="ec-lmssbx-10">Port</span></span>s inside an <span id="textcolor19"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
-</p><!--l. 71--><p class="noindent" >Let us have a look at example <a
-href="#x19-780012">4.2<!--tex4ht:ref: tab:actor_class_example --></a>:
-</p>
-<div class="table">
-
-
-<!--l. 74--><p class="noindent" ><a
- id="x19-780012"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;4.2: </span><span
-class="content">Actor Class Example</span></div><!--tex4ht:label?: x19-780012 -->
-<div class="tabular"> <table id="TBL-4" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-4-1g"><col
-id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col
-id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col
-id="TBL-4-3" /></colgroup><tr
+<!--l. 663--><p class="noindent" > </p></td>
+</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
+ style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-1"
+class="td11"> <!--l. 664--><p class="noindent" >ChoicePoint </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-2"
+class="td11"> <img
+src="images/040-ChoicePoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-5-3"
+class="td11"> <!--l. 665-->
+ <div class="lstlisting" id="listing-34"><span class="label"><a
+ id="x18-79004r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ChoicePoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">cp</span>
+
+</div>
+<!--l. 670--><p class="noindent" > </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
-class="td11"> <img
-src="images/040-ActorClass.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
-class="td11"> <!--l. 80--> <!--l. 80--><p class="noindent" ><div class="lstlisting" id="listing-4"><span class="label"><a
- id="x19-78002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78003r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78004r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port1</span><span
+ style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-1"
+class="td11"> <!--l. 671--><p class="noindent" >Initial Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-2"
+class="td11"> <img
+src="images/040-InitialTransition.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-6-3"
+class="td11"> <!--l. 672-->
+ <div class="lstlisting" id="listing-35"><span class="label"><a
+ id="x18-79005r1"></a></span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">init</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78005r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port4</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78006r5"></a></span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78007r6"></a></span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">Initial</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78008r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78009r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port2</span><span
+class="ec-lmtt-9">}</span>
+
+</div>
+<!--l. 677--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-1"
+class="td11"> <!--l. 678--><p class="noindent" >Triggered Transition </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-2"
+class="td11"> <img
+src="images/040-TriggeredTransition.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-7-3"
+class="td11"> <!--l. 679-->
+ <div class="lstlisting" id="listing-36"><span class="label"><a
+ id="x18-79006r1"></a></span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tr0</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78010r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmtt-9">DoingThis</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port3</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78011r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+ id="x18-79007r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">triggers</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass2</span><span
+class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78012r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+ id="x18-79008r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
+class="ec-lmtt-9">&#x003C;</span><span
+class="ec-lmtt-9">doThis</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass3</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78013r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port5</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78014r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port3</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port6</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78015r14"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port7</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port4</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78016r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Binding</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_A</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port8</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorRef_B</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">port9</span><span
+class="ec-lmtt-9">fct</span><span
+class="ec-lmtt-9">&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78017r16"></a></span><span
+ id="x18-79009r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-78018r17"></a></span><span
+ id="x18-79010r5"></a></span><span
class="ec-lmtt-9">}</span>
- </p> </div> </td>
+
+</div>
+<!--l. 688--><p class="noindent" > </p></td>
</tr><tr
class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
+ style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-12-8-1"
class="td11"> </td></tr></table></div>
-
-
+
+
</div><hr class="endfloat" />
</div>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">ActorClass1 </span>contains two <span id="textcolor20"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences (of ActorClass2 and ActorClass3)
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port1 </span>is an <span
-class="ec-lmsso-10">external end port</span>. Since it connects external actors with the behavior of the
- <span id="textcolor21"><span
-class="ec-lmssbx-10">ActorClass</span></span>, it is defined in the <span id="textcolor22"><span
-class="ec-lmssbx-10">Interface</span></span> section and the <span id="textcolor23"><span
-class="ec-lmssbx-10">Structure</span></span> section of the <span id="textcolor24"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port2 </span>and <span
-class="ec-lmsso-10">port3 </span>are <span
-class="ec-lmsso-10">internal end ports </span>and can only be connected to the ports of contained
- <span id="textcolor25"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences. Internal end ports connect the behavior of an <span id="textcolor26"><span
-class="ec-lmssbx-10">ActorClass</span></span> with its contained
- <span id="textcolor27"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port4 </span>is a relay port and connects external Actors to contained <span id="textcolor28"><span
-class="ec-lmssbx-10">ActorRef</span></span>erences. This port can
- not be accessed by the behavior of the <span id="textcolor29"><span
-class="ec-lmssbx-10">ActorClass</span></span>.
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">port5 </span>through <span
-class="ec-lmsso-10">port9 </span>are ports of contained actor references. <span
-class="ec-lmsso-10">port8 </span>and <span
-class="ec-lmsso-10">port9 </span>can communicate
- without interference with the containing actor class.
- </li>
- <li class="itemize"><span id="textcolor30"><span
-class="ec-lmssbx-10">Binding</span></span>s can connect ports of the actor class and its contained actor references.</li></ul>
<h5 class="subsubsectionHead"><a
- id="x19-790004.1.4"></a>Attributes</h5>
-<!--l. 120--><p class="noindent" ><span id="textcolor31"><span
-class="ec-lmssbx-10">Attribute</span></span>s are part of the <span id="textcolor32"><span
-class="ec-lmssbx-10">Structure</span></span> of an actor class. They can be of a <span id="textcolor33"><span
-class="ec-lmssbx-10">PrimitiveType</span></span> or a
-<span id="textcolor34"><span
-class="ec-lmssbx-10">DataClass</span></span>.
-</p><!--l. 123--><p class="noindent" >Example:
+ id="x18-800003.6.3"></a>Hierarchical Finite State Machine</h5>
+<!--l. 695--><p class="noindent" >The hierarchical finite state machine adds the notion of a sub state machine nested in a state. A few modeling elements listed
+in table <a
+href="#x18-800017">3.7<!--tex4ht:ref: tab:hier_fsm_notation --></a> are added to the set listed above.
</p>
-<!--l. 126-->
-<div class="lstlisting" id="listing-5"><span class="label"><a
- id="x19-79001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass3</span><span
+<div class="table">
+
+
+<!--l. 699--><p class="noindent" ><a
+ id="x18-800017"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;3.7: </span><span
+class="content">Additional notation elements of hierarchical finite state machines</span></div><!--tex4ht:label?: x18-800017 -->
+<div class="tabular"> <table id="TBL-13" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-13-1g"><col
+id="TBL-13-1" /></colgroup><colgroup id="TBL-13-2g"><col
+id="TBL-13-2" /></colgroup><colgroup id="TBL-13-3g"><col
+id="TBL-13-3" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-1"
+class="td11"> <!--l. 703--><p class="noindent" ><span
+class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-2"
+class="td11"> <span
+class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-1-3"
+class="td11"> <!--l. 703--><p class="noindent" ><span
+class="ec-lmssbx-10">Textual Notation</span> </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-1"
+class="td11"> <!--l. 705--><p class="noindent" >State with sub state
+ machine </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-2"
+class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-14-1g"><col
+id="TBL-14-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-1-1"
+class="td00">Parent State</td></tr><tr
+ style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-2-1"
+class="td00"> <img
+src="images/040-StateWithSubFSM.jpg" alt="PIC"
+ /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-2-3"
+class="td11"> <div class="tabular"> <table id="TBL-15" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-15-1g"><col
+id="TBL-15-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1"
+class="td11">Sub state machine </td>
+</tr><tr
+ style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-1"
+class="td11"><!--l. 710--> <!--l. 710--><p class="noindent" ><div class="lstlisting" id="listing-37"><span class="label"><a
+ id="x18-80002r1"></a></span><span
+class="ec-lmssbx-10x-x-90">State</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Running</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-79002r2"></a></span><span
+ id="x18-80003r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">subgraph</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-79003r3"></a></span><span
+ id="x18-80004r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmssbx-10x-x-90">Transition</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
+class="ec-lmtt-9">init</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">initial</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Process</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">{}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-79004r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
-class="ec-lmtt-9">:</span><span
+ id="x18-80005r4"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
+class="ec-lmssbx-10x-x-90">State</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
+class="ec-lmtt-9">Process</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-79005r5"></a></span><span
+ id="x18-80006r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-79006r6"></a></span><span
+ id="x18-80007r6"></a></span><span
class="ec-lmtt-9">}</span>
+ </p> </div></td>
+</tr></table></div>
+ <!--l. 722--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-1"
+class="td11"> <!--l. 723--><p class="noindent" >Entry Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-2"
+class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular"
+cellspacing="0" cellpadding="0"
+><colgroup id="TBL-16-1g"><col
+id="TBL-16-1" /></colgroup><tr
+ style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-1-1"
+class="td00">In sub state machine</td></tr><tr
+ style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-2-1"
+class="td00"> <img
+src="images/040-EntryPoint.jpg" alt="PIC"
+ /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-3-3"
+class="td11"> <!--l. 726-->
+ <div class="lstlisting" id="listing-38"><span class="label"><a
+ id="x18-80008r1"></a></span><span
+class="ec-lmssbx-10x-x-90">EntryPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">reInit</span>
+
</div>
-<!--l. 135--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x19-800004.1.4"></a>Operations</h5>
-<!--l. 137--><p class="noindent" ><span id="textcolor35"><span
-class="ec-lmssbx-10">Operation</span></span>s are part of the <span id="textcolor36"><span
-class="ec-lmssbx-10">Behavior</span></span> of an actor class. Arguments and return values can be of a
-<span id="textcolor37"><span
-class="ec-lmssbx-10">PrimitiveType</span></span> or a <span id="textcolor38"><span
-class="ec-lmssbx-10">DataClass</span></span>. Data classes can be passed by value (implicit) or by reference
-(<span id="textcolor39"><span
-class="ec-lmssbx-10">ref</span></span>).
-</p><!--l. 140--><p class="noindent" >Example:
-</p>
-<!--l. 144-->
-<div class="lstlisting" id="listing-6"><span class="label"><a
- id="x19-80001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass4</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80002r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Behavior</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80003r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80004r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80005r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80006r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80007r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80008r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float64</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">uint16</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80009r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80010r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80011r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80012r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80013r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80014r14"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80015r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reference</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">except</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">types</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80016r16"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation4</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80017r17"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80018r18"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80019r19"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x19-80020r20"></a></span><span
-class="ec-lmtt-9">}</span>
+<!--l. 730--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-1"
+class="td11"> <!--l. 731--><p class="noindent" >Exit Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-2"
+class="td11"> <img
+src="images/040-ExitPoint.jpg" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-4-3"
+class="td11"> <!--l. 733-->
+ <div class="lstlisting" id="listing-39"><span class="label"><a
+ id="x18-80009r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ExitPoint</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">tp0</span>
+
</div>
-
-
-<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse14.html" >next</a>] [<a
-href="etrice-docch4.html" >prev</a>] [<a
-href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
+<!--l. 736--><p class="noindent" > </p></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-13-5-1"
+class="td11"> </td></tr></table>
+</div>
+
+
+</div><hr class="endfloat" />
+</div>
+<h4 class="subsectionHead"><span class="titlemark">3.6.4 </span> <a
+ id="x18-810003.6.4"></a>Examples</h4>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x18-810011"></a>
+
+
+<!--l. 743--><p class="noindent" ><img
+src="images/040-FlatFSM.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;3.1: </span><span
+class="content">Example of a flat finite state machine</span></div><!--tex4ht:label?: x18-810011 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x18-810022"></a>
+
+
+<!--l. 748--><p class="noindent" ><img
+src="images/040-HierarchicalFSMTop.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;3.2: </span><span
+class="content">Example of a hierarchical finite state machine &#8211; top level</span></div><!--tex4ht:label?: x18-810022 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x18-810033"></a>
+
+
+<!--l. 753--><p class="noindent" ><img
+src="images/040-HierarchicalFSMInitializing.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;3.3: </span><span
+class="content">Hierarchical finite state machine &#8211; sub state machine of <span
+class="ec-lmsso-10">Initializing</span></span></div><!--tex4ht:label?: x18-810033 -->
+
+
+</div><hr class="endfigure" />
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x18-810044"></a>
+
+
+<!--l. 758--><p class="noindent" ><img
+src="images/040-HierarchicalFSMRunning.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;3.4: </span><span
+class="content">Hierarchical finite state machine &#8211; sub state machine of <span
+class="ec-lmsso-10">Running</span></span></div><!--tex4ht:label?: x18-810044 -->
+
+
+</div><hr class="endfigure" />
+
+
+<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch4.html" >next</a>] [<a
+href="etrice-docse12.html" >prev</a>] [<a
+href="etrice-docse12.html#tailetrice-docse12.html" >prev-tail</a>] [<a
href="etrice-docse13.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse13.html" >up</a>] </p></div>
-<!--l. 167--><p class="noindent" ><a
- id="tailetrice-docse13.html"></a> </p>
+href="etrice-docch3.html#etrice-docse13.html" >up</a>] </p></div>
+<!--l. 72--><p class="noindent" ><a
+ id="tailetrice-docse13.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
index 9983d49..6622f39 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html
@@ -4,134 +4,357 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Protocols</title>
+<head><title>Automatic Diagram Layout with KIELER</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 167--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse15.html" >next</a>] [<a
-href="etrice-docse13.html" >prev</a>] [<a
-href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
+href="etrice-docch4.html" >prev</a>] [<a
+href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
href="#tailetrice-docse14.html">tail</a>] [<a
href="etrice-docch4.html#etrice-docse14.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.2 </span> <a
- id="x20-810004.2"></a>Protocols</h3>
-<!--l. 169--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.1 </span> <a
- id="x20-820004.2.1"></a>Description</h4>
-<!--l. 171--><p class="noindent" >A <span id="textcolor40"><span
-class="ec-lmssbx-10">ProtocolClass</span></span> defines a set of incoming and outgoing <span id="textcolor41"><span
-class="ec-lmssbx-10">Message</span></span>s that can be exchanged between two ports.
-The exact semantics of a message is defined by the execution model.
-</p><!--l. 174--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.2 </span> <a
- id="x20-830004.2.2"></a>Motivation</h4>
+<h3 class="sectionHead"><span class="titlemark">4.1 </span> <a
+ id="x20-830004.1"></a>Automatic Diagram Layout with KIELER</h3>
+<!--l. 3--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.1.1 </span> <a
+ id="x20-840004.1.1"></a>Overview</h4>
+<!--l. 5--><p class="noindent" >eTrice now provides a new feature of automatic layout of the ROOM diagrams in its graphical editors. This helps in improving
+the pragmatics of the diagrams and frees the user from the burden of manually lay-outing the diagrams on the
+canvas.
+</p><!--l. 9--><p class="noindent" >The automatic lay-outing has been provided with the help of the well known KIELER framework, which focuses on the
+pragmatics of model-based system design, which can improve comprehensibility of diagrams, improve development and
+maintenance time, and improve the analysis of dynamic behavior.
+</p><!--l. 13--><p class="noindent" >This chapter will answer the following questions </p>
+ <ul class="itemize1">
+ <li class="itemize"><a
+href="#x20-850004.1.2">&#8221;How to perform automatic layout in the graphical editors of eTrice?&#8221;</a>
+ </li>
+ <li class="itemize"><a
+href="#x20-860004.1.3">&#8221;What are layout options?&#8221;</a>
+ </li>
+ <li class="itemize"><a
+href="#x20-870004.1.4">&#8221;How to configure the layout options to alter the diagram layout as desired?&#8221;</a></li></ul>
+<!--l. 21--><p class="noindent" >Moreover, some <a
+href="#x20-920004.1.5">&#8221;special layout options&#8221;</a> will also be discussed.
+
+
+</p><!--l. 23--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.1.2 </span> <a
+ id="x20-850004.1.2"></a>Performing Automatic Layout</h4>
+<!--l. 26--><p class="noindent" >Automatic layout could be performed in eTrice graphical editors using the command to layout the current
+diagram.
+</p><!--l. 29--><p class="noindent" >This command is available in
+</p>
+ <ul class="itemize1">
+ <li class="itemize">The context menu of the diagrams
+ </li>
+ <li class="itemize">Using the <span
+class="ec-lmsso-10">Ctrl+R L </span>shortcut.</li></ul>
+<!--l. 36--><p class="noindent" >Additionally, an entry in the context menu allows to layout only a selected part of the diagram.
+</p><!--l. 38--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.1.3 </span> <a
+ id="x20-860004.1.3"></a>Layout Options</h4>
+<!--l. 41--><p class="noindent" >A layout option is a customization point for the layout algorithms, with a specific data type and optionally a
+default value, used to affect how the active layout algorithm computes concrete coordinates for the graph
+elements.
+</p><!--l. 45--><p class="noindent" >User-configurable layout options for a particular diagram object can be viewed and configured through the Layout View.The
+Layout View can be opened from the context menu of a selected diagram object by clicking the <span
+class="ec-lmsso-10">Show Layout View</span>
+entry.
+</p><!--l. 49--><p class="noindent" >On opening the layout view, and selecting any layout option, a description of the layout option is available in the footer of
+eclipse SDK. This is shown in figure <a
+href="#x20-860011">4.1<!--tex4ht:ref: fig:layout_options --></a>.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x20-860011"></a>
+
+
+
+<!--l. 53--><p class="noindent" ><img
+src="images/043-LayoutOptionDescription.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.1: </span><span
+class="content">Layout options</span></div><!--tex4ht:label?: x20-860011 -->
+
+
+</div><hr class="endfigure" />
+<h4 class="subsectionHead"><span class="titlemark">4.1.4 </span> <a
+ id="x20-870004.1.4"></a>Configuring Layout Options</h4>
+<!--l. 61--><p class="noindent" >The values of the layout options for a particular diagram object (in the visible diagram) can be changed using
+the Layout View of that diagram object. The initial values are the predefined <span
+class="ec-lmsso-10">default </span>values. These defaults
+can be changed using the context menu in Layout View as well as the Layout preference pages provided by
+eTrice.
+</p><!--l. 66--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x20-880004.1.4"></a>The Layout View</h5>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x20-880012"></a>
+
+
+
+<!--l. 70--><p class="noindent" ><img
+src="images/043-LayoutView.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.2: </span><span
+class="content">Layout view</span></div><!--tex4ht:label?: x20-880012 -->
+
+
+</div><hr class="endfigure" />
+<!--l. 75--><p class="noindent" >The Layout view (figure <a
+href="#x20-880012">4.2<!--tex4ht:ref: fig:layout_view --></a>) allows flexible customization of layout options for the selected objects in the eTrice diagram.
+If no object is selected, the view shows the options for the top-level container of the diagram. Options are
+stored persistently in diagram file (<span
+class="ec-lmsso-10">.structure file / </span>.behavior file) of the eTrice diagram, so that they are still
+available after the next Eclipse restart. Of course this requires the diagram to be saved after an option was
+changed.
+</p><!--l. 81--><p class="noindent" >The options are grouped according to the function of the selected objects. The group Nodes (respectively Edges, Ports, or
+Labels) contains options related to the object itself, such as its size or priority, while the group Parents contains options for
+the elements contained in the selected objects, such as the applied layout algorithm or the spacing between elements. Which
+layout options are displayed depends on the types of selected objects and the active layout algorithm, since each algorithm
+supports only a subset of the available options. Furthermore, some options are only visible if the <span
+class="ec-lmsso-10">Show Advanced</span>
+<span
+class="ec-lmsso-10">Properties </span>button in the view toolbar is activated. The group types can be hidden using the Show Categories
+button.
+</p><!--l. 90--><p class="noindent" >An option can be changed by selecting or entering a new value in the corresponding cell of the Value column.
+</p><!--l. 92--><p class="noindent" >The most important option is Layout Algorithm, which is used to determine the layout algorithm for the contents of
+the selected element. Here either a specific layout algorithm or a layout type can be chosen; in the latter
+case, the most suitable layout algorithm of the given type is taken. By changing the active layout algorithm,
+the content of the layout view is updated to display only those options that are supported by the new layout
+algorithm.
+</p><!--l. 98--><p class="noindent" >Selecting <span
+class="ec-lmsso-10">Restore Default Value </span>in the context menu or the view toolbar (figure <a
+href="#x20-880023">4.3<!--tex4ht:ref: fig:layout_context_menu --></a>) removes any value for the currently
+selected option that is stored in the current model file, thus resetting the option to its default value. The view menu has an
+entry Remove all Layout Options which resets all options of the current model by removing persistent data in the model
+file.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x20-880023"></a>
+
+
+
+<!--l. 105--><p class="noindent" ><img
+src="images/043-ContextMenu.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.3: </span><span
+class="content">Layout in context menu</span></div><!--tex4ht:label?: x20-880023 -->
+
+
+</div><hr class="endfigure" />
+<!--l. 110--><p class="noindent" >The context menu for a specific layout option has different alternatives to set the currently active value as <span
+class="ec-lmsso-10">default</span>
+value:
+</p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for this Diagram</span>: Changes the open diagram file so that the same value is applied to all similar
+ objects (edit parts) of that diagram.
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for ... in this Context</span>: Applies the value to all similar objects that are displayed with the any of
+ the eTrice editors (the option is linked to the edit part class of the selected object).
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Set as Default for all ...</span>: Links the option value with the domain model element or the diagram type of the
+ selected object (see the context menu depicted above).</li></ul>
+<!--l. 125--><p class="noindent" >These four alternatives have different priorities: if present, the default value for the current diagram is taken first, then the
+default value for the edit part is checked, then the default value for the domain model element, and then the default value for
+the diagram type.
+</p><!--l. 129--><p class="noindent" >Tips: </p>
<ul class="itemize1">
- <li class="itemize">Protocol classes provide a reusable interface specification for ports
+ <li class="itemize">The information button of the view toolbar can be used to display some useful details on the current selection,
+ such as the edit part and domain model classes.
+ </li>
+ <li class="itemize">Default values for layout options can most easily be manipulated based on the eTrice domain model elements.</li></ul>
+<h5 class="subsubsectionHead"><a
+ id="x20-890004.1.4"></a>Preference Page</h5>
+<!--l. 140--><p class="noindent" >The user-defined <span
+class="ec-lmsso-10">default </span>values for layout options can also be set using the preference pages provided in eTrice. Three
+preference pages have been provided for this purpose </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">Layout</span>: for general preferences regarding layout
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">Behavior</span>: for setting default values of layout options for eTrice behavior diagrams
</li>
- <li class="itemize">Protocol classes can optionally specify valid message exchange sequences</li></ul>
-<!--l. 181--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.3 </span> <a
- id="x20-840004.2.3"></a>Notation</h4>
-<!--l. 183--><p class="noindent" >Protocol classes have only textual notation. The example defines a protocol class with 2 incoming and two
-outgoing messages. Messages can have data attached. The data can be of a primitive type (e.g. int32, float64,
-...) or a data class.
-</p>
-<!--l. 188-->
-<div class="lstlisting" id="listing-7"><span class="label"><a
- id="x20-84001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ProtocolClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84002r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">incoming</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84003r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m1</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">data</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84004r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m2</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84005r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84006r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">outgoing</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84007r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">data</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84008r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Message</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">m4</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84009r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x20-84010r10"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-
-
-<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
+ <li class="itemize"><span
+class="ec-lmsso-10">Structure</span>: for setting default values of layout options for eTrice structure diagrams</li></ul>
+<!--l. 148--><p class="noindent" >These preference pages can be accessed via <span
+class="ec-lmsso-10">Windows &#x003E; Preferences &#x003E; </span><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">&#x003E; Layout</span>.
+</p><!--l. 150--><p class="noindent" >Note that the contents of these preference pages are in sync with the <span
+class="ec-lmsso-10">KIELER &#x003E; Layout </span>preference page
+provided by the KIELER. Relevant entries in the <span
+class="ec-lmsso-10">KIELER &#x003E; Layout </span>page are shown in the above preference
+pages.
+</p>
+<!--l. 154--><p class="noindent" ><span class="paragraphHead"><a
+ id="x20-900004.1.4"></a><span
+class="ec-lmssbo-10">Layout </span><span
+class="ec-lmssbx-10">Preference Page</span></span>
+<br
+class="newline" />
+</p><!--l. 156--><p class="noindent" >The <span
+class="ec-lmsso-10">Layout </span>preference page is meant to configure general options regarding the layout.
+</p><!--l. 158--><p class="noindent" >If <span
+class="ec-lmsso-10">Set routing style of all edges to oblique </span>is active, all routing styles and smoothness settings of edges are removed when
+automatic layout is performed. Since most layouters compute the routing of edges as part of their algorithm, these styles
+usually do not yield the expected results.
+
+
+</p>
+<!--l. 162--><p class="noindent" ><span class="paragraphHead"><a
+ id="x20-910004.1.4"></a><span
+class="ec-lmssbo-10">Behavior </span><span
+class="ec-lmssbx-10">and </span><span
+class="ec-lmssbo-10">Structure </span><span
+class="ec-lmssbx-10">Preference Page</span></span>
+<br
+class="newline" />
+</p><!--l. 165--><p class="noindent" >The <span
+class="ec-lmsso-10">Behavior </span>and <span
+class="ec-lmsso-10">Structure </span>sub-preference pages help in setting up the default values of layout options in behavior and
+structure diagrams respectively.
+</p><!--l. 168--><p class="noindent" >The <span
+class="ec-lmsso-10">Default Layout Option Values </span>table is used to manage the default setting for layout options, which can also be modified
+with the context menu of the layout view (see above). All user-defined settings are displayed here, and the buttons on the
+right of the table serve to create, edit, and remove entries. The Type column shows the type of element the option is
+linked with: either edit part, model element, or diagram type. The Element column shows the class name
+for options that relate to edit parts or domain model elements, and the diagram type name for options that
+relate to diagram types. Option is the name of the layout option, and Value is the currently set value of the
+option.
+</p><!--l. 176--><p class="noindent" >Creating a new entry requires the selection of the type of related element (figure <a
+href="#x20-910014">4.4<!--tex4ht:ref: fig_layout_preference_page --></a>) and entering its class
+name or identifier. Class names of edit parts can be explored using the information button of the layout view,
+while the class names for the domain model elements and the diagram type identifiers for the diagram types
+can be selected with the Browse button. After that, a layout option has to be selected from the list using
+the corresponding Browse button. Hitting OK creates an entry, and its value can then be set using the Edit
+button.
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x20-910014"></a><a
+ id="x21-9700048"></a>
+
+
+
+<!--l. 185--><p class="noindent" ><img
+src="images/043-PreferencePage.png" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.4: </span><span
+class="content">Layout preference page</span></div><!--tex4ht:label?: x20-910014 -->
+
+
+</div><hr class="endfigure" />
+<!--l. 190--><p class="noindent" >Note that the <span
+class="ec-lmsso-10">Behavior </span>preference page will show only those entries which hold for the behavior diagrams.
+Moreover, it will allow setting default values of layout options for only those domain model elements and diagram
+types which could be present in the behavior editor diagrams. Similar thing holds for the <span
+class="ec-lmsso-10">Structure </span>preference
+page.
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.1.5 </span> <a
+ id="x20-920004.1.5"></a>Special Layout Options</h4>
+<!--l. 198--><p class="noindent" >While most layout options are used to affect how the active layout algorithm computes concrete coordinates for the graph
+elements, there are some layout options that have a special role.
+</p><!--l. 201--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x20-930004.1.5"></a>Layout Algorithm</h5>
+<!--l. 203--><p class="noindent" >The option with identifier de.cau.cs.kieler.algorithm specifies which layout algorithm to use for the content of a composite
+node. The value can be either the identifier of a layout algorithm or the identifier of a layout type. In the latter case the
+algorithm with highest priority of that type is applied.
+</p><!--l. 207--><p class="noindent" >For the purpose of automatic diagram layout in eTrice, we use the <span
+class="ec-lmsso-10">Layered </span>algorithms which are meant for lay-outing
+hierarchical diagrams and are best suited for behavior and structure diagrams in eTrice. For the behavior diagrams we have
+used the <span
+class="ec-lmsso-10">Graphviz Dot </span>algorithm whereas for the structure diagrams we have used the <span
+class="ec-lmsso-10">KLay Layered </span>algorithm. Though the
+layout algorithm being used for performing layout can be changed at ones own will, it is recommended to use the
+defaults.
+</p><!--l. 213--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x20-940004.1.5"></a>Diagram Type</h5>
+<!--l. 215--><p class="noindent" >Diagram types are used to classify graphical diagrams for setting default layout option values for a set of similar diagrams.
+The diagram type of an element is specified with the layout option <span
+class="ec-lmtt-10">de.cau.cs.kieler.diagramType</span>. Thus, these help
+in
+</p><!--l. 219--><p class="noindent" >The following diagram types have been defined and used in eTrice: </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmsso-10">General </span>- This type is automatically assigned to all diagrams for which no specific type is declared. (Predefined
+ in KIELER)
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">Behavior Diagrams </span>- This type has been assigned to the diagram objects in eTrice Behavior Diagrams.
+ </li>
+ <li class="itemize"><span
+class="ec-lmsso-10">e</span><span
+class="ec-lmsso-10">Trice</span> <span
+class="ec-lmsso-10">Structure Diagrams </span>- This type has been assigned to the diagram objects in eTrice Structure Diagrams.</li></ul>
+<!--l. 228--><p class="noindent" >Note that not all diagrams objects in the behavior and structure diagrams are assigned the last two diagram types.
+Only the top-level container and the visible bounding box has been assigned these diagram types in respective
+editors.
+</p><!--l. 232--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.1.6 </span> <a
+ id="x20-950004.1.6"></a>Further References</h4>
+
+
+<!--l. 234--><p class="noindent" >Most parts of the above documentation have been taken from the "KIML wiki"
+(<a
+href="http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078" class="url" ><span
+class="ec-lmtt-10">http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078</span></a> and have been
+modified for automatic layout in eTrice. A more detailed description about the layout algorithms, predefined
+diagram types and the internal structure of KIELER Infrastructure for Meta-Layout (KIML) can be found
+there.
+
+
+</p>
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse15.html" >next</a>] [<a
-href="etrice-docse13.html" >prev</a>] [<a
-href="etrice-docse13.html#tailetrice-docse13.html" >prev-tail</a>] [<a
+href="etrice-docch4.html" >prev</a>] [<a
+href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
href="etrice-docse14.html" >front</a>] [<a
href="etrice-docch4.html#etrice-docse14.html" >up</a>] </p></div>
-<!--l. 201--><p class="noindent" ><a
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse14.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
index 6590a54..e4b4ce5 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html
@@ -4,1010 +4,1378 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Ports</title>
+<head><title>eTrice Models and Their Relations</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 201--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse16.html" >next</a>] [<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch5.html" >next</a>] [<a
href="etrice-docse14.html" >prev</a>] [<a
href="etrice-docse14.html#tailetrice-docse14.html" >prev-tail</a>] [<a
href="#tailetrice-docse15.html">tail</a>] [<a
href="etrice-docch4.html#etrice-docse15.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.3 </span> <a
- id="x21-850004.3"></a>Ports</h3>
-<!--l. 203--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.1 </span> <a
- id="x21-860004.3.1"></a>Description</h4>
-<!--l. 205--><p class="noindent" ><span id="textcolor42"><span
-class="ec-lmssbx-10">Port</span></span>s are the only interfaces of actors. A port has always a protocol assigned. Service Access
-Points (SAP) and Service Provision Points (SPP) are specialized ports that are used to define
-layering.
-</p><!--l. 209--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.2 </span> <a
- id="x21-870004.3.2"></a>Motivation</h4>
- <ul class="itemize1">
- <li class="itemize">Ports decouple interface definition (protocols) from interface usage
- </li>
- <li class="itemize">Ports decouple the logical interface from the transport</li></ul>
-<!--l. 216--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.3.3 </span> <a
- id="x21-880004.3.3"></a>Notation</h4>
-<!--l. 218--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x21-890004.3.3"></a>Class Ports</h5>
-<!--l. 220--><p class="noindent" >These symbols can only appear on the border of an actor class symbol.
-</p><!--l. 222--><p class="noindent" >Ports that define an external interface of the actor class, are defined in the <span id="textcolor43"><span
-class="ec-lmssbx-10">Interface</span></span>. Ports that define an
-internal interface are defined in the <span id="textcolor44"><span
-class="ec-lmssbx-10">Structure</span></span> (e.g. internal ports).
+<h3 class="sectionHead"><span class="titlemark">4.2 </span> <a
+ id="x21-960004.2"></a>eTrice Models and Their Relations</h3>
+<!--l. 3--><p class="noindent" >eTrice comprises several models:
</p>
<ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">External end ports </span>are defined in the Interface and the Structure
-
-
+ <li class="itemize">the ROOM model (*.room) &#8211; defines model classes and the logical structure of the model
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">Internal end ports </span>are only defined in the Structure
+ <li class="itemize">the Config model (*.config) &#8211; defines configuration values for attributes
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">Relay ports </span>are only defined in the Interface
+ <li class="itemize">the Physical model (*.etphys) &#8211; defines the structure and properties of the physical system
</li>
- <li class="itemize"><span
-class="ec-lmsso-10">End ports </span>are always connected to the internal behavior of the ActorClass
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">Replicated ports </span>can be defined with a fixed replication factor, e.g.<br
-class="newline" /><span id="textcolor45"><span
-class="ec-lmtk-10">Port</span></span> <span
-class="ec-lmtt-10">port18 [5]: ProtocolClass1</span><br
-class="newline" />or a variable replication factor, e.g.<br
-class="newline" /><span id="textcolor46"><span
-class="ec-lmtk-10">Port</span></span> <span
-class="ec-lmtt-10">port18[*]: ProtocolClass1</span></li></ul>
-<!--l. 236--><p class="noindent" >The table <a
-href="#x21-89001r3">4.3<!--tex4ht:ref: tab:class_port_notation --></a> shows all kinds of class ports with textual and graphical notation.
-<a
- id="x21-89001r3"></a>
+ <li class="itemize">the Mapping model (*.etmap) &#8211; defines a mapping from logical elements to physical elements</li></ul>
+<!--l. 12--><p class="noindent" >In the following diagram the models and their relations are depicted. The meaning of the arrows is: uses/references.
+</p><!--l. 15--><p class="noindent" ><img
+src="images/080-models.jpg" alt="PIC"
+ />
+</p><!--l. 17--><p class="noindent" >In the following sections we will describe those models with emphasis of their cross relations.
+</p><!--l. 19--><p class="noindent" >
</p>
-<!--l. 240--><div class="longtable"> <table id="TBL-5" class="longtable"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-5-1g"><col
-id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col
-id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col
-id="TBL-5-3" /></colgroup>
-
-
-<tr
- style="vertical-align:baseline;" id="TBL-5-1-"><td colspan="3" style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-1-1"
-class="td11"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"> <div class="caption"
-><span class="id">Table&#x00A0;4.3: </span><span
-class="content">Class Port Notation</span></div><!--tex4ht:label?: x21-89001r3 --> </div> <a
- id="x21-89002"></a>
-</td></tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-1"
-class="td11">
- <!--l. 243--><p class="noindent" ><span
-class="ec-lmssbx-10">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-2-3"
-class="td11">
- <!--l. 243--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-1"
-class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2"
-class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-3-3"
-class="td11">
-</td></tr>
-<tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-1"
-class="td11">
- <!--l. 246--><p class="noindent" >Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2"
-class="td11"> <img
-src="images/040-ClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-4-3"
-class="td11">
- <div class="tabular"> <table id="TBL-6" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-6-1g"><col
-id="TBL-6-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
-class="td11"><span
-class="ec-lmsso-10">External Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
-class="td11"><!--l. 250--> <!--l. 250--><p class="noindent" ><a
- id="x21-89003r1"></a><a
- id="x21-89004"></a><div class="lstlisting" id="listing-8"><span class="label"><a
- id="x21-89005r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+<h4 class="subsectionHead"><span class="titlemark">4.2.1 </span> <a
+ id="x21-970004.2.1"></a>The ROOM Model</h4>
+<!--l. 21--><p class="noindent" >The ROOM model defines <span id="textcolor52"><span
+class="ec-lmssbx-10">DataClass</span></span>es, <span id="textcolor53"><span
+class="ec-lmssbx-10">ProtocolClass</span></span>es, <span id="textcolor54"><span
+class="ec-lmssbx-10">ActorClass</span></span>es, <span id="textcolor55"><span
+class="ec-lmssbx-10">SubSystemClass</span></span>es and <span id="textcolor56"><span
+class="ec-lmssbx-10">LogicalSystem</span></span>s. Thereby
+the three latter form a hierarchy. The <span id="textcolor57"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> is the top level element of the structure. It contains references to
+<span id="textcolor58"><span
+class="ec-lmssbx-10">SubSystemClass</span></span> elements. The <span id="textcolor59"><span
+class="ec-lmssbx-10">SubSystemClass</span></span> in turn contains references to <span id="textcolor60"><span
+class="ec-lmssbx-10">ActorClass</span></span> elements which again
+contain (recursively) references to <span id="textcolor61"><span
+class="ec-lmssbx-10">ActorClass</span></span> elements. The complete structural hierarchy implies a tree
+which has the <span id="textcolor62"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> as root and where each reference stands for a new node with possibly further
+branches.
+</p><!--l. 29--><p class="noindent" >Let&#8217;s consider a simple example. It doesn&#8217;t implement anything meaningful and completely omits behavioral and other
+aspects.
+</p>
+<!--l. 32--><div class="lstinputlisting">
+<a
+ id="x21-97001r1"></a>
+<a
+ id="x21-97002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89006r2"></a></span><span
+ id="x21-97004r2"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89007r3"></a></span><span
+ id="x21-97005r3"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">subA</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">SubA</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89008r4"></a></span><span
+ id="x21-97006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subB</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97007r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89009r5"></a></span><span
+ id="x21-97008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89010r6"></a></span><span
+ id="x21-97010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port12</span><span
+class="ec-lmtt-9">ActA</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89011r7"></a></span><span
+ id="x21-97011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89012r8"></a></span><span
-class="ec-lmtt-9">}</span>
- </p> </div></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
-class="td11"><span
-class="ec-lmsso-10">Internal Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
-class="td11"><!--l. 263--> <!--l. 263--><p class="noindent" ><a
- id="x21-89013r2"></a><a
- id="x21-89014"></a><div class="lstlisting" id="listing-9"><span class="label"><a
- id="x21-89015r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actB</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97012r10"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89016r2"></a></span><span
+ id="x21-97013r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89017r3"></a></span><span
+ id="x21-97014r12"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89018r4"></a></span><span
+ id="x21-97015r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89019r5"></a></span><span
+ id="x21-97016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">actC1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port20</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89020r6"></a></span><span
+ id="x21-97017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89021r7"></a></span><span
-class="ec-lmtt-9">}</span>
- </p> </div></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-1"
-class="td11">
- <!--l. 276--><p class="noindent" >Conjugated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2"
-class="td11"> <img
-src="images/040-ConjugatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-5-3"
-class="td11">
- <div class="tabular"> <table id="TBL-7" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-7-1g"><col
-id="TBL-7-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
-class="td11"><span
-class="ec-lmsso-10">External Conjugated Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
-class="td11"><!--l. 280--> <!--l. 280--><p class="noindent" ><a
- id="x21-89022r3"></a><a
- id="x21-89023"></a><div class="lstlisting" id="listing-10"><span class="label"><a
- id="x21-89024r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-97018r16"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB2</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89025r2"></a></span><span
+ id="x21-97020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97021r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">SubB</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89026r3"></a></span><span
+ id="x21-97022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActA</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97023r21"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">actB</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89027r4"></a></span><span
+ id="x21-97024r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97025r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89028r5"></a></span><span
+ id="x21-97026r24"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89029r6"></a></span><span
+ id="x21-97027r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmtt-9">actB</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port13</span><span
+class="ec-lmtt-9">extra</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89030r7"></a></span><span
+ id="x21-97028r26"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89031r8"></a></span><span
-class="ec-lmtt-9">}</span>
- </p> </div></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
-class="td11"><span
-class="ec-lmsso-10">Internal Conjugated Class End Port: </span></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
-class="td11"><!--l. 293--> <!--l. 293--><p class="noindent" ><a
- id="x21-89032r4"></a><a
- id="x21-89033"></a><div class="lstlisting" id="listing-11"><span class="label"><a
- id="x21-89034r1"></a></span><span
+ id="x21-97029r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97030r28"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">ActA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89035r2"></a></span><span
+ id="x21-97031r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89036r3"></a></span><span
+ id="x21-97032r30"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89037r4"></a></span><span
+ id="x21-97033r31"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actB1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89038r5"></a></span><span
+ id="x21-97034r32"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port21</span><span
+class="ec-lmtt-9">actB2</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89039r6"></a></span><span
+ id="x21-97035r33"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89040r7"></a></span><span
-class="ec-lmtt-9">}</span>
- </p> </div></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-1"
-class="td11">
- <!--l. 307--><p class="noindent" >Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2"
-class="td11"> <img
-src="images/040-ClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-6-3"
-class="td11">
- <!--l. 309-->
- <a
- id="x21-89041r5"></a>
- <a
- id="x21-89042"></a>
- <div class="lstlisting" id="listing-12"><span class="label"><a
- id="x21-89043r1"></a></span><span
+ id="x21-97036r34"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97037r35"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97038r36"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89044r2"></a></span><span
+ id="x21-97039r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89045r3"></a></span><span
+ id="x21-97040r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">Attribute</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port10</span><span
+class="ec-lmtt-9">val</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">int</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89046r4"></a></span><span
+ id="x21-97041r39"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actC1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActC</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89047r5"></a></span><span
+ id="x21-97042r40"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actC2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActC</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97043r41"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89048r6"></a></span><span
+ id="x21-97044r42"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89049r7"></a></span><span
+ id="x21-97045r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97046r44"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActC</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97047r45"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97048r46"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">PrimitiveType</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ptInteger</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">int</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">(</span><span
+class="ec-lmtt-9">Integer</span><span
+class="ec-lmtt-9">)</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">default</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">0</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-97049r47"></a></span><span
class="ec-lmtt-9">}</span>
-
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.1:
+ </span><span
+class="content">ROOM
+ example
+ code</span></div><!--tex4ht:label?: x21-970004.2 -->
</div>
-<!--l. 320--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-1"
-class="td11">
- <!--l. 321--><p class="noindent" >Conjugated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2"
-class="td11"> <img
-src="images/040-ConjugatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-7-3"
-class="td11">
- <!--l. 323-->
- <a
- id="x21-89050r6"></a>
- <a
- id="x21-89051"></a>
- <div class="lstlisting" id="listing-13"><span class="label"><a
- id="x21-89052r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+
+
+<!--l. 34--><p class="noindent" >When a <span id="textcolor63"><span
+class="ec-lmssbx-10">LogicalSystem</span></span> is instantiated then recursively all of the contained referenced elements are instantiated as instances
+of the corresponding class. Thus the instance tree of the above example looks like in figure <a
+href="#x21-970505">4.5<!--tex4ht:ref: fig:instance_tree --></a> (the third line in the white
+boxes shows some mapping information, see section <a
+href="#x21-1000004.2.4">4.2.4<!--tex4ht:ref: sec:mapping_model --></a> <a
+href="#x21-1000004.2.4">The Mapping Model<!--tex4ht:ref: sec:mapping_model --></a>):
+</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+<a
+ id="x21-970505"></a><a
+ id="x21-9800025"></a><a
+ id="x21-9900011"></a><a
+ id="x21-9900046"></a><a
+ id="x21-10000017"></a>
+
+
+<!--l. 40--><p class="noindent" ><img
+src="images/080-instances.jpg" alt="PIC"
+ />
+<br /> </p><div class="caption"
+><span class="id">Figure&#x00A0;4.5: </span><span
+class="content">Instances of a ROOM system</span></div><!--tex4ht:label?: x21-970505 -->
+
+
+</div><hr class="endfigure" />
+<h4 class="subsectionHead"><span class="titlemark">4.2.2 </span> <a
+ id="x21-980004.2.2"></a>The Config Model</h4>
+<!--l. 47--><p class="noindent" >Once we have the ROOM class model we can configure values using the Config model. This can be done on the class level
+and/or on the instance level. Values defined for class attributes are used for all instances unless there is an instance value
+configured for the same attribute.
+</p>
+<!--l. 51--><div class="lstinputlisting">
+<a
+ id="x21-98001r2"></a>
+<a
+ id="x21-98002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">ConfigModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89053r2"></a></span><span
+ id="x21-98004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89054r3"></a></span><span
+ id="x21-98008r6"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">val</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port10</span><span
-class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89055r4"></a></span><span
+ id="x21-98009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89056r5"></a></span><span
+ id="x21-98010r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ActB</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89057r6"></a></span><span
+ id="x21-98012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98013r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89058r7"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 334--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-1"
-class="td11">
- <!--l. 335--><p class="noindent" >Replicated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2"
-class="td11"> <img
-src="images/040-ReplicatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-8-3"
-class="td11">
- <div class="tabular"> <table id="TBL-8" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-8-1g"><col
-id="TBL-8-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1"
-class="td11"><!--l. 338--><p class="noindent" ><span
-class="ec-lmsso-10">External Replicated Class End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1"
-class="td11"><!--l. 339-->
-<a
- id="x21-89059r7"></a>
-<a
- id="x21-89060"></a>
-<div class="lstlisting" id="listing-14"><span class="label"><a
- id="x21-89061r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-98014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98015r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actA</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89062r2"></a></span><span
+ id="x21-98016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">val</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">12</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98017r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98018r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98019r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89063r3"></a></span><span
+ id="x21-98020r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">val</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">13</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89064r4"></a></span><span
+ id="x21-98021r19"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89065r5"></a></span><span
+ id="x21-98022r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-98023r21"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actA</span><span
+class="ec-lmtt-9">/</span><span
+class="ec-lmtt-9">actB2</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89066r6"></a></span><span
+ id="x21-98024r22"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmssbx-10x-x-90">Attr</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">val</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">14</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89067r7"></a></span><span
+ id="x21-98025r23"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89068r8"></a></span><span
+ id="x21-98026r24"></a></span><span
class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.2:
+ </span><span
+class="content">Config
+ example
+ code</span></div><!--tex4ht:label?: x21-980004.2 -->
</div>
-<!--l. 351--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1"
-class="td11"><!--l. 351--><p class="noindent" ><span
-class="ec-lmsso-10">Internal Replicated Class End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1"
-class="td11"><!--l. 352-->
+<!--l. 53--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.2.3 </span> <a
+ id="x21-990004.2.3"></a>The Physical Model</h4>
+<!--l. 55--><p class="noindent" >The physical model defines the physical resources onto which the logical system will be deployed. It is possible to define
+runtime classes which (currently) only define the overall execution model of the platform.
+</p>
+<!--l. 59--><div class="lstinputlisting">
<a
- id="x21-89069r8"></a>
+ id="x21-99001r3"></a>
<a
- id="x21-89070"></a>
-<div class="lstlisting" id="listing-15"><span class="label"><a
- id="x21-89071r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-99002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">PhysicalModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">runtimes</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89072r2"></a></span><span
+ id="x21-99004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">RuntimeClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">PCRuntime</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89073r3"></a></span><span
+ id="x21-99006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">multiThreaded</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99007r5"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89074r4"></a></span><span
+ id="x21-99008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99009r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">RuntimeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MSP430Runtime</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89075r5"></a></span><span
+ id="x21-99010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">model</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port16</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmssbx-10x-x-90">singleThreaded</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89076r6"></a></span><span
+ id="x21-99011r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89077r7"></a></span><span
+ id="x21-99012r10"></a></span><span
class="ec-lmtt-9">}</span>
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.3:
+ </span><span
+class="content">etPhys
+ runtime
+ definition</span></div><!--tex4ht:label?: x21-990004.2 -->
</div>
-<!--l. 363--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-1"
-class="td11">
- <!--l. 366--><p class="noindent" >Conjugated
- Replicated
- Class
- End
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-9-3"
-class="td11">
- <div class="tabular"> <table id="TBL-9" class="tabular"
-cellspacing="0" cellpadding="0"
-><colgroup id="TBL-9-1g"><col
-id="TBL-9-1" /></colgroup><tr
- style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1"
-class="td11"><!--l. 369--><p class="noindent" ><span
-class="ec-lmsso-10">External Conjugated Replicated Class</span>
-<span
-class="ec-lmsso-10">End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1"
-class="td11"><!--l. 370-->
+<!--l. 61--><p class="noindent" >The <span id="textcolor64"><span
+class="ec-lmssbx-10">PhysicalSystem</span></span> is composed of <span id="textcolor65"><span
+class="ec-lmssbx-10">NodeRef</span></span>erences which are instances of <span id="textcolor66"><span
+class="ec-lmssbx-10">NodeClass</span></span>es. Each <span id="textcolor67"><span
+class="ec-lmssbx-10">NodeClass</span></span> is referencing
+a <span id="textcolor68"><span
+class="ec-lmssbx-10">RuntimeClass</span></span> and is defining <span id="textcolor69"><span
+class="ec-lmssbx-10">Threads</span></span>.
+</p>
+<!--l. 65--><div class="lstinputlisting">
<a
- id="x21-89078r9"></a>
+ id="x21-99013r4"></a>
<a
- id="x21-89079"></a>
-<div class="lstlisting" id="listing-16"><span class="label"><a
- id="x21-89080r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-99014"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99015r1"></a></span><span
+class="ec-lmssbx-10x-x-90">PhysicalModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89081r2"></a></span><span
+ id="x21-99016r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99017r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99018r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99019r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">PhysicalSystem</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">MainPhys</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89082r3"></a></span><span
+ id="x21-99020r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pc1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PC_Node</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99021r7"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port17</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">pc2</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PC_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89083r4"></a></span><span
+ id="x21-99022r8"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">NodeRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">mc</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MSP430_Node</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99023r9"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89084r5"></a></span><span
+ id="x21-99024r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99025r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmssbx-10x-x-90">NodeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">PC_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89085r6"></a></span><span
+ id="x21-99026r12"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">external</span><span
+class="ec-lmssbx-10x-x-90">runtime</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port17</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">PCRuntime</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89086r7"></a></span><span
+ id="x21-99027r13"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomin</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89087r8"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 382--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1"
-class="td11"><!--l. 382--><p class="noindent" ><span
-class="ec-lmsso-10">Internal Conjugated Replicated Class</span>
-<span
-class="ec-lmsso-10">End Port:</span> </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1"
-class="td11"><!--l. 383-->
-<a
- id="x21-89088r10"></a>
-<a
- id="x21-89089"></a>
-<div class="lstlisting" id="listing-17"><span class="label"><a
- id="x21-89090r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-99028r14"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomax</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89091r2"></a></span><span
+ id="x21-99029r15"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DefaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89092r3"></a></span><span
+ id="x21-99030r16"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">blocked</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99031r17"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99032r18"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99033r19"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99034r20"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">50</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99035r21"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89093r4"></a></span><span
+ id="x21-99036r22"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Thread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread2</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89094r5"></a></span><span
+ id="x21-99037r23"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99038r24"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">interval</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ms</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99039r25"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99040r26"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">1024</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99041r27"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99042r28"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port23</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">50</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89095r6"></a></span><span
+ id="x21-99043r29"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89096r7"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 394--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1"
-class="td11"> </td></tr></table> </div> </td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-1"
-class="td11">
- <!--l. 397--><p class="noindent" >Replicated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-10-2"
-class="td11"> <img
-src="images/040-ReplicatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-10-3"
-class="td11">
- <!--l. 399-->
- <a
- id="x21-89097r11"></a>
- <a
- id="x21-89098"></a>
- <div class="lstlisting" id="listing-18"><span class="label"><a
- id="x21-89099r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+ id="x21-99044r30"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99045r31"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99046r32"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmssbx-10x-x-90">NodeClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MSP430_Node</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89100r2"></a></span><span
+ id="x21-99047r33"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">runtime</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">runtimes</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">MSP430Runtime</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89101r3"></a></span><span
+ id="x21-99048r34"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmssbx-10x-x-90">priomin</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port18</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">=</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89102r4"></a></span><span
+ id="x21-99049r35"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">priomax</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89103r5"></a></span><span
+ id="x21-99050r36"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">DefaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89104r6"></a></span><span
+ id="x21-99051r37"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">execmode</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">polled</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99052r38"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">interval</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">us</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99053r39"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">prio</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">10</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99054r40"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">stacksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">256</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99055r41"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgblocksize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">64</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99056r42"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">msgpoolsize</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">=</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">50</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99057r43"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89105r7"></a></span><span
+ id="x21-99058r44"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-99059r45"></a></span><span
class="ec-lmtt-9">}</span>
-
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.4:
+ </span><span
+class="content">etPhys
+ example
+ code</span></div><!--tex4ht:label?: x21-990004.2 -->
+
+
</div>
-<!--l. 409--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-1"
-class="td11">
- <!--l. 410--><p class="noindent" >Conjugated
- Replicated
- Class
- Relay
- Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-11-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-11-3"
-class="td11">
- <!--l. 412-->
- <a
- id="x21-89106r12"></a>
- <a
- id="x21-89107"></a>
- <div class="lstlisting" id="listing-19"><span class="label"><a
- id="x21-89108r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
+<!--l. 67--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">4.2.4 </span> <a
+ id="x21-1000004.2.4"></a>The Mapping Model</h4>
+<!--l. 70--><p class="noindent" >The last model finally combines all this information by mapping logical to physical entities.
+</p>
+<!--l. 72--><div class="lstinputlisting">
+<a
+ id="x21-100001r5"></a>
+<a
+ id="x21-100002"></a>
+<span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100003r1"></a></span><span
+class="ec-lmssbx-10x-x-90">MappingModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ActorClass6</span><span
+class="ec-lmtt-9">test</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89109r2"></a></span><span
+ id="x21-100004r2"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100005r3"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">etphys</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100006r4"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">import</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">test</span><span
+class="ec-lmtt-9">.*</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">from</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">-</span><span
+class="ec-lmtt-9">example</span><span
+class="ec-lmtt-9">.</span><span
+class="ec-lmtt-9">room</span><span
+class="ec-lmtt-9">"</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100007r5"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100008r6"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Mapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">Main</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">MainPhys</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100009r7"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subA</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">pc1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89110r3"></a></span><span
+ id="x21-100010r8"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">conjugated</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Port</span><span
+class="ec-lmtt-9">ThreadMapping</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">port19</span><span
-class="ec-lmtt-9">[3]:</span><span
+class="ec-lmtt-9">dflt</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ProtocolClass1</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89111r4"></a></span><span
+ id="x21-100011r9"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">thread2</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100012r10"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89112r5"></a></span><span
+ id="x21-100013r11"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subB</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">mc</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89113r6"></a></span><span
+ id="x21-100014r12"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">dflt</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100015r13"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">ThreadMapping</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">extra</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">-&#x003E;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">main</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100016r14"></a></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x21-100017r15"></a></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x21-89114r7"></a></span><span
+ id="x21-100018r16"></a></span><span
class="ec-lmtt-9">}</span>
-
+<br />
+ <div class="caption"
+><span class="id">Listing&#x00A0;4.5:
+ </span><span
+class="content">etMap
+ example
+ code</span></div><!--tex4ht:label?: x21-1000004.2 -->
</div>
-<!--l. 423--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-12-1"
-class="td11"> </td>
-
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-13-1"
-class="td11"> </td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-14-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-15-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-15-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-5-16-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-5-16-1"
-class="td11">
- <!--l. 424--><p class="noindent" > </p></td>
-</tr>
-</table></div>
-<!--l. 427--><p class="noindent" >
+<!--l. 74--><p class="noindent" >The result of the mapping is also depicted in above tree diagram (figure <a
+href="#x21-970505">4.5<!--tex4ht:ref: fig:instance_tree --></a>) of the instances. All actor instances (the white
+boxes) are mapped to a node and a thread running on this node (shown as @<span
+class="ec-lmsso-10">node </span>: <span
+class="ec-lmsso-10">thread</span>).
+
+
</p>
-<h5 class="subsubsectionHead"><a
- id="x21-900004.3.3"></a>Reference Ports</h5>
-<!--l. 429--><p class="noindent" >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><!--l. 432--><p class="noindent" >The table <a
-href="#x21-900014">4.4<!--tex4ht:ref: tab:reference_port_notation --></a> shows all kinds of reference ports with textual and graphical notation.
-</p>
-<div class="table">
-
-
-<!--l. 435--><p class="noindent" ><a
- id="x21-900014"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;4.4: </span><span
-class="content">Reference Port Notation</span></div><!--tex4ht:label?: x21-900014 -->
-<div class="tabular"> <table id="TBL-10" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-10-1g"><col
-id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col
-id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col
-id="TBL-10-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1"
-class="td11"> <span
-class="ec-lmssbx-10">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3"
-class="td11"> <span
-class="ec-lmssbx-10">Textual Notation </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1"
-class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2"
-class="td11"> <img
-src="images/040-ReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1"
-class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2"
-class="td11"> <img
-src="images/040-ConjugatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1"
-class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2"
-class="td11"> <img
-src="images/040-ReplicatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1"
-class="td11"> Conjugated Replicated </td>
-</tr><tr
- style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1"
-class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2"
-class="td11"> <img
-src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3"
-class="td11"> <span
-class="ec-lmsso-10">implicit </span></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
-</div>
-
-
-<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse16.html" >next</a>] [<a
+<!--l. 83--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch5.html" >next</a>] [<a
href="etrice-docse14.html" >prev</a>] [<a
href="etrice-docse14.html#tailetrice-docse14.html" >prev-tail</a>] [<a
href="etrice-docse15.html" >front</a>] [<a
href="etrice-docch4.html#etrice-docse15.html" >up</a>] </p></div>
-<!--l. 450--><p class="noindent" ><a
- id="tailetrice-docse15.html"></a> </p>
+<!--l. 83--><p class="noindent" ><a
+ id="tailetrice-docse15.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
index 4baee32..cee5d9b 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html
@@ -4,409 +4,158 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>DataClass</title>
+<head><title>Architecture</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 450--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse17.html" >next</a>] [<a
-href="etrice-docse15.html" >prev</a>] [<a
-href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="#tailetrice-docse16.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse16.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.4 </span> <a
- id="x22-910004.4"></a>DataClass</h3>
-<!--l. 452--><p class="noindent" >
+href="etrice-docch5.html#etrice-docse16.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.1 </span> <a
+ id="x23-1020005.1"></a>Architecture</h3>
+<!--l. 3--><p class="noindent" >The basic components of eTrice are depicted in the following diagram.
+</p><!--l. 5--><p class="noindent" ><img
+src="images/200-components.jpg" alt="PIC"
+ />
+</p><!--l. 7--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in subsequent
+sections.
+</p><!--l. 10--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.4.1 </span> <a
- id="x22-920004.4.1"></a>Description</h4>
-<!--l. 454--><p class="noindent" >The <span id="textcolor47"><span
-class="ec-lmssbx-10">DataClass</span></span> 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
-<span id="textcolor48"><span
-class="ec-lmssbx-10">ProtocolClass</span></span>).
-</p><!--l. 458--><p class="noindent" >
+<h4 class="subsectionHead"><span class="titlemark">5.1.1 </span> <a
+ id="x23-1030005.1.1"></a>Editor and Generator Components</h4>
+ <ul class="itemize1">
+ <li class="itemize">core
+ <ul class="itemize2">
+ <li class="itemize">core.room
+ is an Xtext based language called ROOM. It consists of the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room</span>
+ and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. ROOM is the basic modeling language of eTrice.
+ </li>
+ <li class="itemize">core.config is an Xtext based language called Config. It consists of
+ the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. Config
+ is a language designed for the data configuration of model
+ </li>
+ <li class="itemize">core.etphys is an
+ Xtext based language called etPhys. It consists of the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys </span>and
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. etPhys is a language designed for the description of physical
+ systems onto which the logical ROOM systems are deployed.
+ </li>
+ <li class="itemize">core.etmap is an Xtext based language called etMap. It consists of
+ the plug-ins <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap </span>and <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. etMap is
+ a language designed for the mapping of logical to physical systems.
+
+
+ </li>
+ <li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. It consists of the plugin
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.genmodel</span>. A Room model can be transformed into a genmodel which allows
+ easy access to implicit relations of the Room model.</li></ul>
+ </li>
+ <li class="itemize">ui
+ <ul class="itemize2">
+ <li class="itemize">textual
+ <ul class="itemize3">
+ <li class="itemize">room.ui is the ui counterpart of core.room.
+ It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE concepts
+ like content assist, error markers and navigation by hyper links for the Room language.
+ </li>
+ <li class="itemize">config.ui is the ui
+ counterpart of core.config. It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. This
+ plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
+ Config language.
+ </li>
+ <li class="itemize">etphys.ui is the ui
+ counterpart of core.etphys. It consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. This
+ plug-in realizes IDE concepts like content assist, error markers and navigation by hyper links for the
+ etPhys language.
+ </li>
+ <li class="itemize">etmap.ui is the ui counterpart of core.etmap. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. This plug-in realizes IDE concepts like content assist, error
+ markers and navigation by hyper links for the etPhys language.</li></ul>
+ </li>
+ <li class="itemize">graphical
+ <ul class="itemize3">
+ <li class="itemize">ui.common is a set of common code for the two diagram editors. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.common</span>.
+ </li>
+ <li class="itemize">ui.commands encapsulates some commands related to the navigation between eTrice editors. It
+ consists of the plug-in <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.commands</span>.
+ </li>
+ <li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.structure</span>.
+ </li>
+ <li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.ui.behavior</span>.</li></ul>
+ </li></ul>
+ </li>
+ <li class="itemize">generators
+ <ul class="itemize2">
+ <li class="itemize">generator is a set of general classes and language independent parts of all generators. It consists of the
+ plug-in <span
+class="ec-lmsso-10">org.eclipse.etrice.generator</span>.
+ </li>
+ <li class="itemize">generator.c is the generator for the ANSI-C target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.c</span>.
+ </li>
+ <li class="itemize">generator.cpp is the generator for the C++ target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.cpp</span>.
+ </li>
+ <li class="itemize">generator.java is the generator for the Java target language. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.java</span>.
+
+
+ </li>
+ <li class="itemize">generator.doc is the generator for the model documentation. It consists of the plug-in
+ <span
+class="ec-lmtt-10">org.eclipse.etrice.generator.doc</span>.</li></ul>
+ </li></ul>
+<!--l. 82--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.4.2 </span> <a
- id="x22-930004.4.2"></a>Notation</h4>
-<!--l. 460--><p class="noindent" >Example: DataClass using PrimitiveTypes
+<h4 class="subsectionHead"><span class="titlemark">5.1.2 </span> <a
+ id="x23-1040005.1.2"></a>Runtimes</h4>
+<!--l. 84--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The C++ runtime is still a prototype. The runtimes are libraries written
+in the target language against which the generated code is compiled.
+</p><!--l. 88--><p class="noindent" >
</p>
-<!--l. 462-->
-<div class="lstlisting" id="listing-20"><span class="label"><a
- id="x22-93001r1"></a></span><span
-class="ec-lmssbx-10x-x-90">DataClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93002r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93003r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float32</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">another</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93004r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93005r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93006r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">()</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93007r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93008r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93009r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">no</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93010r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">void</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93011r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93012r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93013r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">argument</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93014r14"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation3</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">float64</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93015r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93016r16"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93017r17"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-<!--l. 483--><p class="noindent" >Example: DataClass using other DataClasses:
+<h4 class="subsectionHead"><span class="titlemark">5.1.3 </span> <a
+ id="x23-1050005.1.3"></a>Unit Tests</h4>
+<!--l. 90--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests.
+
+
</p>
-<!--l. 485-->
-<div class="lstlisting" id="listing-21"><span class="label"><a
- id="x22-93018r1"></a></span><span
-class="ec-lmssbx-10x-x-90">DataClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass2</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93019r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">type</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93020r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">attribute</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">of</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93021r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93022r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93023r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation1</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93024r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93025r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93026r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">//</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">arguments</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">and</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">return</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">value</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">reference</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">except</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">for</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">primitive</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">types</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93027r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Operation</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">operation2</span><span
-class="ec-lmtt-9">(</span><span
-class="ec-lmtt-9">Param1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">int32</span><span
-class="ec-lmtt-9">,</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Param2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">)</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DataClass1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93028r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">UserCodeLine1</span><span
-class="ec-lmtt-9">"</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93029r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x22-93030r13"></a></span><span
-class="ec-lmtt-9">}</span>
-</div>
-
-
-<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 92--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse17.html" >next</a>] [<a
-href="etrice-docse15.html" >prev</a>] [<a
-href="etrice-docse15.html#tailetrice-docse15.html" >prev-tail</a>] [<a
+href="etrice-docch5.html" >prev</a>] [<a
+href="etrice-docch5.html#tailetrice-docch5.html" >prev-tail</a>] [<a
href="etrice-docse16.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse16.html" >up</a>] </p></div>
-<!--l. 502--><p class="noindent" ><a
+href="etrice-docch5.html#etrice-docse16.html" >up</a>] </p></div>
+<!--l. 92--><p class="noindent" ><a
id="tailetrice-docse16.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
index 29b9d64..002846a 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html
@@ -4,498 +4,391 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Layering</title>
+<head><title>Component Overview</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 502--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse18.html" >next</a>] [<a
+<!--l. 92--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse16.html" >prev</a>] [<a
href="etrice-docse16.html#tailetrice-docse16.html" >prev-tail</a>] [<a
href="#tailetrice-docse17.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse17.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.5 </span> <a
- id="x23-940004.5"></a>Layering</h3>
-<!--l. 504--><p class="noindent" >
+href="etrice-docch5.html#etrice-docse17.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">5.2 </span> <a
+ id="x24-1060005.2"></a>Component Overview</h3>
+<!--l. 94--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.5.1 </span> <a
- id="x23-950004.5.1"></a>Description</h4>
-<!--l. 506--><p class="noindent" >In addition to the actor containment hierarchies, layering provides another method to hierarchically structure a
-software system. Layering and actor hierarchies with port to port connections can be mixed on every level of
-granularity.
-</p><!--l. 510--><p class="noindent" >
- </p><ol class="enumerate1" >
- <li
- class="enumerate" id="x23-95002x1">an actor class can define a Service Provision Point (<span id="textcolor49"><span
-class="ec-lmssbx-10">SPPRef</span></span>) to publish a specific service, defined
- by a protocol class
+<h4 class="subsectionHead"><span class="titlemark">5.2.1 </span> <a
+ id="x24-1070005.2.1"></a>Room Language Overview</h4>
+<!--l. 96--><p class="noindent" >We assume that the reader is familiar with the Xtext concepts. So we concentrate on the details of our implementation that
+are worth to be pointed out.
+</p><!--l. 99--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1080005.2.1"></a>Model Tweaks</h5>
+<!--l. 101--><p class="noindent" >The Room EMF model is inferred from the grammar. However, this powerful mechanism has to be tweaked at some places.
+This is done in the <span
+class="ec-lmsso-10">/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/RoomPostprocessor.ext </span>which is written in the
+legacy Xtend language.
+</p><!--l. 107--><p class="noindent" >The following parts of the model are changed or added: </p>
+ <ul class="itemize1">
+ <li class="itemize">the default
+
+
+ <div class="verbatim" id="verbatim-7">
+ multiplicity
+</div>
+ <!--l. 109--><p class="nopar" > of the <span
+class="ec-lmtt-10">Port </span>is set to 1
+ </p></li>
+ <li class="itemize">the operation <span
+class="ec-lmtt-10">isReplicated </span>is added to the <span
+class="ec-lmtt-10">Port</span>
+ </li>
+ <li class="itemize">the default <span
+class="ec-lmtt-10">size </span>of the <span
+class="ec-lmtt-10">ActorRef </span>is set to 1
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getName </span>is add to the <span
+class="ec-lmtt-10">State </span>class
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getName </span>is add to the <span
+class="ec-lmtt-10">StateGraphItem </span>class
+ </li>
+ <li class="itemize">an operation <span
+class="ec-lmtt-10">getGeneralProtocol </span>is added to the <span
+class="ec-lmtt-10">InterfaceItem</span></li></ul>
+<!--l. 117--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1090005.2.1"></a>Imports by URI Using Namespaces</h5>
+<!--l. 119--><p class="noindent" >The import mechanism employed is based on URIs. This is configured for one part in the GenerateRoom.mwe2 model
+workflow by setting the fragments ImportURIScopingFragment and ImportUriValidator). For the other part it is configured in
+the Guice modules by binding </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">PlatformRelativeUriResolver </span>&#8211; this class tries to convert the import URI into a platform relative URI. It
+ also replaces environment variables written in $ with their respective values.
</li>
- <li
- class="enumerate" id="x23-95004x2">an actor class can define a Service Access Point (<span id="textcolor50"><span
-class="ec-lmssbx-10">SAPRef</span></span>) if it needs a service, defined by a
- protocol class
+ <li class="itemize"><span
+class="ec-lmtt-10">ImportedNamespaceAwareLocalScopeProvider </span>&#8211; this is a standard scope provider which is aware of
+ namespaces
</li>
- <li
- class="enumerate" id="x23-95006x3">for a given actor hierarchy, a <span id="textcolor51"><span
-class="ec-lmssbx-10">LayerConnection</span></span> defines which SAP will be satisfied by (connected
- to) which SPP</li></ol>
-<!--l. 519--><p class="noindent" >
+ <li class="itemize"><span
+class="ec-lmtt-10">GlobalNonPlatformURIEditorOpener </span>&#8211; this editor opener tries to convert general URIs into platform URIs
+ because editors can only open platform URIs
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">ImportAwareHyperlinkHelper </span>&#8211; turns the URI part of an import into a navigatable hyper link</li></ul>
+<!--l. 132--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.5.2 </span> <a
- id="x23-960004.5.2"></a>Notation</h4>
-<!--l. 521--><p class="noindent" >For the graphical and textual notation refer to table <a
-href="#x23-960015">4.5<!--tex4ht:ref: tab:layering_notation --></a>
+<h5 class="subsubsectionHead"><a
+ id="x24-1100005.2.1"></a>Naming</h5>
+<!--l. 134--><p class="noindent" >Two classes provide object names used for link resolution and for labels. The <span
+class="ec-lmtt-10">RoomNameProvider </span>provides frequently used
+name strings, some of them are hierarchical like State paths. The <span
+class="ec-lmtt-10">RoomFragmentProvider </span>serves a more formal purpose
+since it provides a link between EMF models (as used by the diagram editors) and the textual model representation used by
+Xtext.
+
+
+</p><!--l. 140--><p class="noindent" >
</p>
-<div class="table">
-
-
-<!--l. 524--><p class="noindent" ><a
- id="x23-960015"></a></p><hr class="float" /><div class="float"
->
-
-
- <div class="caption"
-><span class="id">Table&#x00A0;4.5: </span><span
-class="content">Layering Notation</span></div><!--tex4ht:label?: x23-960015 -->
-<div class="tabular"> <table id="TBL-11" class="tabular"
-cellspacing="0" cellpadding="0" rules="groups"
-><colgroup id="TBL-11-1g"><col
-id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col
-id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col
-id="TBL-11-3" /></colgroup><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1"
-class="td11"> <!--l. 528--><p class="noindent" ><span
-class="ec-lmssbx-10">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2"
-class="td11"> <span
-class="ec-lmssbx-10">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-3"
-class="td11"> <!--l. 528--><p class="noindent" ><span
-class="ec-lmssbx-10">Textual Notation</span> </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1"
-class="td11">
- <div class="flushleft"
->
- <!--l. 530--><p class="noindent" >
- The layer
- connections in this
- model define which
- services are provided
- by the <span
-class="ec-lmsso-10">ServiceLayer</span>
- (<span
-class="ec-lmsso-10">digitalIO </span>and
- <span
-class="ec-lmsso-10">timer</span>)</p></div>
- <!--l. 533--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2"
-class="td11"> <img
-src="images/040-LayeringModel.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-3"
-class="td11"> <!--l. 537-->
- <div class="lstlisting" id="listing-22"><span class="label"><a
- id="x23-96002r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Mode1</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96003r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96004r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ServiceLayer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96005r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ApplicationLayer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96006r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96007r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ref</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Application</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Services</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">digitalIO</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96008r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96009r8"></a></span><span
-class="ec-lmtt-9">}</span>
-
+<h5 class="subsubsectionHead"><a
+ id="x24-1110005.2.1"></a>Helpers</h5>
+<!--l. 142--><p class="noindent" >The <span
+class="ec-lmtt-10">RoomHelpers </span>class provides a great deal of static methods that help retrieve frequently used information from the
+model. Among many, many others </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getAllEndPorts(ActorClass) </span>- returns a list of all end ports of an actor class including inherited ones
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getInheritedActionCode(Transition, ActorClass) </span>- get the inherited part of a transition&#8217;s action code
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getSignature(Operation) </span>- returns a string representing the operation signature suited for a label</li></ul>
+<!--l. 154--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1120005.2.1"></a>Validation</h5>
+<!--l. 156--><p class="noindent" >Validation is used from various places. Therefore all validation code is accumulated in the @ValidationUtil@ class. All methods
+are static and many of them return a Result object which contains information about the problem detected as well as object
+and feature as suited for most validation purposes.
+</p><!--l. 160--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">5.2.2 </span> <a
+ id="x24-1130005.2.2"></a>Config Language Overview</h4>
+<!--l. 162--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1140005.2.2"></a>Model Tweaks</h5>
+<!--l. 164--><p class="noindent" >A couple of operations are added to the ConfigModel </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getActorClassConfigs</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getActorInstanceConfigs</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getProtocolClassConfigs</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getSubSystemConfigs</span></li></ul>
+<!--l. 172--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1150005.2.2"></a>Imports by URI Using Namespaces</h5>
+<!--l. 174--><p class="noindent" >Imports are treated like in Room language, section <span
+class="ec-lmsso-10">Imports by URI Using Namespaces</span>.
+
+
+</p><!--l. 176--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1160005.2.2"></a>Util</h5>
+<!--l. 178--><p class="noindent" >A set of static utility methods can be found in the <span
+class="ec-lmtt-10">ConfigUtil </span>class.
+</p><!--l. 180--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">5.2.3 </span> <a
+ id="x24-1170005.2.3"></a>Aggregation Layer Overview</h4>
+<!--l. 182--><p class="noindent" >The eTrice Generator Model (genmodel) serves as an aggregation layer. Its purpose is to allow easy access to information
+which is implicitly contained in the Room model but not simple to retrieve. Examples of this are the state machine with
+inherited items or a list of all triggers active at a state in the order in which they will be evaluated or the actual peer port of
+an end port (following bindings through relay ports).
+</p><!--l. 188--><p class="noindent" >The Generator Model is created from a list of Room models by a call of the
+
+
+</p>
+<div class="verbatim" id="verbatim-8">
+createGeneratorModel(List&#x003C;RoomModel&#x003E;,&#x00A0;boolean)
</div>
-<!--l. 548--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1"
-class="td11">
- <div class="flushleft"
+<!--l. 190--><p class="nopar" >
+</p><!--l. 192--><p class="noindent" >method of the <span
+class="ec-lmtt-10">GeneratorModelBuilder </span>class.
+</p><!--l. 194--><p class="noindent" >The <span
+class="ec-lmtt-10">Root </span>object of the resulting Generator Model provides chiefly two things: </p>
+ <ul class="itemize1">
+ <li class="itemize">a tree of instances starting at each <span
+class="ec-lmtt-10">SubSystem </span>with representations of each <span
+class="ec-lmtt-10">ActorInstance </span>and <span
+class="ec-lmtt-10">PortInstance</span>
+ </li>
+ <li class="itemize">for each <span
+class="ec-lmtt-10">ActorClass </span>a corresponding <span
+class="ec-lmtt-10">ExpandedActorClass </span>with an explicit state machine containing all
+ inherited state graph items</li></ul>
+<!--l. 202--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1180005.2.3"></a>The Instance Model</h5>
+<!--l. 204--><p class="noindent" >The instance model allows easy access to instances including their unique paths and object IDs. Also it is possible to
+get a list of all peer port instances for each port instance without having to bother about port and actor
+replication.
+</p><!--l. 208--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1190005.2.3"></a>The Expanded Actor Class</h5>
+<!--l. 210--><p class="noindent" >The expanded actor class contains, as already mentioned, the complete state machine of the actor class. This considerably
+simplifies the task of state machine generation. Note that the generated code always contains the complete state machine of
+an actor. I.e. no target language inheritance is used to implement the state machine inheritance. Furthermore the
+<span
+class="ec-lmtt-10">ExpandedActorClass </span>gives access to </p>
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmtt-10">getIncomingTransitions(StateGraphNode) </span>&#8211; the set of incoming transition of a <span
+class="ec-lmtt-10">StateGraphNode </span>(<span
+class="ec-lmtt-10">State</span>,
+ <span
+class="ec-lmtt-10">ChoicePoint </span>or <span
+class="ec-lmtt-10">TransitionPoint</span>)
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getOutgoingTransitions(StateGraphNode) </span>&#8211; the set of outgoing transition of a <span
+class="ec-lmtt-10">StateGraphNode</span>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">getActiveTriggers(State) </span>&#8211; the triggers that are active in this <span
+class="ec-lmtt-10">State </span>in the order they are evaluated</li></ul>
+<!--l. 224--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1200005.2.3"></a>Transition Chains</h5>
+<!--l. 226--><p class="noindent" >By transition chains we denote a connected subset of the (hierarchical) state machine that starts with a transition starting at
+a state and continues over transitional state graph nodes (choice points and transition points) and continuation transitions
+until a state is reached. In general a transition chain starts at one state and ends in several states (the chain may branch in
+choice points). A <span
+class="ec-lmtt-10">TransitionChain </span>of a transition is retrieved by a call of <span
+class="ec-lmtt-10">getChain(Transition) </span>of the
+<span
+class="ec-lmtt-10">ExpandedActorClass</span>. The <span
+class="ec-lmtt-10">TransitionChain </span>accepts an <span
+class="ec-lmtt-10">ITransitionChainVisitor </span>which is called along the chain to
+generate the action codes of involved transitions and the conditional statements arising from the involved choice
+points.
+
+
+</p><!--l. 236--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">5.2.4 </span> <a
+ id="x24-1210005.2.4"></a>Generator Overview</h4>
+<!--l. 238--><p class="noindent" >There is one plug-in that consists of base classes and some generic generator parts which are re-used by all language specific
+generators
+</p><!--l. 241--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1220005.2.4"></a>Base Classes and Interfaces</h5>
+<!--l. 243--><p class="noindent" >We just want to mention the most important classes and interfaces.
+</p>
+ <ul class="itemize1">
+ <li class="itemize">
+ <div class="flushleft"
>
- <!--l. 549--><p class="noindent" >
- The
- implementation of
- the services (SPPs)
- can be delegated to
- sub actors. In this
- case the actor
- <span
-class="ec-lmsso-10">ServiceLayer </span>relays
- (delegates) the
- implementation
- services <span
-class="ec-lmsso-10">digitalIO</span>
- and <span
-class="ec-lmsso-10">timer </span>to sub
- actors</p></div>
- <!--l. 553--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2"
-class="td11"> <img
-src="images/040-LayeringServiceLayer.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-3"
-class="td11"> <!--l. 556-->
- <div class="lstlisting" id="listing-23"><span class="label"><a
- id="x23-96010r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ServiceLayer</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96011r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Interface</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96012r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SPP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timer</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96013r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SPP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalIO</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigitalIOProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96014r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96015r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96016r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Timer</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerService</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96017r8"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigIO</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DifitalIOService</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96018r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">relay_sap</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timer</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">Timer</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">timer</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96019r10"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">LayerConnection</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">relay_sap</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalIO</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">satisfied_by</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigIO</span><span
-class="ec-lmtt-9">.</span><span
-class="ec-lmtt-9">digitalIO</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96020r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96021r12"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 571--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1"
-class="td11">
- <div class="flushleft"
+<!--l. 246--><p class="noindent" >
+<span
+class="ec-lmtt-10">ITranslationProvider </span>&#8212; this interface is used by the <span
+class="ec-lmtt-10">DetailCodeTranslator </span>for the language dependent
+translation of e.g. port.message() notation in detail code</p></div>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">AbstractGenerator </span>&#8212; concrete language generators should derive from this base class
+ </li>
+ <li class="itemize">
+ <div class="flushleft"
>
- <!--l. 572--><p class="noindent" >
- Every Actor inside
- the
- <span
-class="ec-lmsso-10">ApplicationLayer</span>
- that contains an
- SAP with the same
- protocol as <span
-class="ec-lmsso-10">timer </span>or
- <span
-class="ec-lmsso-10">digitalIO </span>will be
- connected to the
- specified SPP</p></div>
- <!--l. 575--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2"
-class="td11"> <img
-src="images/040-LayeringApplicationLayer.png" alt="PIC"
- /> </td><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-3"
-class="td11"> <!--l. 578-->
- <div class="lstlisting" id="listing-24"><span class="label"><a
- id="x23-96022r1"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">ApplicationLayer</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96023r2"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96024r3"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function1</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">A</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96025r4"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function2</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">B</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96026r5"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function3</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">C</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96027r6"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">ActorRef</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">function4</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">D</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96028r7"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96029r8"></a></span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96030r9"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96031r10"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">A</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96032r11"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96033r12"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timerSAP</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96034r13"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96035r14"></a></span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96036r15"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96037r16"></a></span><span
-class="ec-lmssbx-10x-x-90">ActorClass</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">B</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96038r17"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">Structure</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96039r18"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">timerSAP</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">TimerProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96040r19"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmssbx-10x-x-90">SAP</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">digitalSAP</span><span
-class="ec-lmtt-9">:</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">DigitalIOProtocol</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96041r20"></a></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x23-96042r21"></a></span><span
-class="ec-lmtt-9">}</span>
-
-</div>
-<!--l. 602--><p class="noindent" > </p></td>
-</tr><tr
-class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
- style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1"
-class="td11"> </td></tr></table></div>
-
-
-</div><hr class="endfloat" />
-</div>
-
-
-<!--l. 606--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docse18.html" >next</a>] [<a
+<!--l. 250--><p class="noindent" >
+<span
+class="ec-lmtt-10">DefaultTranslationProvider </span>&#8212; a stub implementation of <span
+class="ec-lmtt-10">ITranslationProvider </span>from which clients may
+derive</p></div>
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">Indexed </span>&#8212; provides an indexed iterable of a given iterable
+ </li>
+ <li class="itemize"><span
+class="ec-lmtt-10">GeneratorBaseModule </span>&#8212; a Google Guice module that binds a couple of basic services. Concrete language generators
+ should use a module that derives from this</li></ul>
+<!--l. 257--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1230005.2.4"></a>Generic Generator Parts</h5>
+<!--l. 259--><p class="noindent" >The generic generator parts provide code generation blocks on a medium granularity. The language dependent top level
+generators embed those blocks in a larger context (file, class, ...). Language dependent low level constructs are provided by
+means of an <span
+class="ec-lmtt-10">ILanguageExtension</span>. This extension and other parts of the generator be configured using Google Guice
+dependency injection.
+</p>
+<!--l. 264--><p class="noindent" ><span class="paragraphHead"><a
+ id="x24-1240005.2.4"></a><span
+class="ec-lmssbx-10">GenericActorClassGenerator</span></span>
+The <span
+class="ec-lmtt-10">GenericActorClassGenerator </span>generates constants for the interface items of a actor. Those constants are used by the
+generated state machine.
+
+
+</p>
+<!--l. 269--><p class="noindent" ><span class="paragraphHead"><a
+ id="x24-1250005.2.4"></a><span
+class="ec-lmssbx-10">GenericProtocolClassGenerator</span></span>
+The <span
+class="ec-lmtt-10">GenericProtocolClassGenerator </span>generates message ID constants for a protocol.
+</p>
+<!--l. 273--><p class="noindent" ><span class="paragraphHead"><a
+ id="x24-1260005.2.4"></a><span
+class="ec-lmssbx-10">GenericStateMachineGenerator</span></span>
+</p>
+<div class="flushleft"
+>
+<!--l. 275--><p class="noindent" >
+The <span
+class="ec-lmtt-10">GenericStateMachineGenerator </span>generates the complete state machine implementation. The skeleton of the
+generated code is</p></div>
+ <ul class="itemize1">
+ <li class="itemize">definition state ID constants
+ </li>
+ <li class="itemize">definition of transition chain constants
+ </li>
+ <li class="itemize">definition of trigger constants
+ </li>
+ <li class="itemize">entry, exit and action code methods
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">exitTo </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">executeTransitionChain </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">enterHistory </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">executeInitTransition </span>method
+ </li>
+ <li class="itemize">the <span
+class="ec-lmtt-10">receiveEvent </span>method</li></ul>
+<!--l. 290--><p class="noindent" >The state machine works as follows. The main entry method is the <br
+class="newline" /><span
+class="ec-lmtt-10">receiveEvent </span>method. This is the case for both, data driven (polled) and event driven state machines. Then a number of
+nested switch/case statements evaluates trigger conditions and derives the transition chain that is executed. If a
+trigger fires then the <span
+class="ec-lmtt-10">exitTo </span>method is called to execute all exit codes involved. Then the transition chain
+action codes are executed and the choice point conditions are evaluated in the <span
+class="ec-lmtt-10">executeTransitionChain</span>
+method. Finally the history of the state where the chain ends is entered and all entry codes are executed by
+<span
+class="ec-lmtt-10">enterHistory</span>.
+</p><!--l. 298--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1270005.2.4"></a>The Java Generator</h5>
+<!--l. 300--><p class="noindent" >The Java generator employs the generic parts of the generator. The <span
+class="ec-lmtt-10">JavaTranslationProvider </span>is very simple and only
+handles the case of sending a message from a distinct replicated port: <span
+class="ec-lmtt-10">replPort[2].message()</span>. Other cases are handled by
+the base class by returning the original text.
+
+
+</p><!--l. 304--><p class="noindent" >The <span
+class="ec-lmtt-10">DataClassGen </span>uses Java inheritance for the generated data classes. Otherwise it is pretty much straight
+forward.
+</p><!--l. 307--><p class="noindent" >The <span
+class="ec-lmtt-10">ProtocolClassGen </span>generates a class for the protocol with nested static classes for regular and conjugated ports and
+similar for replicated ports.
+</p><!--l. 310--><p class="noindent" >The <span
+class="ec-lmtt-10">ActorClassGen </span>uses Java inheritance for the generated actor classes. So ports, SAPs and attributes and detail code
+methods are inherited. Not inherited is the state machine implementation.
+</p><!--l. 313--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1280005.2.4"></a>The ANSI-C Generator</h5>
+<!--l. 315--><p class="noindent" >The C generator translates data, protocol and actor classes into structs together with a set of methods that operate on them
+and receive a pointer to those data (called <span
+class="ec-lmtt-10">self </span>in analogy to the implicit C++ <span
+class="ec-lmtt-10">this </span>pointer). No dynamic memory
+allocation is employed. All actor instances are statically initialized. One of the design goals for the generated C code was an
+optimized footprint in terms of memory and performance to be able to utilize modeling with ROOM also for tiny low end
+micro controllers.
+</p><!--l. 322--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x24-1290005.2.4"></a>The Documentation Generator</h5>
+<!--l. 324--><p class="noindent" >The documentation generator creates documentation in LaTex format which can be converted into PDF and many other
+formats.
+</p>
+<!--l. 87--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse16.html" >prev</a>] [<a
href="etrice-docse16.html#tailetrice-docse16.html" >prev-tail</a>] [<a
href="etrice-docse17.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse17.html" >up</a>] </p></div>
-<!--l. 606--><p class="noindent" ><a
- id="tailetrice-docse17.html"></a> </p>
+href="etrice-docch5.html#etrice-docse17.html" >up</a>] </p></div>
+<!--l. 87--><p class="noindent" ><a
+ id="tailetrice-docse17.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
index eb8c890..e51cbc9 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html
@@ -4,146 +4,413 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Setting up the Workspace for C Projects</title>
+<head><title>Introduction to the ROOM Language</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch3.html" >next</a>] [<a
+href="etrice-docch2.html" >next</a>] [<a
href="etrice-docse1.html" >prev</a>] [<a
href="etrice-docse1.html#tailetrice-docse1.html" >prev-tail</a>] [<a
href="#tailetrice-docse2.html">tail</a>] [<a
-href="etrice-docch2.html#etrice-docse2.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">2.2 </span> <a
- id="x6-60002.2"></a>Setting up the Workspace for C Projects</h3>
-<!--l. 3--><p class="noindent" >Before you can start with C, some preconditions must be fulfilled:
- </p><dl class="description"><dt class="description">
- </dt><dd
-class="description">A C compiler must be installed on your machine (all tests and tutorials are based on MinGW)
- </dd><dt class="description">
- </dt><dd
-class="description">The CDT-Eclipse plugin must be installed as the C development environment.</dd></dl>
-<!--l. 10--><p class="noindent" >Once the CDT is installed, the C runtime and model library must be imported. (<span
-class="ec-lmsso-10">File-&#x003E;New-&#x003E;Project-&#x003E;</span><span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span>
-select <span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">C runtime </span>/ <span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">C modellib</span>)
-</p><!--l. 13--><p class="noindent" >The resulting workspace should look like this:
-</p><!--l. 15--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC01.png" alt="PIC"
- />
-</p><!--l. 19--><p class="noindent" >
+href="etrice-docch1.html#etrice-docse2.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">1.2 </span> <a
+ id="x5-60001.2"></a>Introduction to the ROOM Language</h3>
+<!--l. 3--><p class="noindent" >
</p>
-<h4 class="subsectionHead"><span class="titlemark">2.2.1 </span> <a
- id="x6-70002.2.1"></a>Testing the environment</h4>
-<!--l. 21--><p class="noindent" >To verify the C tool chain you should generate and run the Hello World example program of the CDT. Activate
-the <span
-class="ec-lmsso-10">C/C++ </span>perspective.
-</p><!--l. 24--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC03.png" alt="PIC"
- />
-</p><!--l. 27--><p class="noindent" >From the main menu select <span
-class="ec-lmsso-10">File-&#x003E;New-&#x003E;C Project</span>.
-</p><!--l. 29--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC02.png" alt="PIC"
- />
-</p><!--l. 32--><p class="noindent" >Name the project. Select an <span
-class="ec-lmsso-10">Executable-&#x003E;Hello World ANSI C </span>as project type, <span
-class="ec-lmsso-10">MinGW GCC </span>as tool chain and
-click <span
-class="ec-lmsso-10">Finish</span>.
-</p><!--l. 35--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC04.png" alt="PIC"
+<h4 class="subsectionHead"><span class="titlemark">1.2.1 </span> <a
+ id="x5-70001.2.1"></a>Scope of ROOM</h4>
+<!--l. 5--><p class="noindent" >This chapter will give a rough overview of what ROOM (<span
+class="ec-lmssbx-10">R</span>eal-time <span
+class="ec-lmssbx-10">O</span>bject-<span
+class="ec-lmssbx-10">O</span>riented <span
+class="ec-lmssbx-10">M</span>odeling) is and what it is good for. It
+will try to answer the following questions:
+</p>
+ <ul class="itemize1">
+ <li class="itemize">Where does it come from?
+ </li>
+ <li class="itemize">Which kind of SW-Systems will be addressed?
+ </li>
+ <li class="itemize">What is the relation between object oriented programming and ROOM?
+
+
+ </li>
+ <li class="itemize">What are the benefits of ROOM?
+ </li>
+ <li class="itemize">Which consequences must be taken into account?</li></ul>
+<!--l. 17--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-80001.2.1"></a>Where does it come from?</h5>
+<!--l. 19--><p class="noindent" >ROOM was developed in the 1990th on the background of the upcoming mobile applications with the goal to manage the
+complexity of such huge SW-Systems. From the very beginning ROOM has focused on a certain type of SW-Systems and is,
+in contrast to the UML, well suited for this kind of systems. In this sense, ROOM is a DSL (Domain Specific Language) for
+distributed, event driven, real time systems.
+</p><!--l. 24--><p class="noindent" >Bran Selic, Garth Gullekson and Paul T. Ward have published the concepts 1994 in the book <span
+class="ec-lmssbx-10">Real-Time Object-Oriented</span>
+<span
+class="ec-lmssbx-10">Modeling</span>. The company <span
+class="ec-lmsso-10">ObjecTime</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup> developed a ROOM tool which was taken over by <span
+class="ec-lmsso-10">Rational SW</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup> and later on by
+<span
+class="ec-lmsso-10">IBM</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup>. The company <span
+class="ec-lmsso-10">Protos Software GmbH</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup> also developed a ROOM tool called <span
+class="ec-lmsso-10">Trice</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup> for control software
+for production machines and automotive systems. <span
+class="ec-lmsso-10">Trice</span><sup class="textsuperscript"><span
+class="ec-lmss-9">TM</span></sup> is the predecessor of eTrice (see Introduction to
+eTrice).
+</p><!--l. 32--><p class="noindent" >From our point of view ROOM provides still the clearest, simplest, most complete and best suited modeling concepts for the
+real time domain. All later proposals like the UML do not fit as well to this kind of problems.
+</p><!--l. 36--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-90001.2.1"></a>Which kind of SW-Systems will be addressed?</h5>
+<!--l. 38--><p class="noindent" >As mentioned before ROOM addresses distributed, event driven, real time systems. But what is a <span
+class="ec-lmsso-10">real time system</span>? ROOM
+defines a set of properties which are typical for a real time system. These properties are:
+</p>
+ <ul class="itemize1">
+ <li class="itemize">Timeliness
+ </li>
+ <li class="itemize">Dynamic internal structure
+ </li>
+ <li class="itemize">Reactiveness
+ </li>
+ <li class="itemize">Concurrency
+ </li>
+ <li class="itemize">Distribution
+ </li>
+ <li class="itemize">Reliability</li></ul>
+<!--l. 51--><p class="noindent" >Each of these properties has potential to make SW development complex. If a given system can be characterized with a
+combination of or all of these properties, ROOM might be applied to such a system.
+</p><!--l. 54--><p class="noindent" >As an example take a look at a washing machine. The system has to react to user interactions, has to handle
+some error conditions like a closed water tap or a defective lye pump. It has to react simultaneously to all
+these inputs. It has to close the water valve within a certain time to avoid flooding the basement. So, the
+system can be characterized as timely, concurrent and reactive. As long as the washing machine does not
+transform to a laundry drier by itself, the system has no dynamic internal structure and as long as all functions
+are running on a single micro controller the (SW)-system is not distributed. ROOM fits perfect to such a
+system.
+
+
+</p><!--l. 62--><p class="noindent" >A SW system which mainly consists of data transformations like signal/image processing or a loop controller (e.g. a PID
+controller) cannot be characterized with any of the above mentioned properties. However, in the real world most
+of the SW systems will be a combination of both. ROOM can be combined with such systems, so that for
+example an actor provides a <span
+class="ec-lmsso-10">run to completion </span>context for calculating an image processing algorithm or a PID
+controller.
+</p><!--l. 68--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-100001.2.1"></a>What is the relation between OOP and ROOM?</h5>
+<!--l. 70--><p class="noindent" >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><!--l. 75--><p class="noindent" >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><!--l. 79--><p class="noindent" ><img
+src="images/010-RoomIntroduction02.png" alt="PIC"
/>
-</p><!--l. 38--><p class="noindent" >Select the new project and click the build button (or right click the project and select <span
-class="ec-lmsso-10">Build Project</span>)
-</p><!--l. 41--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC05.png" alt="PIC"
+</p><!--l. 81--><p class="noindent" >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 <span
+class="ec-lmsso-10">run to completion </span>semantics. That makes developing of business logic easy
+and safe (see <a
+href="#x5-130001.2.2">1.2.2<!--tex4ht:ref: sec:basic_concepts --></a> <a
+href="#x5-130001.2.2">Basic Concepts<!--tex4ht:ref: sec:basic_concepts --></a>). The logical machine provides an encapsulation shell including concurrency issues (see
+<a
+href="#x5-170001.2.2">1.2.2<!--tex4ht:ref: sec:run_to_completion --></a> <a
+href="#x5-170001.2.2">Run to Completion<!--tex4ht:ref: sec:run_to_completion --></a>).
+</p><!--l. 86--><p class="noindent" ><img
+src="images/010-RoomIntroduction03.png" alt="PIC"
/>
-</p><!--l. 44--><p class="noindent" >The binary should be generated. Run the binary as <span
-class="ec-lmsso-10">Local C/C++ Application</span>.
-</p><!--l. 46--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC06.png" alt="PIC"
+</p><!--l. 88--><p class="noindent" >This thinking of an object is much more general than the classic one.
+</p><!--l. 90--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-110001.2.1"></a>What are the benefits of ROOM?</h5>
+<!--l. 92--><p class="noindent" >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><!--l. 97--><p class="noindent" >In detail: </p>
+ <ul class="itemize1">
+ <li class="itemize">ROOM models contain well defined interfaces (protocols), which makes it easy to re-use components in different
+ applications or e.g. in a test harness.
+ </li>
+ <li class="itemize">Graphical modeling makes it easy to understand, maintain and share code with other developers
+ </li>
+ <li class="itemize">Higher abstraction in combination with automated code generation provides very efficient mechanisms to the
+ developer.
+ </li>
+ <li class="itemize">ROOM provides graphical model execution, which makes it easy to understand the application or find defects
+ in a very early phase.</li></ul>
+<!--l. 108--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-120001.2.1"></a>Which consequences must be taken into account?</h5>
+
+
+<!--l. 110--><p class="noindent" >Generating code from models will introduce some overhead in terms of memory footprint as well as performance. For most
+systems the overhead will be negligible. However, the decision for using ROOM should be made explicitly and it is always a
+trade off between development costs, time to market and costs in terms of a little bit more of memory and performance.
+Thanks to the powerful component model, ROOM is especially well suited for the development of software product lines with
+their need for reusable core assets.
+</p><!--l. 116--><p class="noindent" >Care must be taken during the introduction of the new methodology. Due to the fact that ROOM provides
+a shift of the object paradigm, developers and teams need a phase of adaption. Every benefit comes at a
+price.
+</p><!--l. 119--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">1.2.2 </span> <a
+ id="x5-130001.2.2"></a>Basic Concepts</h4>
+<!--l. 122--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-140001.2.2"></a>Actor, Port, Protocol</h5>
+<!--l. 124--><p class="noindent" >The basic elements of ROOM are the actors with their ports and protocols. The protocol provides a formal interface
+description. The port is an interaction point where the actor interacts with its outside world. Each port has exactly one
+protocol attached. The sum of all ports builds up the complete interface of an actor. Each port can receive messages, with or
+without data, which are defined in the attached protocol. Each message will be handled by the actor&#8217;s behavior (state
+machine) or will be delegated to the actor&#8217;s internal structure.
+</p>
+<div class="table">
+
+
+<!--l. 132--><p class="noindent" ><a
+ id="x5-140011"></a></p><hr class="float" /><div class="float"
+>
+
+
+ <div class="caption"
+><span class="id">Table&#x00A0;1.1: </span><span
+class="content">Actor and Protocol Class Example</span></div><!--tex4ht:label?: x5-140011 -->
+<div class="tabular"> <table id="TBL-2" class="tabular"
+cellspacing="0" cellpadding="0" rules="groups"
+><colgroup id="TBL-2-1g"><col
+id="TBL-2-1" /></colgroup><colgroup id="TBL-2-2g"><col
+id="TBL-2-2" /></colgroup><tr
+class="hline"><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"
+class="td11"> <img
+src="images/040-ActorClass.png" alt="PIC"
+ /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-2"
+class="td11"> <img
+src="images/040-ProtocolClassTextualNotation.png" alt="PIC"
+ /> </td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"
+class="td11"> <span
+class="ec-lmssbx-10">Actor with sub actors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-2"
+class="td11"> <span
+class="ec-lmssbx-10">Protocol definition </span></td>
+</tr><tr
+class="hline"><td><hr /></td><td><hr /></td></tr><tr
+ style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"
+class="td11"> </td></tr></table>
+</div>
+
+
+</div><hr class="endfloat" />
+</div>
+<!--l. 140--><p class="noindent" >The actor provides access protection for its own attributes (including complex types, i.e. classical objects), including
+concurrency protection. An actor has neither public attributes nor public operations. The only interaction with the outside
+world takes place via interface ports. This ensures a high degree of re-usability on the actor level and provides an effective and
+safe programming model to the developer.
+</p><!--l. 145--><p class="noindent" >Receiving a message via a port will trigger the internal state machine. A transition will be executed depending on the message
+and the current state. Within this transition, detail level code will be executed and response messages can be
+sent.
+</p><!--l. 149--><p class="noindent" >With this model, a complex behavior can be divided into many relatively simple, linked actors. To put it the other way round:
+The complex behavior will be provided by a network of relatively simple components which are communicating with each
+other via well defined interfaces.
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-150001.2.2"></a>Hierarchy in Structure and Behavior</h5>
+<!--l. 156--><p class="noindent" >ROOM provides two types of hierarchy. Behavioral hierarchy and structural hierarchy. Structural hierarchy means that actors
+can be nested to arbitrary depth. Usually you will add more and more details to your application with each nesting level. That
+means you can focus yourself on any level of abstraction with always the same element, the actor. Structural hierarchy
+provides a powerful mechanism to divide your problem in smaller pieces, so that you can focus on the level of abstraction you
+want to work on.
+</p><!--l. 162--><p class="noindent" >The actor&#8217;s behavior will be described with a state machine. A state in turn may contain sub states. This is
+another possibility to focus on an abstraction level. Take the simple FSM from the blinky actor from the blinky
+tutorial.
+</p><!--l. 166--><p class="noindent" >Top level:
+</p><!--l. 168--><p class="noindent" ><img
+src="images/020-Blinky15.png" alt="PIC"
/>
-</p><!--l. 49--><p class="noindent" >Verify the output.
-</p><!--l. 51--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC07.png" alt="PIC"
+</p><!--l. 170--><p class="noindent" ><span
+class="ec-lmsso-10">blinking </span>Sub machine:
+</p><!--l. 172--><p class="noindent" ><img
+src="images/020-Blinky151.png" alt="PIC"
/>
-</p><!--l. 54--><p class="noindent" >Remember these steps. In the following Tutorials these steps will be referenced as <span
-class="ec-lmsso-10">build and run</span>.
-
-
-</p><!--l. 57--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">2.2.2 </span> <a
- id="x6-80002.2.2"></a>Building the C runtime system</h4>
-<!--l. 59--><p class="noindent" >The C runtime system contains some basic functionalities to run the generated models. The so called runtime
-is common for all C projects. The requirements for several projects may differ depending on the functionality of
-the model or the resources of the different platforms. Therefore the runtime is configurable in terms of
-message queue size, frequency and memory alignment. The configuration file <span
-class="ec-lmsso-10">etRuntimeConfig.h </span>is located in
-<span
-class="ec-lmsso-10">src/config</span>.
-</p><!--l. 65--><p class="noindent" >After changing the configuration, the runtime must be built.
-</p><!--l. 67--><p class="noindent" >Open the properties of the <span
-class="ec-lmsso-10">org.eclipse.runtime.c </span>project and select <span
-class="ec-lmsso-10">C/C++ Build-&#x003E;Settings-&#x003E;Tool Settings</span>
-and select <span
-class="ec-lmsso-10">Includes</span>.
-</p><!--l. 70--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC08.png" alt="PIC"
+</p><!--l. 174--><p class="noindent" >From an abstract point of view there is a state <span
+class="ec-lmsso-10">blinking</span>. 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><!--l. 179--><p class="noindent" >This simple example might give an idea how powerful this mechanisms is.
+</p><!--l. 181--><p class="noindent" >The hierarchical FSM provides a rich tool box to describe real world problems (see chapter <a
+href="etrice-docch3.html#x12-500003">3<!--tex4ht:ref: sec:room_concepts --></a> <a
+href="etrice-docch3.html#x12-500003">ROOM Concepts<!--tex4ht:ref: sec:room_concepts --></a>).
+</p><!--l. 183--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-160001.2.2"></a>Layering</h5>
+<!--l. 185--><p class="noindent" >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 <span
+class="ec-lmsso-10">Service Access Points </span>(SAP) and <span
+class="ec-lmsso-10">Service Provision Points</span>
+(SPP).
+</p><!--l. 190--><p class="noindent" >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&#8217;s
+point of view, SAPs and SPPs behave almost like ports.
+</p><!--l. 194--><p class="noindent" ><img
+src="images/010-LayerExample.png" alt="PIC"
/>
-</p><!--l. 73--><p class="noindent" >Verify the include paths
+</p><!--l. 196--><p class="noindent" >The example shows a layered model. The layer connections define e.g. that the <span
+class="ec-lmsso-10">ApplicationLayer </span>can only use the services of
+the <span
+class="ec-lmsso-10">ServiceLayer </span>and the <span
+class="ec-lmsso-10">CommunicationLayer</span>. Actors inside the <span
+class="ec-lmsso-10">ApplicationLayer </span>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><!--l. 202--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-170001.2.2"></a>Run to Completion</h5>
+<!--l. 205--><p class="noindent" ><span
+class="ec-lmsso-10">Run to completion </span>(RTC) is a very central concept of ROOM. It enables the developer to concentrate on the functional
+aspects of the system. The developer doesn&#8217;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 <span
+class="ec-lmsso-10">run to completion </span>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><!--l. 213--><p class="noindent" >Note: It is very important not to confuse <span
+class="ec-lmsso-10">run to completion </span>and <span
+class="ec-lmsso-10">cooperative multi threading</span>. 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 <span
+class="ec-lmsso-10">not </span>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><!--l. 220--><p class="noindent" >With this mechanism all actor internal attributes and data structures are protected. Due to the fact that multiple actors share
+one thread of control, all objects are protected which are accessed from one thread of control but multiple actors. This
+provides the possibility to decompose complex functionality into several actors without the risk to produce access violations or
+dead locks.
+</p><!--l. 225--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">1.2.3 </span> <a
+ id="x5-180001.2.3"></a>Execution Models</h4>
+<!--l. 227--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define the way the actors are executed and
+communicate with each other. The combination of communication and execution is called the <span
+class="ec-lmsso-10">execution model</span>. Currently the
+eTrice tooling supports the <span
+class="ec-lmssbx-10">message driven</span>, the <span
+class="ec-lmssbx-10">data driven </span>and a mixture of both execution models. In future
+releases maybe also a synchronous execution model will be supported, depending on the requirements of the
+community.
+</p><!--l. 235--><p class="noindent" >
</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-190001.2.3"></a>Communication Methods</h5>
<ul class="itemize1">
<li class="itemize"><span
-class="ec-lmsso-10">src/config</span>
+class="ec-lmssbx-10">message driven </span>&#8211; asynchronous, non blocking, no return value:<br
+class="newline" />Usually the message driven communication is implemented with message queues. Message queues are inherently
+ asynchronous and enable a very good decoupling of the communicating parties.
</li>
<li class="itemize"><span
-class="ec-lmsso-10">src/common</span>
+class="ec-lmssbx-10">data driven </span>&#8211; asynchronous, non blocking, no return value:<br
+class="newline" />In data driven communication sender and receiver often have a shared block of data. The sender writes the
+ data and the receiver polls the data.
</li>
<li class="itemize"><span
-class="ec-lmsso-10">src/platforms/generic</span></li></ul>
-<!--l. 81--><p class="noindent" >Within the Setting dialog select the tab <span
-class="ec-lmsso-10">Build Artefact </span>and select <span
-class="ec-lmsso-10">Static Library</span>
-</p><!--l. 83--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC09.png" alt="PIC"
- />
-</p><!--l. 86--><p class="noindent" >Build the runtime by clicking
-</p><!--l. 88--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC10.png" alt="PIC"
- />
-</p><!--l. 91--><p class="noindent" >The runtime library should be created.
-</p><!--l. 93--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC11.png" alt="PIC"
- />
-</p><!--l. 96--><p class="noindent" >For the tutorials one runtime library should be sufficient. For embedded projects it might be necessary to build
-project specific runtime libraries. In this case a separate project for the runtime should be created. Symbolic
-links to the sources might be used to avoid duplicate files. Just the configuration file must be duplicated. A
-specific library file must exist within the project. Such specific runtime libraries might be referenced from
-several applications.
-
-
-</p>
-<!--l. 71--><div class="crosslinks"><p class="noindent">[<a
-href="etrice-docch3.html" >next</a>] [<a
+class="ec-lmssbx-10">function call </span>&#8211; synchronous, blocking, return value:<br
+class="newline" />Regular function call as known in most programming languages.</li></ul>
+<!--l. 251--><p class="noindent" >eTrice currently supports the two former communication methods.
+</p><!--l. 253--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-200001.2.3"></a>Execution Methods</h5>
+
+
+ <ul class="itemize1">
+ <li class="itemize"><span
+class="ec-lmssbx-10">execution by receive event</span>: The message queue or the event dispatcher calls a <span
+class="ec-lmssbx-10">receive event </span>function of
+ the message receiver and thereby executes the processing of the event.
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">polled execution</span>: The objects are processed by a cyclic <span
+class="ec-lmssbx-10">execute </span>call
+ </li>
+ <li class="itemize"><span
+class="ec-lmssbx-10">execution by function call</span>: The caller executes the called object via function call</li></ul>
+<!--l. 262--><p class="noindent" >eTrice currently supports the two former execution methods.
+</p><!--l. 264--><p class="noindent" >
+</p>
+<h5 class="subsubsectionHead"><a
+ id="x5-210001.2.3"></a>Execution Models</h5>
+<!--l. 266--><p class="noindent" >In present-day&#8217;s embedded systems in most cases one or several of the following execution models are used:
+</p>
+<!--l. 268--><p class="noindent" ><span class="paragraphHead"><a
+ id="x5-220001.2.3"></a><span
+class="ec-lmssbx-10">message driven</span></span>
+<br
+class="newline" />
+</p><!--l. 270--><p class="noindent" >The message driven execution model is a combination of message driven communication and execution by receive event. This
+model allows for distributed systems with a very high throughput. It can be deterministic but the determinism is hard to
+proof. This execution model is often found in telecommunication systems and high performance automation control
+systems.
+</p>
+<!--l. 277--><p class="noindent" ><span class="paragraphHead"><a
+ id="x5-230001.2.3"></a><span
+class="ec-lmssbx-10">data driven</span></span>
+<br
+class="newline" />
+</p><!--l. 279--><p class="noindent" >The data driven execution model is a combination of data driven communication and polled execution. This model is highly
+deterministic and very robust, but the polling creates a huge performance overhead. The determinism is easy to proof (simple
+mathematics). The execution model is also compatible with the execution model of control software generated by Tools like
+Matlab(TM) and LabView(TM). This model is usually used for systems with requirements for safety, such as automotive and
+avionic systems.
+</p>
+<!--l. 286--><p class="noindent" ><span class="paragraphHead"><a
+ id="x5-240001.2.3"></a><span
+class="ec-lmssbx-10">synchronous</span></span>
+<br
+class="newline" />
+</p><!--l. 288--><p class="noindent" >The synchronous execution model could also be called <span
+class="ec-lmsso-10">function calls</span>. This model in general is not very well suited to support
+the <span
+class="ec-lmsso-10">run to completion </span>semantics typical for ROOM models, but could also be generated from ROOM models. With this
+execution model also lower levels of a software system, such as device drivers, could be generated from ROOM
+models.
+
+
+</p>
+<!--l. 59--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docch2.html" >next</a>] [<a
href="etrice-docse1.html" >prev</a>] [<a
href="etrice-docse1.html#tailetrice-docse1.html" >prev-tail</a>] [<a
href="etrice-docse2.html" >front</a>] [<a
-href="etrice-docch2.html#etrice-docse2.html" >up</a>] </p></div>
-<!--l. 71--><p class="noindent" ><a
- id="tailetrice-docse2.html"></a> </p>
+href="etrice-docch1.html#etrice-docse2.html" >up</a>] </p></div>
+<!--l. 59--><p class="noindent" ><a
+ id="tailetrice-docse2.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
index 3b2ed32..9fa7c7e 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html
@@ -4,157 +4,64 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Architecture</title>
+<head><title>Working with the tutorials</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse4.html" >next</a>] [<a
-href="etrice-docch4.html" >prev</a>] [<a
-href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
+href="etrice-docch2.html" >prev</a>] [<a
+href="etrice-docch2.html#tailetrice-docch2.html" >prev-tail</a>] [<a
href="#tailetrice-docse3.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse3.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.1 </span> <a
- id="x9-110004.1"></a>Architecture</h3>
-<!--l. 3--><p class="noindent" >The basic components of eTrice are depicted in the following diagram.
-</p><!--l. 5--><p class="noindent" ><img
-src="images/200-components.jpg" alt="PIC"
+href="etrice-docch2.html#etrice-docse3.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">2.1 </span> <a
+ id="x7-260002.1"></a>Working with the tutorials</h3>
+<!--l. 3--><p class="noindent" >The eTrice tutorials will help you to learn and understand the eTrice tool and its concepts. eTrice supports several target
+languages. The first two tutorials are target language specific. The other tutorials work for all target languages. Target
+language specific aspects are explained for all languages. Currently eTrice supports Java and C. C++ generator and runtime
+are currently prototypes with no tutorials. You should decide for which target language you want to run the
+tutorials.
+</p><!--l. 8--><p class="noindent" >Here an overview over the tutorials:
+</p><!--l. 10--><p class="noindent" ><img
+src="images/012-tutorial-structure.png" alt="PIC"
/>
-</p><!--l. 7--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in subsequent
-sections.
-</p><!--l. 10--><p class="noindent" >
+</p><!--l. 13--><p class="noindent" >eTrice generates code out of ROOM models. The generated code relies on the services of a runtime framework (Runtime):
</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.1 </span> <a
- id="x9-120004.1.1"></a>Editor and Generator Components</h4>
<ul class="itemize1">
- <li class="itemize">core
- <ul class="itemize2">
- <li class="itemize">core.room is an Xtext based language called ROOM. It consists of the plug-ins
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.room </span>and <span
-class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. ROOM is
- the basic modeling language of eTrice.
- </li>
- <li class="itemize">core.config is an Xtext based
- language called Config. It consists of the plug-ins <span
-class="ec-lmtt-10">org.eclipse.etrice.core.config</span>
- and <span
-class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. Config is a language designed for the data
- configuration of model
- </li>
- <li class="itemize">core.etphys is an Xtext based
- language called etPhys. It consists of the plug-ins <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etphys </span>and
-
-
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. etPhys is a language designed for the description
- of physical systems onto which the logical ROOM systems are deployed.
- </li>
- <li class="itemize">core.etmap is an Xtext based language called etMap. It consists of the plug-ins
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etmap </span>and <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. etMap
- is a language designed for the mapping of logical to physical systems.
- </li>
- <li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. It consists of the
- plugin <span
-class="ec-lmtt-10">org.eclipse.etrice.core.genmodel</span>. A Room model can be transformed into a
- genmodel which allows easy access to implicit relations of the Room model.</li></ul>
+ <li class="itemize">execution
+
+
</li>
- <li class="itemize">ui
- <ul class="itemize2">
- <li class="itemize">textual
- <ul class="itemize3">
- <li class="itemize">room.ui is the ui counterpart of core.room. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE concepts like content
- assist, error markers and navigation by hyper links for the Room language.
- </li>
- <li class="itemize">config.ui is the ui counterpart of core.config. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.config.ui</span>. This plug-in realizes IDE concepts like
- content assist, error markers and navigation by hyper links for the Config language.
- </li>
- <li class="itemize">etphys.ui is the ui counterpart of core.etphys. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etphys.ui</span>. This plug-in realizes IDE concepts like
- content assist, error markers and navigation by hyper links for the etPhys language.
- </li>
- <li class="itemize">etmap.ui is the ui counterpart of core.etmap. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.core.etmap.ui</span>. This plug-in realizes IDE concepts like content
- assist, error markers and navigation by hyper links for the etPhys language.</li></ul>
- </li>
- <li class="itemize">graphical
- <ul class="itemize3">
- <li class="itemize">ui.common is a set of common code for the two diagram editors. It consists of the
- plug-in <span
-class="ec-lmtt-10">org.eclipse.etrice.ui.common</span>.
- </li>
- <li class="itemize">ui.commands encapsulates some commands related to the navigation between eTrice
- editors. It consists of the plug-in <span
-class="ec-lmtt-10">org.eclipse.etrice.ui.commands</span>.
- </li>
- <li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.ui.structure</span>.
- </li>
- <li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.ui.behavior</span>.</li></ul>
- </li></ul>
+ <li class="itemize">communication (e.g. messaging)
</li>
- <li class="itemize">generators
- <ul class="itemize2">
- <li class="itemize">generator is a set of general classes and language independent parts of all generators. It
- consists of the plug-in <span
-class="ec-lmsso-10">org.eclipse.etrice.generator</span>.
-
-
- </li>
- <li class="itemize">generator.c is the generator for the ANSI-C target language. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.generator.c</span>.
- </li>
- <li class="itemize">generator.cpp is the generator for the C++ target language. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.generator.cpp</span>.
- </li>
- <li class="itemize">generator.java is the generator for the Java target language. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.generator.java</span>.
- </li>
- <li class="itemize">generator.doc is the generator for the model documentation. It consists of the plug-in
- <span
-class="ec-lmtt-10">org.eclipse.etrice.generator.doc</span>.</li></ul>
- </li></ul>
-<!--l. 82--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.2 </span> <a
- id="x9-130004.1.2"></a>Runtimes</h4>
-<!--l. 84--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The C++ runtime is still a prototype. The runtimes are
-libraries written in the target language against which the generated code is compiled.
-</p><!--l. 88--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.1.3 </span> <a
- id="x9-140004.1.3"></a>Unit Tests</h4>
-<!--l. 90--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests.
-
-
+ <li class="itemize">logging
+ </li>
+ <li class="itemize">operating system abstraction (osal)</li></ul>
+<!--l. 22--><p class="noindent" >Additional functionality is provided as model library (Modellib): </p>
+ <ul class="itemize1">
+ <li class="itemize">socket server and client
+ </li>
+ <li class="itemize">timing service
+ </li>
+ <li class="itemize">standard types</li></ul>
+<!--l. 29--><p class="noindent" >All tutorial models are provided as examples.
+</p><!--l. 31--><p class="noindent" >The Runtime, Modellib and Tutorial projects are target language specific and will be set up in the first tutorial "Setting up
+the workspace for ...".
+
+
</p>
-<!--l. 92--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse4.html" >next</a>] [<a
-href="etrice-docch4.html" >prev</a>] [<a
-href="etrice-docch4.html#tailetrice-docch4.html" >prev-tail</a>] [<a
+href="etrice-docch2.html" >prev</a>] [<a
+href="etrice-docch2.html#tailetrice-docch2.html" >prev-tail</a>] [<a
href="etrice-docse3.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse3.html" >up</a>] </p></div>
-<!--l. 92--><p class="noindent" ><a
+href="etrice-docch2.html#etrice-docse3.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
id="tailetrice-docse3.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
index 9a9b2af..a0287f9 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html
@@ -4,402 +4,125 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Component Overview</title>
+<head><title>Setting up the Workspace for Java Projects</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-10 11:27:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
-<!--l. 92--><div class="crosslinks"><p class="noindent">[<a
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse5.html" >next</a>] [<a
href="etrice-docse3.html" >prev</a>] [<a
href="etrice-docse3.html#tailetrice-docse3.html" >prev-tail</a>] [<a
href="#tailetrice-docse4.html">tail</a>] [<a
-href="etrice-docch4.html#etrice-docse4.html" >up</a>] </p></div>
-<h3 class="sectionHead"><span class="titlemark">4.2 </span> <a
- id="x10-150004.2"></a>Component Overview</h3>
-<!--l. 94--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.1 </span> <a
- id="x10-160004.2.1"></a>Room Language Overview</h4>
-<!--l. 96--><p class="noindent" >We assume that the reader is familiar with the Xtext concepts. So we concentrate on the details of our
-implementation that are worth to be pointed out.
-</p><!--l. 99--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-170004.2.1"></a>Model Tweaks</h5>
-<!--l. 101--><p class="noindent" >The Room EMF model is inferred from the grammar. However, this powerful mechanism has to be tweaked at
-some places. This is done in the <span
-class="ec-lmsso-10">/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/RoomPostprocessor.ext</span>
-which is written in the legacy Xtend language.
-</p><!--l. 107--><p class="noindent" >The following parts of the model are changed or added: </p>
- <ul class="itemize1">
- <li class="itemize">the default
-
-
- <div class="verbatim" id="verbatim-1">
- multiplicity
-</div>
- <!--l. 109--><p class="nopar" > of the <span
-class="ec-lmtt-10">Port </span>is set to 1
- </p></li>
- <li class="itemize">the operation <span
-class="ec-lmtt-10">isReplicated </span>is added to the <span
-class="ec-lmtt-10">Port</span>
- </li>
- <li class="itemize">the default <span
-class="ec-lmtt-10">size </span>of the <span
-class="ec-lmtt-10">ActorRef </span>is set to 1
- </li>
- <li class="itemize">an operation <span
-class="ec-lmtt-10">getName </span>is add to the <span
-class="ec-lmtt-10">State </span>class
- </li>
- <li class="itemize">an operation <span
-class="ec-lmtt-10">getName </span>is add to the <span
-class="ec-lmtt-10">StateGraphItem </span>class
- </li>
- <li class="itemize">an operation <span
-class="ec-lmtt-10">getGeneralProtocol </span>is added to the <span
-class="ec-lmtt-10">InterfaceItem</span></li></ul>
-<!--l. 117--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-180004.2.1"></a>Imports by URI Using Namespaces</h5>
-<!--l. 119--><p class="noindent" >The import mechanism employed is based on URIs. This is configured for one part in the GenerateRoom.mwe2
-model workflow by setting the fragments ImportURIScopingFragment and ImportUriValidator). For the other
-part it is configured in the Guice modules by binding </p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmtt-10">PlatformRelativeUriResolver </span>&#8211; this class tries to convert the import URI into a platform
- relative URI. It also replaces environment variables written in $ with their respective values.
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">ImportedNamespaceAwareLocalScopeProvider </span>&#8211; this is a standard scope provider which is
- aware of namespaces
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">GlobalNonPlatformURIEditorOpener </span>&#8211; this editor opener tries to convert general URIs into
- platform URIs because editors can only open platform URIs
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">ImportAwareHyperlinkHelper </span>&#8211; turns the URI part of an import into a navigatable hyper link</li></ul>
-<!--l. 132--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-190004.2.1"></a>Naming</h5>
-<!--l. 134--><p class="noindent" >Two classes provide object names used for link resolution and for labels. The <span
-class="ec-lmtt-10">RoomNameProvider </span>provides
-frequently used name strings, some of them are hierarchical like State paths. The <span
-class="ec-lmtt-10">RoomFragmentProvider</span>
-serves a more formal purpose since it provides a link between EMF models (as used by the diagram editors)
-and the textual model representation used by Xtext.
-
-
-</p><!--l. 140--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-200004.2.1"></a>Helpers</h5>
-<!--l. 142--><p class="noindent" >The <span
-class="ec-lmtt-10">RoomHelpers </span>class provides a great deal of static methods that help retrieve frequently used information
-from the model. Among many, many others </p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmtt-10">getAllEndPorts(ActorClass) </span>- returns a list of all end ports of an actor class including
- inherited ones
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getInheritedActionCode(Transition, ActorClass) </span>- get the inherited part of a transition&#8217;s
- action code
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getSignature(Operation) </span>- returns a string representing the operation signature suited for a
- label</li></ul>
-<!--l. 154--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-210004.2.1"></a>Validation</h5>
-<!--l. 156--><p class="noindent" >Validation is used from various places. Therefore all validation code is accumulated in the @ValidationUtil@
-class. All methods are static and many of them return a Result object which contains information about the
-problem detected as well as object and feature as suited for most validation purposes.
-</p><!--l. 160--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.2 </span> <a
- id="x10-220004.2.2"></a>Config Language Overview</h4>
-<!--l. 162--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-230004.2.2"></a>Model Tweaks</h5>
-<!--l. 164--><p class="noindent" >A couple of operations are added to the ConfigModel </p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmtt-10">getActorClassConfigs</span>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getActorInstanceConfigs</span>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getProtocolClassConfigs</span>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getSubSystemConfigs</span></li></ul>
-
-
-<!--l. 172--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-240004.2.2"></a>Imports by URI Using Namespaces</h5>
-<!--l. 174--><p class="noindent" >Imports are treated like in Room language, section <span
-class="ec-lmsso-10">Imports by URI Using Namespaces</span>.
-</p><!--l. 176--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-250004.2.2"></a>Util</h5>
-<!--l. 178--><p class="noindent" >A set of static utility methods can be found in the <span
-class="ec-lmtt-10">ConfigUtil </span>class.
-</p><!--l. 180--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.3 </span> <a
- id="x10-260004.2.3"></a>Aggregation Layer Overview</h4>
-<!--l. 182--><p class="noindent" >The eTrice Generator Model (genmodel) serves as an aggregation layer. Its purpose is to allow easy access to
-information which is implicitly contained in the Room model but not simple to retrieve. Examples of this are
-the state machine with inherited items or a list of all triggers active at a state in the order in which
-they will be evaluated or the actual peer port of an end port (following bindings through relay
-ports).
-</p><!--l. 188--><p class="noindent" >The Generator Model is created from a list of Room models by a call of the
-
-
-</p>
-<div class="verbatim" id="verbatim-2">
-createGeneratorModel(List&#x003C;RoomModel&#x003E;,&#x00A0;boolean)
-</div>
-<!--l. 190--><p class="nopar" >
-</p><!--l. 192--><p class="noindent" >method of the <span
-class="ec-lmtt-10">GeneratorModelBuilder </span>class.
-</p><!--l. 194--><p class="noindent" >The <span
-class="ec-lmtt-10">Root </span>object of the resulting Generator Model provides chiefly two things: </p>
+href="etrice-docch2.html#etrice-docse4.html" >up</a>] </p></div>
+<h3 class="sectionHead"><span class="titlemark">2.2 </span> <a
+ id="x8-270002.2"></a>Setting up the Workspace for Java Projects</h3>
+<!--l. 3--><p class="noindent" ><span
+class="ec-lmssbx-10">Objectives for this tutorial:</span> </p>
<ul class="itemize1">
- <li class="itemize">a tree of instances starting at each <span
-class="ec-lmtt-10">SubSystem </span>with representations of each <span
-class="ec-lmtt-10">ActorInstance </span>and
- <span
-class="ec-lmtt-10">PortInstance</span>
- </li>
- <li class="itemize">for each <span
-class="ec-lmtt-10">ActorClass </span>a corresponding <span
-class="ec-lmtt-10">ExpandedActorClass </span>with an explicit state machine
- containing all inherited state graph items</li></ul>
-<!--l. 202--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-270004.2.3"></a>The Instance Model</h5>
-<!--l. 204--><p class="noindent" >The instance model allows easy access to instances including their unique paths and object IDs. Also it is
-possible to get a list of all peer port instances for each port instance without having to bother about port and
-actor replication.
-</p><!--l. 208--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-280004.2.3"></a>The Expanded Actor Class</h5>
-<!--l. 210--><p class="noindent" >The expanded actor class contains, as already mentioned, the complete state machine of the actor class. This
-considerably simplifies the task of state machine generation. Note that the generated code always
-contains the complete state machine of an actor. I.e. no target language inheritance is used to
-implement the state machine inheritance. Furthermore the <span
-class="ec-lmtt-10">ExpandedActorClass </span>gives access to
-</p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmtt-10">getIncomingTransitions(StateGraphNode) </span>&#8211; the set of incoming transition of a
- <span
-class="ec-lmtt-10">StateGraphNode </span>(<span
-class="ec-lmtt-10">State</span>, <span
-class="ec-lmtt-10">ChoicePoint </span>or <span
-class="ec-lmtt-10">TransitionPoint</span>)
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getOutgoingTransitions(StateGraphNode) </span>&#8211; the set of outgoing transition of a
- <span
-class="ec-lmtt-10">StateGraphNode</span>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">getActiveTriggers(State) </span>&#8211; the triggers that are active in this <span
-class="ec-lmtt-10">State </span>in the order they are
- evaluated</li></ul>
-
-
-<!--l. 224--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-290004.2.3"></a>Transition Chains</h5>
-<!--l. 226--><p class="noindent" >By transition chains we denote a connected subset of the (hierarchical) state machine that starts with a
-transition starting at a state and continues over transitional state graph nodes (choice points and transition
-points) and continuation transitions until a state is reached. In general a transition chain starts at one state
-and ends in several states (the chain may branch in choice points). A <span
-class="ec-lmtt-10">TransitionChain </span>of a
-transition is retrieved by a call of <span
-class="ec-lmtt-10">getChain(Transition) </span>of the <span
-class="ec-lmtt-10">ExpandedActorClass</span>. The
+ <li class="itemize">create all needed library projects (runtime.java and modellib.java)
+ </li>
+ <li class="itemize">create the tutorial project with the examples
+ </li>
+ <li class="itemize">create the project with a traffic light simulator
+ </li>
+ <li class="itemize">test the workspace setup by running one of the examples</li></ul>
+<!--l. 11--><p class="noindent" >
+</p>
+<h4 class="subsectionHead"><span class="titlemark">2.2.1 </span> <a
+ id="x8-280002.2.1"></a>Create Library, Tutorial and Simulator Projects</h4>
+<!--l. 13--><p class="noindent" >After installation of eclipse and the eTrice plug in, your workspace should look like this:
+</p><!--l. 15--><p class="noindent" ><img
+src="images/013-SetupWorkspace01.png" alt="PIC"
+ />
+</p><!--l. 18--><p class="noindent" >Just the eTrice menu item is visible of the installed eTrice plugins.
+</p><!--l. 20--><p class="noindent" >
+
+
+</p><!--l. 21--><p class="noindent" >Select the menu <span
+class="ec-lmsso-10">File-&#x003E;New-&#x003E;Other</span>
+</p><!--l. 23--><p class="noindent" ><img
+src="images/013-SetupWorkspace02.png" alt="PIC"
+ />
+</p><!--l. 26--><p class="noindent" >Open the <span
+class="ec-lmsso-10">eTrice </span>tab and select <span
+class="ec-lmsso-10">eTrice Java Runtime</span>
+</p><!--l. 28--><p class="noindent" >Press <span
+class="ec-lmsso-10">Next </span>and <span
+class="ec-lmsso-10">Finish </span>to install the Runtime into your workspace.
+</p><!--l. 30--><p class="noindent" ><img
+src="images/013-SetupWorkspace03.png" alt="PIC"
+ />
+</p><!--l. 33--><p class="noindent" >
+
+
+</p><!--l. 34--><p class="noindent" >Do the same steps for <span
+class="ec-lmsso-10">eTrice Java Modellib</span>, <span
+class="ec-lmsso-10">eTrice Java Tutorials </span>and <span
+class="ec-lmsso-10">eTrice Trafficlight for Tutorials</span>. To avoid temporary
+error markers you should keep the proposed order of installation. The resulting workspace should look like
+this:
+</p><!--l. 38--><p class="noindent" ><img
+src="images/013-SetupWorkspace04.png" alt="PIC"
+ />
+</p>
+<h4 class="subsectionHead"><span class="titlemark">2.2.2 </span> <a
+ id="x8-290002.2.2"></a>Perform Setup Test</h4>
+<!--l. 43--><p class="noindent" >To check the correct setup of your workspace we run a little testproject contained in the tutorial project.
+</p><!--l. 45--><p class="noindent" >The tutorial models are available in the <span
+class="ec-lmsso-10">org.eclipse.etrice.tutorials.java </span>project. All tutorials are ready to generate and run
+without any changes. To test the code generator and the workspace setup simply run <span
+class="ec-lmsso-10">gen_SetupTestJava.launch </span>as
<span
-class="ec-lmtt-10">TransitionChain </span>accepts an <span
-class="ec-lmtt-10">ITransitionChainVisitor </span>which is called along the chain to generate the
-action codes of involved transitions and the conditional statements arising from the involved choice
-points.
-</p><!--l. 236--><p class="noindent" >
-</p>
-<h4 class="subsectionHead"><span class="titlemark">4.2.4 </span> <a
- id="x10-300004.2.4"></a>Generator Overview</h4>
-<!--l. 238--><p class="noindent" >There is one plug-in that consists of base classes and some generic generator parts which are re-used by all
-language specific generators
-</p><!--l. 241--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-310004.2.4"></a>Base Classes and Interfaces</h5>
-<!--l. 243--><p class="noindent" >We just want to mention the most important classes and interfaces.
-</p>
- <ul class="itemize1">
- <li class="itemize">
- <div class="flushleft"
->
-<!--l. 246--><p class="noindent" >
-<span
-class="ec-lmtt-10">ITranslationProvider </span>&#8212; this interface is used by the <span
-class="ec-lmtt-10">DetailCodeTranslator </span>for the language
-dependent translation of e.g. port.message() notation in detail code</p></div>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">AbstractGenerator </span>&#8212; concrete language generators should derive from this base class
- </li>
- <li class="itemize">
- <div class="flushleft"
->
-<!--l. 250--><p class="noindent" >
+class="ec-lmsso-10">gen_SetupTestJava</span>:
+</p><!--l. 49--><p class="noindent" ><img
+src="images/013-SetupWorkspace05.png" alt="PIC"
+ />
+</p><!--l. 52--><p class="noindent" >
+
+
+</p><!--l. 53--><p class="noindent" >The successful generation ends with <span
+class="ec-lmsso-10">Info: &#8211; finished code generation </span>in the Console.
+</p><!--l. 55--><p class="noindent" ><img
+src="images/013-SetupWorkspace051.png" alt="PIC"
+ />
+</p><!--l. 58--><p class="noindent" >For each tutorial in the folder src-gen a java package is generated including a java file called <span
+class="ec-lmsso-10">SubSys&#x003C;...&#x003E;Runner.java</span>
+. To run the generated application simply run this file as a java application. Try this with the file
<span
-class="ec-lmtt-10">DefaultTranslationProvider </span>&#8212; a stub implementation of <span
-class="ec-lmtt-10">ITranslationProvider </span>from which
-clients may derive</p></div>
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">Indexed </span>&#8212; provides an indexed iterable of a given iterable
- </li>
- <li class="itemize"><span
-class="ec-lmtt-10">GeneratorBaseModule </span>&#8212; a Google Guice module that binds a couple of basic services. Concrete
- language generators should use a module that derives from this</li></ul>
-
-
-<!--l. 257--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-320004.2.4"></a>Generic Generator Parts</h5>
-<!--l. 259--><p class="noindent" >The generic generator parts provide code generation blocks on a medium granularity. The language dependent
-top level generators embed those blocks in a larger context (file, class, ...). Language dependent low level
-constructs are provided by means of an <span
-class="ec-lmtt-10">ILanguageExtension</span>. This extension and other parts of the generator
-be configured using Google Guice dependency injection.
-</p>
-<!--l. 264--><p class="noindent" ><span class="paragraphHead"><a
- id="x10-330004.2.4"></a><span
-class="ec-lmssbx-10">GenericActorClassGenerator</span></span>
-The <span
-class="ec-lmtt-10">GenericActorClassGenerator </span>generates constants for the interface items of a actor. Those constants
-are used by the generated state machine.
-</p>
-<!--l. 269--><p class="noindent" ><span class="paragraphHead"><a
- id="x10-340004.2.4"></a><span
-class="ec-lmssbx-10">GenericProtocolClassGenerator</span></span>
-The <span
-class="ec-lmtt-10">GenericProtocolClassGenerator </span>generates message ID constants for a protocol.
-</p>
-<!--l. 273--><p class="noindent" ><span class="paragraphHead"><a
- id="x10-350004.2.4"></a><span
-class="ec-lmssbx-10">GenericStateMachineGenerator</span></span>
-</p>
-<div class="flushleft"
->
-<!--l. 275--><p class="noindent" >
-The <span
-class="ec-lmtt-10">GenericStateMachineGenerator </span>generates the complete state machine implementation. The
-skeleton of the generated code is</p></div>
- <ul class="itemize1">
- <li class="itemize">definition state ID constants
- </li>
- <li class="itemize">definition of transition chain constants
- </li>
- <li class="itemize">definition of trigger constants
- </li>
- <li class="itemize">entry, exit and action code methods
- </li>
- <li class="itemize">the <span
-class="ec-lmtt-10">exitTo </span>method
- </li>
- <li class="itemize">the <span
-class="ec-lmtt-10">executeTransitionChain </span>method
- </li>
- <li class="itemize">the <span
-class="ec-lmtt-10">enterHistory </span>method
-
-
- </li>
- <li class="itemize">the <span
-class="ec-lmtt-10">executeInitTransition </span>method
- </li>
- <li class="itemize">the <span
-class="ec-lmtt-10">receiveEvent </span>method</li></ul>
-<!--l. 290--><p class="noindent" >The state machine works as follows. The main entry method is the <br
-class="newline" /><span
-class="ec-lmtt-10">receiveEvent </span>method. This is the case for both, data driven (polled) and event driven state machines. Then
-a number of nested switch/case statements evaluates trigger conditions and derives the transition chain that is
-executed. If a trigger fires then the <span
-class="ec-lmtt-10">exitTo </span>method is called to execute all exit codes involved. Then the
-transition chain action codes are executed and the choice point conditions are evaluated in the
-<span
-class="ec-lmtt-10">executeTransitionChain </span>method. Finally the history of the state where the chain ends is entered and all
-entry codes are executed by <span
-class="ec-lmtt-10">enterHistory</span>.
-</p><!--l. 298--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-360004.2.4"></a>The Java Generator</h5>
-<!--l. 300--><p class="noindent" >The Java generator employs the generic parts of the generator. The <span
-class="ec-lmtt-10">JavaTranslationProvider</span>
-is very simple and only handles the case of sending a message from a distinct replicated port:
-<span
-class="ec-lmtt-10">replPort[2].message()</span>. Other cases are handled by the base class by returning the original
-text.
-</p><!--l. 304--><p class="noindent" >The <span
-class="ec-lmtt-10">DataClassGen </span>uses Java inheritance for the generated data classes. Otherwise it is pretty much straight
-forward.
-</p><!--l. 307--><p class="noindent" >The <span
-class="ec-lmtt-10">ProtocolClassGen </span>generates a class for the protocol with nested static classes for regular and
-conjugated ports and similar for replicated ports.
-</p><!--l. 310--><p class="noindent" >The <span
-class="ec-lmtt-10">ActorClassGen </span>uses Java inheritance for the generated actor classes. So ports, SAPs and attributes and
-detail code methods are inherited. Not inherited is the state machine implementation.
-</p><!--l. 313--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-370004.2.4"></a>The ANSI-C Generator</h5>
-<!--l. 315--><p class="noindent" >The C generator translates data, protocol and actor classes into structs together with a set of methods
-that operate on them and receive a pointer to those data (called <span
-class="ec-lmtt-10">self </span>in analogy to the implicit
-C++ <span
-class="ec-lmtt-10">this </span>pointer). No dynamic memory allocation is employed. All actor instances are statically
-initialized. One of the design goals for the generated C code was an optimized footprint in terms of
-memory and performance to be able to utilize modeling with ROOM also for tiny low end micro
-controllers.
-</p><!--l. 322--><p class="noindent" >
-</p>
-<h5 class="subsubsectionHead"><a
- id="x10-380004.2.4"></a>The Documentation Generator</h5>
-<!--l. 324--><p class="noindent" >The documentation generator creates documentation in LaTex format which can be converted into PDF and
-many other formats.
-</p>
-<!--l. 87--><div class="crosslinks"><p class="noindent">[<a
+class="ec-lmsso-10">src-gen/SetupTest_Model/SubSysClass1Runner.java </span>:
+</p><!--l. 62--><p class="noindent" ><img
+src="images/013-SetupWorkspace06.png" alt="PIC"
+ />
+</p><!--l. 65--><p class="noindent" >To stop the application type <span
+class="ec-lmsso-10">quit </span>in the console window. If your Console contains the lines
+
+
+</p>
+<div class="verbatim" id="verbatim-1">
+******************
+&#x00A0;<br />***&#x00A0;Setup&#x00A0;OK&#x00A0;***
+&#x00A0;<br />******************
+</div>
+<!--l. 70--><p class="nopar" > your setup should be ok.
+</p><!--l. 73--><p class="noindent" ><img
+src="images/013-SetupWorkspace07.png" alt="PIC"
+ />
+</p><!--l. 76--><p class="noindent" >Now the workspace is set up and you can perform the tutorials or start with your work.
+
+
+</p>
+<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
+href="etrice-docse5.html" >next</a>] [<a
href="etrice-docse3.html" >prev</a>] [<a
href="etrice-docse3.html#tailetrice-docse3.html" >prev-tail</a>] [<a
href="etrice-docse4.html" >front</a>] [<a
-href="etrice-docch4.html#etrice-docse4.html" >up</a>] </p></div>
-<!--l. 87--><p class="noindent" ><a
- id="tailetrice-docse4.html"></a> </p>
+href="etrice-docch2.html#etrice-docse4.html" >up</a>] </p></div>
+<!--l. 1--><p class="noindent" ><a
+ id="tailetrice-docse4.html"></a> </p>
</body></html>
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
index 7a6f052..c872f64 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -21,122 +21,123 @@ href="etrice-docse4.html#tailetrice-docse4.html" >prev-tail</a>] [<a
href="#tailetrice-docse5.html">tail</a>] [<a
href="etrice-docch2.html#etrice-docse5.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">2.3 </span> <a
- id="x9-280002.3"></a>Setting up the Workspace for C Projects</h3>
-<!--l. 3--><p class="noindent" >Before you can start with C, some preconditions must be fulfilled:
- </p><dl class="description"><dt class="description">
- </dt><dd
-class="description">A C compiler must be installed on your machine (all tests and tutorials are based on MinGW)
- </dd><dt class="description">
- </dt><dd
-class="description">The CDT-Eclipse plugin must be installed as the C development environment.</dd></dl>
-<!--l. 10--><p class="noindent" >Once the CDT is installed, the C runtime and model library must be imported. (<span
-class="ec-lmsso-10">File-&#x003E;New-&#x003E;Project-&#x003E;</span><span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span>
-select <span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">C runtime </span>/ <span
-class="ec-lmsso-10">e</span><span
-class="ec-lmsso-10">Trice</span> <span
-class="ec-lmsso-10">C modellib</span>)
-</p><!--l. 13--><p class="noindent" >The resulting workspace should look like this:
-</p><!--l. 15--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC01.png" alt="PIC"
- />
-</p><!--l. 19--><p class="noindent" >
+ id="x9-300002.3"></a>Setting up the Workspace for C Projects</h3>
+<!--l. 3--><p class="noindent" ><span
+class="ec-lmssbx-10">Objectives for this tutorial:</span> </p>
+ <ul class="itemize1">
+ <li class="itemize">create all needed library projects (runtime.c and modellib.c)
+ </li>
+ <li class="itemize">create the tutorial project with the examples
+ </li>
+ <li class="itemize">create the project with a traffic light simulator
+ </li>
+ <li class="itemize">test the workspace setup by running one of the examples</li></ul>
+<!--l. 11--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">2.3.1 </span> <a
- id="x9-290002.3.1"></a>Testing the environment</h4>
-<!--l. 21--><p class="noindent" >To verify the C tool chain you should generate and run the Hello World example program of the CDT. Activate
-the <span
-class="ec-lmsso-10">C/C++ </span>perspective.
-</p><!--l. 24--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC03.png" alt="PIC"
- />
-</p><!--l. 27--><p class="noindent" >From the main menu select <span
-class="ec-lmsso-10">File-&#x003E;New-&#x003E;C Project</span>.
-</p><!--l. 29--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC02.png" alt="PIC"
- />
-</p><!--l. 32--><p class="noindent" >Name the project. Select an <span
-class="ec-lmsso-10">Executable-&#x003E;Hello World ANSI C </span>as project type, <span
-class="ec-lmsso-10">MinGW GCC </span>as tool chain and
-click <span
-class="ec-lmsso-10">Finish</span>.
-</p><!--l. 35--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC04.png" alt="PIC"
+ id="x9-310002.3.1"></a>Create Library, Tutorial and Simulator Projects</h4>
+<!--l. 13--><p class="noindent" >Before you can start with C, some preconditions must be fulfilled:
+</p>
+ <ul class="itemize1">
+ <li class="itemize">A C compiler must be installed on your machine. All tutorials are based on MinGW/GCC (Windows) and
+ Posix/GCC (Linux), but currently only tested on Windows with MinGW/GCC
+ </li>
+ <li class="itemize">The CDT-Eclipse plugin must be installed as the C development environment.</li></ul>
+<!--l. 20--><p class="noindent" >After installation of eclipse and the eTrice plug in, your workspace should look like this:
+</p><!--l. 22--><p class="noindent" ><img
+src="images/013-SetupWorkspace01.png" alt="PIC"
/>
-</p><!--l. 38--><p class="noindent" >Select the new project and click the build button (or right click the project and select <span
-class="ec-lmsso-10">Build Project</span>)
-</p><!--l. 41--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC05.png" alt="PIC"
+</p><!--l. 25--><p class="noindent" >Just the eTrice menu item is visible of the installed eTrice plugins.
+</p><!--l. 27--><p class="noindent" >
+
+
+</p><!--l. 28--><p class="noindent" >Select the menu <span
+class="ec-lmsso-10">File-&#x003E;New-&#x003E;Other</span>
+</p><!--l. 30--><p class="noindent" ><img
+src="images/013-SetupWorkspace02.png" alt="PIC"
/>
-</p><!--l. 44--><p class="noindent" >The binary should be generated. Run the binary as <span
-class="ec-lmsso-10">Local C/C++ Application</span>.
-</p><!--l. 46--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC06.png" alt="PIC"
+</p><!--l. 33--><p class="noindent" >Open the <span
+class="ec-lmsso-10">eTrice </span>tab and select <span
+class="ec-lmsso-10">eTrice C Runtime</span>
+</p><!--l. 35--><p class="noindent" >Press <span
+class="ec-lmsso-10">Next </span>and <span
+class="ec-lmsso-10">Finish </span>to install the Runtime into your workspace.
+</p><!--l. 37--><p class="noindent" ><img
+src="images/014-SetupWorkspaceC005.png" alt="PIC"
/>
-</p><!--l. 49--><p class="noindent" >Verify the output.
-</p><!--l. 51--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC07.png" alt="PIC"
+</p><!--l. 40--><p class="noindent" >
+
+
+</p><!--l. 41--><p class="noindent" >Do the same steps for <span
+class="ec-lmsso-10">eTrice C Modellib</span>, <span
+class="ec-lmsso-10">eTrice C Tutorials </span>and <span
+class="ec-lmsso-10">eTrice Trafficlight for Tutorials</span>. To avoid temporary
+error markers you should keep the proposed order of installation. The resulting workspace should look like
+this:
+</p><!--l. 45--><p class="noindent" ><img
+src="images/014-SetupWorkspace007.png" alt="PIC"
/>
-</p><!--l. 54--><p class="noindent" >Remember these steps. In the following Tutorials these steps will be referenced as <span
-class="ec-lmsso-10">build and run</span>.
-
-
-</p><!--l. 57--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">2.3.2 </span> <a
- id="x9-300002.3.2"></a>Building the C runtime system</h4>
-<!--l. 59--><p class="noindent" >The C runtime system contains some basic functionalities to run the generated models. The so called runtime
-is common for all C projects. The requirements for several projects may differ depending on the functionality of
-the model or the resources of the different platforms. Therefore the runtime is configurable in terms of
-message queue size, frequency and memory alignment. The configuration file <span
-class="ec-lmsso-10">etRuntimeConfig.h </span>is located in
+ id="x9-320002.3.2"></a>Perform Setup Test</h4>
+<!--l. 50--><p class="noindent" >To check the correct setup of your workspace we run a little testproject contained in the tutorial project.
+</p><!--l. 52--><p class="noindent" >The tutorial models are available in the <span
+class="ec-lmsso-10">org.eclipse.etrice.tutorials.c </span>project. All tutorials are ready to generate and run
+without any changes. To test the code generator and the workspace setup simply run <span
+class="ec-lmsso-10">gen_SetupTestC.launch </span>as
<span
-class="ec-lmsso-10">src/config</span>.
-</p><!--l. 65--><p class="noindent" >After changing the configuration, the runtime must be built.
-</p><!--l. 67--><p class="noindent" >Open the properties of the <span
-class="ec-lmsso-10">org.eclipse.runtime.c </span>project and select <span
-class="ec-lmsso-10">C/C++ Build-&#x003E;Settings-&#x003E;Tool Settings</span>
-and select <span
-class="ec-lmsso-10">Includes</span>.
-</p><!--l. 70--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC08.png" alt="PIC"
+class="ec-lmsso-10">gen_SetupTestC</span>:
+</p><!--l. 55--><p class="noindent" ><img
+src="images/014-05-gen_SetupTestC.png" alt="PIC"
/>
-</p><!--l. 73--><p class="noindent" >Verify the include paths
-</p>
- <ul class="itemize1">
- <li class="itemize"><span
-class="ec-lmsso-10">src/config</span>
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">src/common</span>
- </li>
- <li class="itemize"><span
-class="ec-lmsso-10">src/platforms/generic</span></li></ul>
-<!--l. 81--><p class="noindent" >Within the Setting dialog select the tab <span
-class="ec-lmsso-10">Build Artefact </span>and select <span
-class="ec-lmsso-10">Static Library</span>
-</p><!--l. 83--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC09.png" alt="PIC"
+</p><!--l. 58--><p class="noindent" >
+
+
+</p><!--l. 59--><p class="noindent" >The successful generation ends with <span
+class="ec-lmsso-10">Info: &#8211; finished code generation </span>in the Console.
+</p><!--l. 61--><p class="noindent" ><img
+src="images/014-06-FinishedCodeGeneration.png" alt="PIC"
/>
-</p><!--l. 86--><p class="noindent" >Build the runtime by clicking
-</p><!--l. 88--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC10.png" alt="PIC"
+</p><!--l. 64--><p class="noindent" >For each tutorial in the folder src-gen a sub folder is generated which contains the generated code. The file <span
+class="ec-lmsso-10">&#x003C;...&#x003E;_Runner.c</span>
+contains the main function. To run the generated application you first have to compile the project (with the hammer symbol
+in the C/C++ Perspective).
+</p><!--l. 66--><p class="noindent" ><img
+src="images/014-07-Compile.png" alt="PIC"
/>
-</p><!--l. 91--><p class="noindent" >The runtime library should be created.
-</p><!--l. 93--><p class="noindent" ><img
-src="images/014-SetupWorkspaceC11.png" alt="PIC"
+</p><!--l. 69--><p class="noindent" >If the compilitation does not succeed, make sure to clean and compile the projects <span
+class="ec-lmsso-10">org.eclipse.etrice.runtime.c </span>and
+<span
+class="ec-lmsso-10">org.eclipse.etrice.modellib.c </span>with the correct build configuration for your platform. Depending on the setup of
+your C compiler and CDT you might have to change the pre defined build configurations <span
+class="ec-lmsso-10">MinGWDebug </span>or
+<span
+class="ec-lmsso-10">PosixDebug</span>.
+</p><!--l. 71--><p class="noindent" >After the successful compilation you can run the application as <span
+class="ec-lmsso-10">Local C/C++ Application</span>.
+</p><!--l. 73--><p class="noindent" ><img
+src="images/014-08-RunAsC-CPP-Application.png" alt="PIC"
+ />
+</p><!--l. 76--><p class="noindent" >
+
+
+</p><!--l. 77--><p class="noindent" >To stop the application type <span
+class="ec-lmsso-10">quit </span>in the console window. If your Console contains the lines
+
+
+</p>
+<div class="verbatim" id="verbatim-2">
+******************
+&#x00A0;<br />***&#x00A0;Setup&#x00A0;OK&#x00A0;***
+&#x00A0;<br />******************
+</div>
+<!--l. 82--><p class="nopar" > your setup should be ok.
+</p><!--l. 86--><p class="noindent" ><img
+src="images/014-09-ConsoleWithSetupOk.png" alt="PIC"
/>
-</p><!--l. 96--><p class="noindent" >For the tutorials one runtime library should be sufficient. For embedded projects it might be necessary to build
-project specific runtime libraries. In this case a separate project for the runtime should be created. Symbolic
-links to the sources might be used to avoid duplicate files. Just the configuration file must be duplicated. A
-specific library file must exist within the project. Such specific runtime libraries might be referenced from
-several applications.
-
-
+</p><!--l. 89--><p class="noindent" >Now the workspace is set up and you can perform the tutorials or start with your work.
+
+
</p>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="etrice-docse6.html" >next</a>] [<a
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
index fc7b1a6..949f7bf 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html
@@ -10,7 +10,7 @@
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- xhtml,3,next,html -->
<meta name="src" content="etrice-doc.tex" />
-<meta name="date" content="2013-07-04 15:04:00" />
+<meta name="date" content="2013-07-12 01:23:00" />
<link rel="stylesheet" type="text/css" href="etrice-doc.css" />
</head><body
>
@@ -21,175 +21,161 @@ href="etrice-docse5.html#tailetrice-docse5.html" >prev-tail</a>] [<a
href="#tailetrice-docse6.html">tail</a>] [<a
href="etrice-docch2.html#etrice-docse6.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">2.4 </span> <a
- id="x10-310002.4"></a>HelloWorld for Java</h3>
+ id="x10-330002.4"></a>HelloWorld for Java</h3>
<!--l. 3--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">2.4.1 </span> <a
- id="x10-320002.4.1"></a>Scope</h4>
-<!--l. 5--><p class="noindent" >In this tutorial you will build your first very simple eTrice model. The goal is to learn the work
-flow of eTrice and to understand a few basic features of ROOM. You will perform the following
-steps:
+ id="x10-340002.4.1"></a>Scope</h4>
+<!--l. 5--><p class="noindent" >In this tutorial you will build your first very simple eTrice model. The goal is to learn the work flow of eTrice and to
+understand a few basic features of ROOM. You will perform the following steps:
</p><!--l. 8--><p class="noindent" >
</p><ol class="enumerate1" >
<li
- class="enumerate" id="x10-32002x1">create a new model from scratch
+ class="enumerate" id="x10-34002x1">create a new model from scratch
</li>
<li
- class="enumerate" id="x10-32004x2">add a very simple state machine to an actor
+ class="enumerate" id="x10-34004x2">add a very simple state machine to an actor
</li>
<li
- class="enumerate" id="x10-32006x3">generate the source code
+ class="enumerate" id="x10-34006x3">generate the source code
</li>
<li
- class="enumerate" id="x10-32008x4">run the model
+ class="enumerate" id="x10-34008x4">run the model
</li>
<li
- class="enumerate" id="x10-32010x5">open the message sequence chart</li></ol>
+ class="enumerate" id="x10-34010x5">open the message sequence chart</li></ol>
<!--l. 16--><p class="noindent" >Make sure that you have set up the workspace as described in <span
-class="ec-lmsso-10">Setting up the workspace</span>.
+class="ec-lmsso-10">Setting up the Workspace for Java</span>.
</p><!--l. 18--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">2.4.2 </span> <a
- id="x10-330002.4.2"></a>Create a new model from scratch</h4>
-<!--l. 20--><p class="noindent" >The easiest way to create a new eTrice Project is to use the eclipse project wizard. From the eclipse file menu
-select <span
-class="ec-lmssbx-10">File-&#x003E;New-&#x003E;Project </span>and create a new eTrice project and name it <span
+ id="x10-350002.4.2"></a>Create a new model from scratch</h4>
+<!--l. 20--><p class="noindent" >The easiest way to create a new eTrice Project is to use the eclipse project wizard. From the eclipse file menu select
+<span
+class="ec-lmsso-10">File-&#x003E;New-&#x003E;Project </span>and create a new <span
+class="ec-lmsso-10">Empty eTrice Java Project </span>and name it <span
class="ec-lmssbx-10">HelloWorld</span>.
</p><!--l. 23--><p class="noindent" ><img
src="images/015-HelloWorld10.png" alt="PIC"
/>
-</p><!--l. 26--><p class="noindent" >The wizard creates everything that is needed to create, build and run an eTrice model. The resulting project
-should look like this:
+</p><!--l. 26--><p class="noindent" >The wizard creates everything that is needed to create, build and run an eTrice model. The resulting project should look like
+this:
</p><!--l. 29--><p class="noindent" ><img
src="images/015-HelloWorld11.png" alt="PIC"
/>
</p><!--l. 32--><p class="noindent" >Within the model directory the model file <span
class="ec-lmsso-10">HelloWorld.room </span>was created. Open the <span
-class="ec-lmsso-10">HelloWorld.room </span>file
-and delete the contents of the file. Open the content assist with Ctrl+Space and select <span
-class="ec-lmsso-10">model</span>
-<span
-class="ec-lmsso-10">skeleton</span>.
+class="ec-lmsso-10">HelloWorld.room </span>file and delete the
+contents of the file. Open the content assist with Ctrl+Space and select <span
+class="ec-lmsso-10">RoomModel - model skeleton</span>.
</p><!--l. 36--><p class="noindent" ><img
src="images/015-HelloWorld12.png" alt="PIC"
/>
-
-
</p><!--l. 39--><p class="noindent" >Edit the template variables by typing the new names and jumping with Tab from name to name.
</p><!--l. 41--><p class="noindent" >The resulting model code should look like this:
</p>
<!--l. 43-->
<div class="lstlisting" id="listing-1"><span class="label"><a
- id="x10-33001r1"></a><span
+ id="x10-35001r1"></a><span
class="ec-lmss-8x-x-62">1</span></span><span
class="ec-lmssbx-10x-x-90">RoomModel</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">HelloWorld</span><span
+class="ec-lmtt-9">HelloWorld_Model</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33002r2"></a><span
+ id="x10-35002r2"></a><span
class="ec-lmss-8x-x-62">2</span></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33003r3"></a><span
+ id="x10-35003r3"></a><span
class="ec-lmss-8x-x-62">3</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">System_HelloWorld</span><span
+class="ec-lmtt-9">LogSys1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33004r4"></a><span
+ id="x10-35004r4"></a><span
class="ec-lmss-8x-x-62">4</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">subsystem</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subSysRef1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SubSystem_HelloWorld</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33005r5"></a><span
+ id="x10-35005r5"></a><span
class="ec-lmss-8x-x-62">5</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33006r6"></a><span
+ id="x10-35006r6"></a><span
class="ec-lmss-8x-x-62">6</span></span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33007r7"></a><span
+ id="x10-35007r7"></a><span
class="ec-lmss-8x-x-62">7</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">SubSystem_HelloWorld</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33008r8"></a><span
+ id="x10-35008r8"></a><span
class="ec-lmss-8x-x-62">8</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorRef</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">application</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
class="ec-lmtt-9">:</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">HelloWorldTop</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33009r9"></a><span
+ id="x10-35009r9"></a><span
class="ec-lmss-8x-x-62">9</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">}</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">defaultThread</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33010r10"></a><span
+ id="x10-35010r10"></a><span
class="ec-lmss-8x-x-62">10</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33011r11"></a><span
+ id="x10-35011r11"></a><span
class="ec-lmss-8x-x-62">11</span></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-35012r12"></a><span
+class="ec-lmss-8x-x-62">12</span></span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmssbx-10x-x-90">ActorClass</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">HelloWorldTop</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">{</span><span
-class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33012r12"></a><span
-class="ec-lmss-8x-x-62">12</span></span><span
-class="ec-lmtt-9">&#x00A0;</span><span
-class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">&#x00A0;</span><span
class="ec-lmtt-9">}</span><span
class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
- id="x10-33013r13"></a><span
+ id="x10-35013r13"></a><span
class="ec-lmss-8x-x-62">13</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-35014r14"></a><span
+class="ec-lmss-8x-x-62">14</span></span><span
class="ec-lmtt-9">}</span>
+
+
</div>
-<!--l. 59--><p class="noindent" >The goal of eTrice is to describe distributed systems on a logical level. In the current version not all
-elements will be used. But as prerequisite for further versions the following elements can be defined:
-</p>
+<!--l. 1--><p class="noindent" >The goal of eTrice is to describe distributed systems on a logical level. In the current version not all elements will be used.
+But as prerequisite for further versions the following elements can be defined: </p>
<ul class="itemize1">
<li class="itemize">the <span
class="ec-lmsso-10">LogicalSystem </span>(currently optional)
@@ -199,106 +185,601 @@ class="ec-lmsso-10">SubSystemClass </span>(mandatory)
</li>
<li class="itemize">at least one <span
class="ec-lmsso-10">ActorClass </span>(mandatory)</li></ul>
-<!--l. 67--><p class="noindent" >The <span
+<!--l. 9--><p class="noindent" >The <span
class="ec-lmsso-10">LogicalSystem </span>represents the complete distributed system and contains at least one <span
-class="ec-lmsso-10">SubSystemRef</span>. The
+class="ec-lmsso-10">SubSystemRef</span>. The <span
+class="ec-lmsso-10">SubSystemClass</span>
+represents an address space (e.g. a linux process or an image for a microcontroller) and contains at least one <span
+class="ec-lmsso-10">ActorRef</span>. The
<span
-class="ec-lmsso-10">SubSystemClass </span>represents an address space and contains at least one <span
-class="ec-lmsso-10">ActorRef</span>. The <span
-class="ec-lmsso-10">ActorClass </span>is the
-building block of which an application will be built of. It is in general a good idea to define a top level actor
-that can be used as reference within the subsystem.
-</p><!--l. 72--><p class="noindent" >The outline view of the textual ROOM editor shows the main modeling elements in an easy to navigate
-tree.
-</p><!--l. 74--><p class="noindent" ><img
+class="ec-lmsso-10">ActorClass </span>is the building block for building the hierachical structure of an application. A good point to start is to define a
+top level actor that can be used as structural root within the subsystem.
+</p><!--l. 14--><p class="noindent" >The outline view of the textual ROOM editor shows the main modeling elements in a navigation tree. You can jump to an
+element in the textual editor by double clicking the element in the outline view.
+</p><!--l. 16--><p class="noindent" ><img
src="images/015-HelloWorld02.png" alt="PIC"
/>
-</p><!--l. 78--><p class="noindent" >
+</p><!--l. 19--><p class="noindent" >
</p>
<h4 class="subsectionHead"><span class="titlemark">2.4.3 </span> <a
- id="x10-340002.4.3"></a>Create a state machine</h4>
-<!--l. 80--><p class="noindent" >We will implement the Hello World code on the initial transition of the <span
-class="ec-lmsso-10">HelloWorldTop </span>actor. Therefore open
-the state machine editor by right clicking the <span
+ id="x10-360002.4.3"></a>Create a state machine</h4>
+<!--l. 21--><p class="noindent" >We will implement the Hello World code on the initial transition of the <span
+class="ec-lmsso-10">HelloWorldTop </span>actor. Therefore open the state
+machine editor by right clicking the <span
class="ec-lmsso-10">HelloWorldTop </span>actor in the outline view and select <span
-class="ec-lmsso-10">Edit</span>
-<span
-class="ec-lmsso-10">Behavior</span>.
-</p><!--l. 84--><p class="noindent" ><img
+class="ec-lmsso-10">Edit Behavior</span>.
+</p><!--l. 24--><p class="noindent" ><img
src="images/015-HelloWorld03.png" alt="PIC"
/>
-</p><!--l. 87--><p class="noindent" >The state machine editor will be opened. Drag and drop an <span
-class="ec-lmsso-10">Initial Point </span>from the tool box to the diagram into
-the top level state. Drag and drop a <span
-class="ec-lmsso-10">State </span>from the tool box to the diagram. Confirm the dialogue with
-<span
+</p><!--l. 27--><p class="noindent" >The state machine editor will be opened. Drag and drop an <span
+class="ec-lmsso-10">Initial Point </span>from the tool box to the diagram into the top level
+state. Drag and drop a <span
+class="ec-lmsso-10">State </span>from the tool box to the diagram. Confirm the dialogue with <span
class="ec-lmsso-10">ok</span>. Select the <span
-class="ec-lmsso-10">Transition </span>in the tool box and draw the transition from the <span
-class="ec-lmsso-10">Initial Point </span>to the
-State. Open the transition dialogue by double clicking the transition arrow and fill in the action
-code.
-
-
+class="ec-lmsso-10">Transition </span>in the
+tool box and draw the transition from the <span
+class="ec-lmsso-10">Initial Point </span>to the State. Open the transition dialogue by double
+clicking the transition arrow and fill in the action code. Be aware of the different action code in Java and
+C.
</p>
-<div class="verbatim" id="verbatim-1">
+<hr class="figure" /><div class="figure"
+>
+
+
+
+
+<div class="minipage">_________________________________________
+_________________________________________&#x00A0; &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0; &#x00A0; <!--l. 33--><p class="noindent" ><span
+class="ec-lmssbx-10">action code for Java</span>
+</p>
+<div class="verbatim" id="verbatim-3">
System.out.println("Hello&#x00A0;World&#x00A0;!");
</div>
-<!--l. 95--><p class="nopar" >
-</p><!--l. 97--><p class="noindent" >The result should look like this:
-</p><!--l. 99--><p class="noindent" ><img
+<!--l. 36--><p class="nopar" >
+</p></div> &#x00A0; <div class="minipage">_________________________________________________________________&#x00A0; &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0; &#x00A0; <!--l. 42--><p class="noindent" ><span
+class="ec-lmssbx-10">action code for C</span>
+</p>
+<div class="verbatim" id="verbatim-4">
+printf("Hello&#x00A0;World\n");
+</div>
+<!--l. 45--><p class="nopar" >
+</p></div>
+
+
+</div><hr class="endfigure" />
+<!--l. 51--><p class="noindent" >The result should look like this:
+</p><!--l. 53--><p class="noindent" ><img
src="images/015-HelloWorld04.png" alt="PIC"
/>
-</p><!--l. 102--><p class="noindent" >Save the diagram and inspect the model file. Note that the textual representation was created after saving the
-diagram.
-</p><!--l. 105--><p class="noindent" ><img
-src="images/015-HelloWorld05.png" alt="PIC"
- />
-</p><!--l. 109--><p class="noindent" >
+</p><!--l. 56--><p class="noindent" >Save the diagram and inspect the model (HelloWorld.room) file. Note that the textual representation was changed after
+saving the diagram.
</p>
+<hr class="figure" /><div class="figure"
+>
+
+
+
+
+<div class="minipage">
+______________________________________________
+______________________________________________&#x00A0; &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0; &#x00A0; <!--l. 62--><p class="noindent" ><span
+class="ec-lmssbx-10">room model for Java </span><br
+class="newline" /></p><!--l. 64-->
+<div class="lstlisting" id="listing-2"><span class="label"><a
+ id="x10-36001r1"></a><span
+class="ec-lmss-8x-x-62">1</span></span><span
+class="ec-lmssbx-10x-x-90">RoomModel</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">HelloWorld_Model</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36002r2"></a><span
+class="ec-lmss-8x-x-62">2</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalSystem</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">LogSys1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36003r3"></a><span
+class="ec-lmss-8x-x-62">3</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">subSysRef1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36004r4"></a><span
+class="ec-lmss-8x-x-62">4</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36005r5"></a><span
+class="ec-lmss-8x-x-62">5</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">SubSystemClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">SubSysClass1</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36006r6"></a><span
+class="ec-lmss-8x-x-62">6</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorRef</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">actorRef1</span><span
+class="ec-lmtt-9">:</span><span
+class="ec-lmtt-9">HelloWorldTop</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36007r7"></a><span
+class="ec-lmss-8x-x-62">7</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">LogicalThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">defaultThread</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36008r8"></a><span
+class="ec-lmss-8x-x-62">8</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36009r9"></a><span
+class="ec-lmss-8x-x-62">9</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">ActorClass</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">HelloWorldTop</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36010r10"></a><span
+class="ec-lmss-8x-x-62">10</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Structure</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">}</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /><span class="label"><a
+ id="x10-36011r11"></a><span
+class="ec-lmss-8x-x-62">11</span></span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmssbx-10x-x-90">Behavior</span><span
+class="ec-lmtt-9">&#x00A0;</span><span
+class="ec-lmtt-9">{</span><span
+class="ec-lmtt-9">&#x00A0;</span><br /