Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2011-12-07 12:11:22 +0000
committerHenrik Rentz-Reichert2011-12-07 12:11:22 +0000
commitd62b10acaa5795bf1c8145acc9dfca2aeefd1af9 (patch)
tree48fc123ed204af00be185046cbc6300269dbae1e
parentc0ff70a0115175a53919372e0b41fbe27af45306 (diff)
downloadorg.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.tar.gz
org.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.tar.xz
org.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.zip
[doc] finite state machines
-rw-r--r--plugins/org.eclipse.etrice.doc/build/etrice.textile109
-rw-r--r--plugins/org.eclipse.etrice.doc/build/etrice.xml240
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/040-room-concepts.textile108
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePoint.jpgbin0 -> 800 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpgbin0 -> 1741 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpgbin0 -> 1165 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpgbin0 -> 1532 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpgbin0 -> 1850 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpgbin0 -> 1207 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpgbin0 -> 1080 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpgbin0 -> 1518 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpgbin0 -> 15483 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpgbin0 -> 15628 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpgbin0 -> 5696 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpgbin0 -> 13256 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpgbin0 -> 685 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpgbin0 -> 1942 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpgbin0 -> 3525 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-State.jpgbin0 -> 1570 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpgbin0 -> 1757 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpgbin0 -> 1496 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpgbin0 -> 6614 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpgbin0 -> 5701 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpgbin0 -> 822 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpgbin0 -> 1974 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpgbin0 -> 2327 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpgbin0 -> 6259 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/FiniteStateMachine.html74
-rw-r--r--plugins/org.eclipse.etrice.doc/help/FiniteStateMachines.html325
-rw-r--r--plugins/org.eclipse.etrice.doc/help/Layering2.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html2
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-ChoicePoint.jpgbin0 -> 800 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpgbin0 -> 1741 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpgbin0 -> 1165 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpgbin0 -> 1532 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpgbin0 -> 1850 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpgbin0 -> 1207 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpgbin0 -> 1080 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpgbin0 -> 1518 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpgbin0 -> 15483 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpgbin0 -> 15628 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpgbin0 -> 5696 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpgbin0 -> 13256 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpgbin0 -> 685 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpgbin0 -> 1942 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpgbin0 -> 3525 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-State.jpgbin0 -> 1570 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpgbin0 -> 1757 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpgbin0 -> 1496 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpgbin0 -> 6614 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpgbin0 -> 5701 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpgbin0 -> 822 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpgbin0 -> 1974 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpgbin0 -> 2327 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpgbin0 -> 6259 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/etrice.html267
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-ChoicePoint.jpgbin0 -> 800 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpgbin0 -> 1741 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpgbin0 -> 1165 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpgbin0 -> 1532 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpgbin0 -> 1850 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpgbin0 -> 1207 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpgbin0 -> 1080 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpgbin0 -> 1518 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpgbin0 -> 15483 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpgbin0 -> 15628 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpgbin0 -> 5696 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpgbin0 -> 13256 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpgbin0 -> 685 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpgbin0 -> 1942 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpgbin0 -> 3525 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-State.jpgbin0 -> 1570 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpgbin0 -> 1757 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpgbin0 -> 1496 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpgbin0 -> 6614 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpgbin0 -> 5701 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpgbin0 -> 822 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpgbin0 -> 1974 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpgbin0 -> 2327 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpgbin0 -> 6259 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/manual/etrice.pdfbin4843893 -> 4953260 bytes
-rw-r--r--plugins/org.eclipse.etrice.doc/toc.xml17
82 files changed, 1047 insertions, 97 deletions
diff --git a/plugins/org.eclipse.etrice.doc/build/etrice.textile b/plugins/org.eclipse.etrice.doc/build/etrice.textile
index 38c972adf..7a1f61001 100644
--- a/plugins/org.eclipse.etrice.doc/build/etrice.textile
+++ b/plugins/org.eclipse.etrice.doc/build/etrice.textile
@@ -1262,14 +1262,119 @@ h3. Notation
</tr>
</table>
-h2. Finite State Machine
+h2. Finite State Machines
h3. Description
+Definition from "Wikipedia":http://en.wikipedia.org/wiki/Finite-state_machine:
+
+bq.
+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.
+
+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.
+
h3. Motivation
+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.
+
+We distinguish flat and hierarchical state machines.
+
h3. Notation
+h4. Flat Finite State Machine
+
+The simpler flat finite state machines are composed of the following elements:
+
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">*Description*</td>
+ <td align="center">*Graphical Notation*</td>
+ <td align="center">*Textual Notation*</td>
+ </tr>
+ <tr>
+ <td>State</td>
+ <td>!images/040-State.jpg!</td>
+ <td>!images/040-StateTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>InitialPoint</td>
+ <td>!images/040-InitialPoint.jpg!</td>
+ <td>_implicit_</td>
+ </tr>
+ <tr>
+ <td>TransitionPoint</td>
+ <td>!images/040-TransitionPoint.jpg!</td>
+ <td>!images/040-TransitionPointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>ChoicePoint</td>
+ <td>!images/040-ChoicePoint.jpg!</td>
+ <td>!images/040-ChoicePointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Initial Transition</td>
+ <td>!images/040-InitialTransition.jpg!</td>
+ <td>!images/040-InitialTransitionTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Triggered Transition</td>
+ <td>!images/040-TriggeredTransition.jpg!</td>
+ <td>!images/040-TriggeredTransitionTextual.jpg!</td>
+ </tr>
+</table>
+
+h4. Hierarchical Finite State Machine
+
+The hierarchical finite state machine adds the notion of a sub state machine nested in a state.
+A few modeling elements are added to the set listed above:
+
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">*Description*</td>
+ <td align="center">*Graphical Notation*</td>
+ <td align="center">*Textual Notation*</td>
+ </tr>
+ <tr>
+ <td>State with sub state machine</td>
+ <td>Parent State
+ !images/040-StateWithSubFSM.jpg!
+ Sub state machine
+ !images/040-SubFSM.jpg!</td>
+ <td>!images/040-StateWithSubFSMTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Entry Point</td>
+ <td>In sub state machine
+ !images/040-EntryPoint.jpg!
+ On parent state
+ !images/040-EntryPointRef.jpg!</td>
+ <td>!images/040-EntryPointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Exit Point</td>
+ <td>In sub state machine
+ !images/040-ExitPoint.jpg!
+ On parent state
+ !images/040-ExitPointRef.jpg!</td>
+ <td>!images/040-ExitPointTextual.jpg!</td>
+ </tr>
+</table>
+
h3. Examples
-h3. Details
+h4. Example of a flat finite state machine:
+
+!images/040-FlatFSM.jpg!
+
+h4. Example of a hierarchical finite state machine:
+
+Top level
+!images/040-HierarchicalFSMTop.jpg!
+
+Sub state machine of Initializing
+!images/040-HierarchicalFSMInitializing.jpg!
+
+Sub state machine of Running
+!images/040-HierarchicalFSMRunning.jpg!
+
+
diff --git a/plugins/org.eclipse.etrice.doc/build/etrice.xml b/plugins/org.eclipse.etrice.doc/build/etrice.xml
index d066bfb34..4a17eb49d 100644
--- a/plugins/org.eclipse.etrice.doc/build/etrice.xml
+++ b/plugins/org.eclipse.etrice.doc/build/etrice.xml
@@ -2351,22 +2351,252 @@ carLights.setState(TrafficLight3.OFF);
</para>
</section>
</section>
- <section id="FiniteStateMachine">
- <title>Finite State Machine</title>
+ <section id="FiniteStateMachines">
+ <title>Finite State Machines</title>
<section id="Description6">
<title>Description</title>
+ <para>Definition from
+ <ulink url="http://en.wikipedia.org/wiki/Finite-state_machine">Wikipedia</ulink>:
+ </para>
+ <blockquote>
+ <para>
+ 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.</para>
+ </blockquote>
+ <para>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.</para>
</section>
<section id="Motivation4">
<title>Motivation</title>
+ <para>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.</para>
+ <para>We distinguish flat and hierarchical state machines.</para>
</section>
<section id="Notation6">
<title>Notation</title>
+ <section id="FlatFiniteStateMachine">
+ <title>Flat Finite State Machine</title>
+ <para>The simpler flat finite state machines are composed of the following elements:</para>
+ <para><table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">
+ <emphasis role="bold">Description</emphasis></td>
+ <td align="center">
+ <emphasis role="bold">Graphical Notation</emphasis></td>
+ <td align="center">
+ <emphasis role="bold">Textual Notation</emphasis></td>
+ </tr>
+ <tr>
+ <td>State</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-State.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-StateTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>InitialPoint</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-InitialPoint.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <emphasis>implicit</emphasis></td>
+ </tr>
+ <tr>
+ <td>TransitionPoint</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-TransitionPoint.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-TransitionPointTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>ChoicePoint</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-ChoicePoint.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-ChoicePointTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>Initial Transition</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-InitialTransition.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-InitialTransitionTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>Triggered Transition</td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-TriggeredTransition.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-TriggeredTransitionTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+</table>
+ </para>
+ </section>
+ <section id="HierarchicalFiniteStateMachine">
+ <title>Hierarchical Finite State Machine</title>
+ <para>The hierarchical finite state machine adds the notion of a sub state machine nested in a state.
+ A few modeling elements are added to the set listed above:</para>
+ <para><table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">
+ <emphasis role="bold">Description</emphasis></td>
+ <td align="center">
+ <emphasis role="bold">Graphical Notation</emphasis></td>
+ <td align="center">
+ <emphasis role="bold">Textual Notation</emphasis></td>
+ </tr>
+ <tr>
+ <td>State with sub state machine</td>
+ <td>Parent State
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-StateWithSubFSM.jpg"/>
+ </imageobject>
+ </mediaobject>
+ Sub state machine
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-SubFSM.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-StateWithSubFSMTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>Entry Point</td>
+ <td>In sub state machine
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-EntryPoint.jpg"/>
+ </imageobject>
+ </mediaobject>
+ On parent state
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-EntryPointRef.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-EntryPointTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+ <tr>
+ <td>Exit Point</td>
+ <td>In sub state machine
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-ExitPoint.jpg"/>
+ </imageobject>
+ </mediaobject>
+ On parent state
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-ExitPointRef.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ <td>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-ExitPointTextual.jpg"/>
+ </imageobject>
+ </mediaobject></td>
+ </tr>
+</table>
+ </para>
+ </section>
</section>
<section id="Examples">
<title>Examples</title>
- </section>
- <section id="Details2">
- <title>Details</title>
+ <section id="Exampleofaflatfinitestatemachine">
+ <title>Example of a flat finite state machine:</title>
+ <para>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-FlatFSM.jpg"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ </section>
+ <section id="Exampleofahierarchicalfinitestatemachine">
+ <title>Example of a hierarchical finite state machine:</title>
+ <para>Top level
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-HierarchicalFSMTop.jpg"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>Sub state machine of Initializing
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-HierarchicalFSMInitializing.jpg"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ <para>Sub state machine of Running
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/040-HierarchicalFSMRunning.jpg"/>
+ </imageobject>
+ </mediaobject>
+ </para>
+ </section>
</section>
</section>
</chapter>
diff --git a/plugins/org.eclipse.etrice.doc/doc/040-room-concepts.textile b/plugins/org.eclipse.etrice.doc/doc/040-room-concepts.textile
index 7bdab733e..a3dbfe4b5 100644
--- a/plugins/org.eclipse.etrice.doc/doc/040-room-concepts.textile
+++ b/plugins/org.eclipse.etrice.doc/doc/040-room-concepts.textile
@@ -313,14 +313,118 @@ h3. Notation
</tr>
</table>
-h2. Finite State Machine
+h2. Finite State Machines
h3. Description
+Definition from "Wikipedia":http://en.wikipedia.org/wiki/Finite-state_machine:
+
+bq.
+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.
+
+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.
+
h3. Motivation
+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.
+
+We distinguish flat and hierarchical state machines.
+
h3. Notation
+h4. Flat Finite State Machine
+
+The simpler flat finite state machines are composed of the following elements:
+
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">*Description*</td>
+ <td align="center">*Graphical Notation*</td>
+ <td align="center">*Textual Notation*</td>
+ </tr>
+ <tr>
+ <td>State</td>
+ <td>!images/040-State.jpg!</td>
+ <td>!images/040-StateTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>InitialPoint</td>
+ <td>!images/040-InitialPoint.jpg!</td>
+ <td>_implicit_</td>
+ </tr>
+ <tr>
+ <td>TransitionPoint</td>
+ <td>!images/040-TransitionPoint.jpg!</td>
+ <td>!images/040-TransitionPointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>ChoicePoint</td>
+ <td>!images/040-ChoicePoint.jpg!</td>
+ <td>!images/040-ChoicePointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Initial Transition</td>
+ <td>!images/040-InitialTransition.jpg!</td>
+ <td>!images/040-InitialTransitionTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Triggered Transition</td>
+ <td>!images/040-TriggeredTransition.jpg!</td>
+ <td>!images/040-TriggeredTransitionTextual.jpg!</td>
+ </tr>
+</table>
+
+h4. Hierarchical Finite State Machine
+
+The hierarchical finite state machine adds the notion of a sub state machine nested in a state.
+A few modeling elements are added to the set listed above:
+
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0">
+ <tr>
+ <td align="center">*Description*</td>
+ <td align="center">*Graphical Notation*</td>
+ <td align="center">*Textual Notation*</td>
+ </tr>
+ <tr>
+ <td>State with sub state machine</td>
+ <td>Parent State
+ !images/040-StateWithSubFSM.jpg!
+ Sub state machine
+ !images/040-SubFSM.jpg!</td>
+ <td>!images/040-StateWithSubFSMTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Entry Point</td>
+ <td>In sub state machine
+ !images/040-EntryPoint.jpg!
+ On parent state
+ !images/040-EntryPointRef.jpg!</td>
+ <td>!images/040-EntryPointTextual.jpg!</td>
+ </tr>
+ <tr>
+ <td>Exit Point</td>
+ <td>In sub state machine
+ !images/040-ExitPoint.jpg!
+ On parent state
+ !images/040-ExitPointRef.jpg!</td>
+ <td>!images/040-ExitPointTextual.jpg!</td>
+ </tr>
+</table>
+
h3. Examples
-h3. Details \ No newline at end of file
+h4. Example of a flat finite state machine:
+
+!images/040-FlatFSM.jpg!
+
+h4. Example of a hierarchical finite state machine:
+
+Top level
+!images/040-HierarchicalFSMTop.jpg!
+
+Sub state machine of Initializing
+!images/040-HierarchicalFSMInitializing.jpg!
+
+Sub state machine of Running
+!images/040-HierarchicalFSMRunning.jpg!
+
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePoint.jpg
new file mode 100644
index 000000000..ba9f2fd04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg
new file mode 100644
index 000000000..b5fe77c83
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg
new file mode 100644
index 000000000..12d076db6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg
new file mode 100644
index 000000000..32d3a8440
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg
new file mode 100644
index 000000000..86ea3794a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg
new file mode 100644
index 000000000..80f55fa16
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg
new file mode 100644
index 000000000..8d0362240
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg
new file mode 100644
index 000000000..2420fb3b8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg
new file mode 100644
index 000000000..67b18902b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg
new file mode 100644
index 000000000..544e4944c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg
new file mode 100644
index 000000000..6dd1be46b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg
new file mode 100644
index 000000000..2a50608d4
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg
new file mode 100644
index 000000000..dccc9166f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg
new file mode 100644
index 000000000..a2c11d2f0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg
new file mode 100644
index 000000000..8c6ccff04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg
new file mode 100644
index 000000000..10eff6ed5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg
new file mode 100644
index 000000000..1c2a14e37
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg
new file mode 100644
index 000000000..1e5096139
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg
new file mode 100644
index 000000000..92d520c3f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg
new file mode 100644
index 000000000..693f1a573
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg
new file mode 100644
index 000000000..813e18f50
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg
new file mode 100644
index 000000000..d9a44c9b9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg
new file mode 100644
index 000000000..b64e92065
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg
new file mode 100644
index 000000000..e84224dc8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/FiniteStateMachine.html b/plugins/org.eclipse.etrice.doc/help/FiniteStateMachine.html
deleted file mode 100644
index b074ffa86..000000000
--- a/plugins/org.eclipse.etrice.doc/help/FiniteStateMachine.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<html>
-<head>
-<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Finite State Machine</title>
-<link href="book.css" rel="stylesheet" type="text/css">
-<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
-<link rel="home" href="index.html" title="eTrice User Guide">
-<link rel="up" href="ROOMConcepts.html" title="ROOM Concepts">
-<link rel="prev" href="Layering2.html" title="Layering">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Finite State Machine</h1>
-<div class="section" title="Finite State Machine">
-<div class="titlepage">
-<div>
-<div>
-<h2 class="title" style="clear: both">
-<a name="FiniteStateMachine"></a>Finite State Machine</h2>
-</div>
-</div>
-</div>
-<div class="section" title="Description">
-<div class="titlepage">
-<div>
-<div>
-<h3 class="title">
-<a name="Description6"></a>Description</h3>
-</div>
-</div>
-</div>
-</div>
-<div class="section" title="Motivation">
-<div class="titlepage">
-<div>
-<div>
-<h3 class="title">
-<a name="Motivation4"></a>Motivation</h3>
-</div>
-</div>
-</div>
-</div>
-<div class="section" title="Notation">
-<div class="titlepage">
-<div>
-<div>
-<h3 class="title">
-<a name="Notation6"></a>Notation</h3>
-</div>
-</div>
-</div>
-</div>
-<div class="section" title="Examples">
-<div class="titlepage">
-<div>
-<div>
-<h3 class="title">
-<a name="Examples"></a>Examples</h3>
-</div>
-</div>
-</div>
-</div>
-<div class="section" title="Details">
-<div class="titlepage">
-<div>
-<div>
-<h3 class="title">
-<a name="Details2"></a>Details</h3>
-</div>
-</div>
-</div>
-</div>
-</div>
-</body>
-</html>
diff --git a/plugins/org.eclipse.etrice.doc/help/FiniteStateMachines.html b/plugins/org.eclipse.etrice.doc/help/FiniteStateMachines.html
new file mode 100644
index 000000000..3300f682f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/FiniteStateMachines.html
@@ -0,0 +1,325 @@
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Finite State Machines</title>
+<link href="book.css" rel="stylesheet" type="text/css">
+<meta content="DocBook XSL Stylesheets V1.75.1" name="generator">
+<link rel="home" href="index.html" title="eTrice User Guide">
+<link rel="up" href="ROOMConcepts.html" title="ROOM Concepts">
+<link rel="prev" href="Layering2.html" title="Layering">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Finite State Machines</h1>
+<div class="section" title="Finite State Machines">
+<div class="titlepage">
+<div>
+<div>
+<h2 class="title" style="clear: both">
+<a name="FiniteStateMachines"></a>Finite State Machines</h2>
+</div>
+</div>
+</div>
+<div class="section" title="Description">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Description6"></a>Description</h3>
+</div>
+</div>
+</div>
+<p>Definition from
+ <a class="ulink" href="http://en.wikipedia.org/wiki/Finite-state_machine" target="_new">Wikipedia</a>:
+ </p>
+<div class="blockquote">
+<blockquote class="blockquote">
+<p>
+ 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>
+</blockquote>
+</div>
+<p>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>
+<div class="section" title="Motivation">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Motivation4"></a>Motivation</h3>
+</div>
+</div>
+</div>
+<p>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>
+<p>We distinguish flat and hierarchical state machines.</p>
+</div>
+<div class="section" title="Notation">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Notation6"></a>Notation</h3>
+</div>
+</div>
+</div>
+<div class="section" title="Flat Finite State Machine">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="FlatFiniteStateMachine"></a>Flat Finite State Machine</h4>
+</div>
+</div>
+</div>
+<p>The simpler flat finite state machines are composed of the following elements:</p>
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0" id="N10D3A">
+<tr>
+
+<td align="center">
+ <span class="bold"><strong>Description</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Graphical Notation</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Textual Notation</strong></span></td>
+
+</tr>
+<tr>
+
+<td>State</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-State.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-StateTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>InitialPoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialPoint.jpg"></div>
+</td>
+ <td>
+ <span class="emphasis"><em>implicit</em></span></td>
+
+</tr>
+<tr>
+
+<td>TransitionPoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TransitionPoint.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TransitionPointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>ChoicePoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ChoicePoint.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ChoicePointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Initial Transition</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialTransition.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialTransitionTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Triggered Transition</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TriggeredTransition.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TriggeredTransitionTextual.jpg"></div>
+</td>
+
+</tr>
+</table>
+<p>
+
+</p>
+</div>
+<div class="section" title="Hierarchical Finite State Machine">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="HierarchicalFiniteStateMachine"></a>Hierarchical Finite State Machine</h4>
+</div>
+</div>
+</div>
+<p>The hierarchical finite state machine adds the notion of a sub state machine nested in a state.
+ A few modeling elements are added to the set listed above:</p>
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0" id="N10DF9">
+<tr>
+
+<td align="center">
+ <span class="bold"><strong>Description</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Graphical Notation</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Textual Notation</strong></span></td>
+
+</tr>
+<tr>
+
+<td>State with sub state machine</td>
+ <td>Parent State
+
+ <div class="mediaobject">
+<img src="images/040-StateWithSubFSM.jpg"></div>
+ Sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-SubFSM.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-StateWithSubFSMTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Entry Point</td>
+ <td>In sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-EntryPoint.jpg"></div>
+ On parent state
+
+ <div class="mediaobject">
+<img src="images/040-EntryPointRef.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-EntryPointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Exit Point</td>
+ <td>In sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-ExitPoint.jpg"></div>
+ On parent state
+
+ <div class="mediaobject">
+<img src="images/040-ExitPointRef.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ExitPointTextual.jpg"></div>
+</td>
+
+</tr>
+</table>
+<p>
+
+</p>
+</div>
+</div>
+<div class="section" title="Examples">
+<div class="titlepage">
+<div>
+<div>
+<h3 class="title">
+<a name="Examples"></a>Examples</h3>
+</div>
+</div>
+</div>
+<div class="section" title="Example of a flat finite state machine:">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Exampleofaflatfinitestatemachine"></a>Example of a flat finite state machine:</h4>
+</div>
+</div>
+</div>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/040-FlatFSM.jpg"></div>
+<p>
+
+</p>
+</div>
+<div class="section" title="Example of a hierarchical finite state machine:">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Exampleofahierarchicalfinitestatemachine"></a>Example of a hierarchical finite state machine:</h4>
+</div>
+</div>
+</div>
+<p>Top level
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMTop.jpg"></div>
+<p>
+
+</p>
+<p>Sub state machine of Initializing
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMInitializing.jpg"></div>
+<p>
+
+</p>
+<p>Sub state machine of Running
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMRunning.jpg"></div>
+<p>
+
+</p>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/plugins/org.eclipse.etrice.doc/help/Layering2.html b/plugins/org.eclipse.etrice.doc/help/Layering2.html
index 9407dfe8b..9494b16bd 100644
--- a/plugins/org.eclipse.etrice.doc/help/Layering2.html
+++ b/plugins/org.eclipse.etrice.doc/help/Layering2.html
@@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="eTrice User Guide">
<link rel="up" href="ROOMConcepts.html" title="ROOM Concepts">
<link rel="prev" href="DataClass.html" title="DataClass">
-<link rel="next" href="FiniteStateMachine.html" title="Finite State Machine">
+<link rel="next" href="FiniteStateMachines.html" title="Finite State Machines">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<h1 xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">Layering</h1>
diff --git a/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html b/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
index 94435a99c..78890517c 100644
--- a/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
+++ b/plugins/org.eclipse.etrice.doc/help/ROOMConcepts.html
@@ -38,7 +38,7 @@
<span class="section"><a href="Layering2.html">Layering</a></span>
</dt>
<dt>
-<span class="section"><a href="FiniteStateMachine.html">Finite State Machine</a></span>
+<span class="section"><a href="FiniteStateMachines.html">Finite State Machines</a></span>
</dt>
</dl>
</div>
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePoint.jpg
new file mode 100644
index 000000000..ba9f2fd04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg
new file mode 100644
index 000000000..b5fe77c83
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg
new file mode 100644
index 000000000..12d076db6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg
new file mode 100644
index 000000000..32d3a8440
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg
new file mode 100644
index 000000000..86ea3794a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg
new file mode 100644
index 000000000..80f55fa16
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg
new file mode 100644
index 000000000..8d0362240
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg
new file mode 100644
index 000000000..2420fb3b8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg
new file mode 100644
index 000000000..67b18902b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg
new file mode 100644
index 000000000..544e4944c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg
new file mode 100644
index 000000000..6dd1be46b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg
new file mode 100644
index 000000000..2a50608d4
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg
new file mode 100644
index 000000000..dccc9166f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg
new file mode 100644
index 000000000..a2c11d2f0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg
new file mode 100644
index 000000000..8c6ccff04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg
new file mode 100644
index 000000000..10eff6ed5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg
new file mode 100644
index 000000000..1c2a14e37
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg
new file mode 100644
index 000000000..1e5096139
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg
new file mode 100644
index 000000000..92d520c3f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg
new file mode 100644
index 000000000..693f1a573
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg
new file mode 100644
index 000000000..813e18f50
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg
new file mode 100644
index 000000000..d9a44c9b9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg
new file mode 100644
index 000000000..b64e92065
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg
new file mode 100644
index 000000000..e84224dc8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice.html b/plugins/org.eclipse.etrice.doc/html/etrice.html
index 7e35ab63b..95c355665 100644
--- a/plugins/org.eclipse.etrice.doc/html/etrice.html
+++ b/plugins/org.eclipse.etrice.doc/html/etrice.html
@@ -180,7 +180,7 @@
<span class="section"><a href="#Layering2">Layering</a></span>
</dt>
<dt>
-<span class="section"><a href="#FiniteStateMachine">Finite State Machine</a></span>
+<span class="section"><a href="#FiniteStateMachines">Finite State Machines</a></span>
</dt>
</dl>
</dd>
@@ -205,6 +205,10 @@
</dt>
<dt>8.6. <a href="#N10C8A"></a>
</dt>
+<dt>8.7. <a href="#N10D3A"></a>
+</dt>
+<dt>8.8. <a href="#N10DF9"></a>
+</dt>
</dl>
</div>
<div class="chapter" title="Chapter&nbsp;1.&nbsp;eTrice Overview">
@@ -3439,12 +3443,12 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</p>
</div>
</div>
-<div class="section" title="Finite State Machine">
+<div class="section" title="Finite State Machines">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both">
-<a name="FiniteStateMachine"></a>Finite State Machine</h2>
+<a name="FiniteStateMachines"></a>Finite State Machines</h2>
</div>
</div>
</div>
@@ -3457,6 +3461,16 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
+<p>Definition from
+ <a class="ulink" href="http://en.wikipedia.org/wiki/Finite-state_machine" target="_new">Wikipedia</a>:
+ </p>
+<div class="blockquote">
+<blockquote class="blockquote">
+<p>
+ 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>
+</blockquote>
+</div>
+<p>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>
<div class="section" title="Motivation">
<div class="titlepage">
@@ -3467,6 +3481,8 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
+<p>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>
+<p>We distinguish flat and hierarchical state machines.</p>
</div>
<div class="section" title="Notation">
<div class="titlepage">
@@ -3477,6 +3493,203 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
+<div class="section" title="Flat Finite State Machine">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="FlatFiniteStateMachine"></a>Flat Finite State Machine</h4>
+</div>
+</div>
+</div>
+<p>The simpler flat finite state machines are composed of the following elements:</p>
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0" id="N10D3A">
+<tr>
+
+<td align="center">
+ <span class="bold"><strong>Description</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Graphical Notation</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Textual Notation</strong></span></td>
+
+</tr>
+<tr>
+
+<td>State</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-State.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-StateTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>InitialPoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialPoint.jpg"></div>
+</td>
+ <td>
+ <span class="emphasis"><em>implicit</em></span></td>
+
+</tr>
+<tr>
+
+<td>TransitionPoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TransitionPoint.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TransitionPointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>ChoicePoint</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ChoicePoint.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ChoicePointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Initial Transition</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialTransition.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-InitialTransitionTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Triggered Transition</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TriggeredTransition.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-TriggeredTransitionTextual.jpg"></div>
+</td>
+
+</tr>
+</table>
+<p>
+
+</p>
+</div>
+<div class="section" title="Hierarchical Finite State Machine">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="HierarchicalFiniteStateMachine"></a>Hierarchical Finite State Machine</h4>
+</div>
+</div>
+</div>
+<p>The hierarchical finite state machine adds the notion of a sub state machine nested in a state.
+ A few modeling elements are added to the set listed above:</p>
+<table title="Title" frame="box" border="2" cellpadding="3" cellspacing="0" id="N10DF9">
+<tr>
+
+<td align="center">
+ <span class="bold"><strong>Description</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Graphical Notation</strong></span></td>
+ <td align="center">
+ <span class="bold"><strong>Textual Notation</strong></span></td>
+
+</tr>
+<tr>
+
+<td>State with sub state machine</td>
+ <td>Parent State
+
+ <div class="mediaobject">
+<img src="images/040-StateWithSubFSM.jpg"></div>
+ Sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-SubFSM.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-StateWithSubFSMTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Entry Point</td>
+ <td>In sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-EntryPoint.jpg"></div>
+ On parent state
+
+ <div class="mediaobject">
+<img src="images/040-EntryPointRef.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-EntryPointTextual.jpg"></div>
+</td>
+
+</tr>
+<tr>
+
+<td>Exit Point</td>
+ <td>In sub state machine
+
+ <div class="mediaobject">
+<img src="images/040-ExitPoint.jpg"></div>
+ On parent state
+
+ <div class="mediaobject">
+<img src="images/040-ExitPointRef.jpg"></div>
+</td>
+ <td>
+
+<div class="mediaobject">
+<img src="images/040-ExitPointTextual.jpg"></div>
+</td>
+
+</tr>
+</table>
+<p>
+
+</p>
+</div>
</div>
<div class="section" title="Examples">
<div class="titlepage">
@@ -3487,15 +3700,57 @@ carLights.setState(TrafficLight3.OFF);&nbsp;<br>
</div>
</div>
</div>
+<div class="section" title="Example of a flat finite state machine:">
+<div class="titlepage">
+<div>
+<div>
+<h4 class="title">
+<a name="Exampleofaflatfinitestatemachine"></a>Example of a flat finite state machine:</h4>
+</div>
</div>
-<div class="section" title="Details">
+</div>
+<p>
+
+</p>
+<div class="mediaobject">
+<img src="images/040-FlatFSM.jpg"></div>
+<p>
+
+</p>
+</div>
+<div class="section" title="Example of a hierarchical finite state machine:">
<div class="titlepage">
<div>
<div>
-<h3 class="title">
-<a name="Details2"></a>Details</h3>
+<h4 class="title">
+<a name="Exampleofahierarchicalfinitestatemachine"></a>Example of a hierarchical finite state machine:</h4>
+</div>
</div>
</div>
+<p>Top level
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMTop.jpg"></div>
+<p>
+
+</p>
+<p>Sub state machine of Initializing
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMInitializing.jpg"></div>
+<p>
+
+</p>
+<p>Sub state machine of Running
+
+ </p>
+<div class="mediaobject">
+<img src="images/040-HierarchicalFSMRunning.jpg"></div>
+<p>
+
+</p>
</div>
</div>
</div>
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePoint.jpg
new file mode 100644
index 000000000..ba9f2fd04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg
new file mode 100644
index 000000000..b5fe77c83
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg
new file mode 100644
index 000000000..12d076db6
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg
new file mode 100644
index 000000000..32d3a8440
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg
new file mode 100644
index 000000000..86ea3794a
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg
new file mode 100644
index 000000000..80f55fa16
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg
new file mode 100644
index 000000000..8d0362240
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg
new file mode 100644
index 000000000..2420fb3b8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg
new file mode 100644
index 000000000..67b18902b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg
new file mode 100644
index 000000000..544e4944c
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg
new file mode 100644
index 000000000..6dd1be46b
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg
new file mode 100644
index 000000000..2a50608d4
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg
new file mode 100644
index 000000000..dccc9166f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg
new file mode 100644
index 000000000..a2c11d2f0
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg
new file mode 100644
index 000000000..8c6ccff04
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg
new file mode 100644
index 000000000..10eff6ed5
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg
new file mode 100644
index 000000000..1c2a14e37
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg
new file mode 100644
index 000000000..1e5096139
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg
new file mode 100644
index 000000000..92d520c3f
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg
new file mode 100644
index 000000000..693f1a573
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg
new file mode 100644
index 000000000..813e18f50
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg
new file mode 100644
index 000000000..d9a44c9b9
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg
new file mode 100644
index 000000000..b64e92065
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg
new file mode 100644
index 000000000..e84224dc8
--- /dev/null
+++ b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
index 8877459fb..e24d7da2b 100644
--- a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
+++ b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf
Binary files differ
diff --git a/plugins/org.eclipse.etrice.doc/toc.xml b/plugins/org.eclipse.etrice.doc/toc.xml
index 58e267788..341745706 100644
--- a/plugins/org.eclipse.etrice.doc/toc.xml
+++ b/plugins/org.eclipse.etrice.doc/toc.xml
@@ -97,12 +97,17 @@
<topic href="help/Layering2.html#Description5" label="Description"></topic>
<topic href="help/Layering2.html#Notation5" label="Notation"></topic>
</topic>
-<topic href="help/FiniteStateMachine.html" label="Finite State Machine">
-<topic href="help/FiniteStateMachine.html#Description6" label="Description"></topic>
-<topic href="help/FiniteStateMachine.html#Motivation4" label="Motivation"></topic>
-<topic href="help/FiniteStateMachine.html#Notation6" label="Notation"></topic>
-<topic href="help/FiniteStateMachine.html#Examples" label="Examples"></topic>
-<topic href="help/FiniteStateMachine.html#Details2" label="Details"></topic>
+<topic href="help/FiniteStateMachines.html" label="Finite State Machines">
+<topic href="help/FiniteStateMachines.html#Description6" label="Description"></topic>
+<topic href="help/FiniteStateMachines.html#Motivation4" label="Motivation"></topic>
+<topic href="help/FiniteStateMachines.html#Notation6" label="Notation">
+<topic href="help/FiniteStateMachines.html#FlatFiniteStateMachine" label="Flat Finite State Machine"></topic>
+<topic href="help/FiniteStateMachines.html#HierarchicalFiniteStateMachine" label="Hierarchical Finite State Machine"></topic>
+</topic>
+<topic href="help/FiniteStateMachines.html#Examples" label="Examples">
+<topic href="help/FiniteStateMachines.html#Exampleofaflatfinitestatemachine" label="Example of a flat finite state machine:"></topic>
+<topic href="help/FiniteStateMachines.html#Exampleofahierarchicalfinitestatemachine" label="Example of a hierarchical finite state machine:"></topic>
+</topic>
</topic>
</topic>
</toc>

Back to the top