diff options
author | Henrik Rentz-Reichert | 2011-12-07 12:11:22 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2011-12-07 12:11:22 +0000 |
commit | d62b10acaa5795bf1c8145acc9dfca2aeefd1af9 (patch) | |
tree | 48fc123ed204af00be185046cbc6300269dbae1e | |
parent | c0ff70a0115175a53919372e0b41fbe27af45306 (diff) | |
download | org.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.tar.gz org.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.tar.xz org.eclipse.etrice-d62b10acaa5795bf1c8145acc9dfca2aeefd1af9.zip |
[doc] finite state machines
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 Binary files differnew file mode 100644 index 000000000..ba9f2fd04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg Binary files differnew file mode 100644 index 000000000..b5fe77c83 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ChoicePointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg Binary files differnew file mode 100644 index 000000000..12d076db6 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg Binary files differnew file mode 100644 index 000000000..32d3a8440 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg Binary files differnew file mode 100644 index 000000000..86ea3794a --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-EntryPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg Binary files differnew file mode 100644 index 000000000..80f55fa16 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg Binary files differnew file mode 100644 index 000000000..8d0362240 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg Binary files differnew file mode 100644 index 000000000..2420fb3b8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-ExitPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg Binary files differnew file mode 100644 index 000000000..67b18902b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-FlatFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg Binary files differnew file mode 100644 index 000000000..544e4944c --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMInitializing.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg Binary files differnew file mode 100644 index 000000000..6dd1be46b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMRunning.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg Binary files differnew file mode 100644 index 000000000..2a50608d4 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-HierarchicalFSMTop.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg Binary files differnew file mode 100644 index 000000000..dccc9166f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg Binary files differnew file mode 100644 index 000000000..a2c11d2f0 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..8c6ccff04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-InitialTransitionTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg Binary files differnew file mode 100644 index 000000000..10eff6ed5 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-State.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg Binary files differnew file mode 100644 index 000000000..1c2a14e37 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg Binary files differnew file mode 100644 index 000000000..1e5096139 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg Binary files differnew file mode 100644 index 000000000..92d520c3f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-StateWithSubFSMTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg Binary files differnew file mode 100644 index 000000000..693f1a573 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-SubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg Binary files differnew file mode 100644 index 000000000..813e18f50 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg Binary files differnew file mode 100644 index 000000000..d9a44c9b9 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TransitionPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg Binary files differnew file mode 100644 index 000000000..b64e92065 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..e84224dc8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc/images/040-TriggeredTransitionTextual.jpg 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 Binary files differnew file mode 100644 index 000000000..ba9f2fd04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg Binary files differnew file mode 100644 index 000000000..b5fe77c83 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-ChoicePointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg Binary files differnew file mode 100644 index 000000000..12d076db6 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg Binary files differnew file mode 100644 index 000000000..32d3a8440 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg Binary files differnew file mode 100644 index 000000000..86ea3794a --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-EntryPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg Binary files differnew file mode 100644 index 000000000..80f55fa16 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg Binary files differnew file mode 100644 index 000000000..8d0362240 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg Binary files differnew file mode 100644 index 000000000..2420fb3b8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-ExitPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg Binary files differnew file mode 100644 index 000000000..67b18902b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-FlatFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg Binary files differnew file mode 100644 index 000000000..544e4944c --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMInitializing.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg Binary files differnew file mode 100644 index 000000000..6dd1be46b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMRunning.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg Binary files differnew file mode 100644 index 000000000..2a50608d4 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-HierarchicalFSMTop.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg Binary files differnew file mode 100644 index 000000000..dccc9166f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg Binary files differnew file mode 100644 index 000000000..a2c11d2f0 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..8c6ccff04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-InitialTransitionTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg Binary files differnew file mode 100644 index 000000000..10eff6ed5 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-State.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg Binary files differnew file mode 100644 index 000000000..1c2a14e37 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg Binary files differnew file mode 100644 index 000000000..1e5096139 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg Binary files differnew file mode 100644 index 000000000..92d520c3f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-StateWithSubFSMTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg Binary files differnew file mode 100644 index 000000000..693f1a573 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-SubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg Binary files differnew file mode 100644 index 000000000..813e18f50 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg Binary files differnew file mode 100644 index 000000000..d9a44c9b9 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-TransitionPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg Binary files differnew file mode 100644 index 000000000..b64e92065 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..e84224dc8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/help/images/040-TriggeredTransitionTextual.jpg 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 1. eTrice Overview">
@@ -3439,12 +3443,12 @@ carLights.setState(TrafficLight3.OFF); <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); <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); <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); <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); <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 Binary files differnew file mode 100644 index 000000000..ba9f2fd04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg Binary files differnew file mode 100644 index 000000000..b5fe77c83 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-ChoicePointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg Binary files differnew file mode 100644 index 000000000..12d076db6 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg Binary files differnew file mode 100644 index 000000000..32d3a8440 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg Binary files differnew file mode 100644 index 000000000..86ea3794a --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-EntryPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg Binary files differnew file mode 100644 index 000000000..80f55fa16 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg Binary files differnew file mode 100644 index 000000000..8d0362240 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointRef.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg Binary files differnew file mode 100644 index 000000000..2420fb3b8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-ExitPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg Binary files differnew file mode 100644 index 000000000..67b18902b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-FlatFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg Binary files differnew file mode 100644 index 000000000..544e4944c --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMInitializing.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg Binary files differnew file mode 100644 index 000000000..6dd1be46b --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMRunning.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg Binary files differnew file mode 100644 index 000000000..2a50608d4 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-HierarchicalFSMTop.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg Binary files differnew file mode 100644 index 000000000..dccc9166f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg Binary files differnew file mode 100644 index 000000000..a2c11d2f0 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..8c6ccff04 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-InitialTransitionTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg Binary files differnew file mode 100644 index 000000000..10eff6ed5 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-State.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg Binary files differnew file mode 100644 index 000000000..1c2a14e37 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg Binary files differnew file mode 100644 index 000000000..1e5096139 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg Binary files differnew file mode 100644 index 000000000..92d520c3f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-StateWithSubFSMTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg Binary files differnew file mode 100644 index 000000000..693f1a573 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-SubFSM.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg Binary files differnew file mode 100644 index 000000000..813e18f50 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPoint.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg Binary files differnew file mode 100644 index 000000000..d9a44c9b9 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-TransitionPointTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg Binary files differnew file mode 100644 index 000000000..b64e92065 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransition.jpg diff --git a/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg Binary files differnew file mode 100644 index 000000000..e84224dc8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/images/040-TriggeredTransitionTextual.jpg diff --git a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf Binary files differindex 8877459fb..e24d7da2b 100644 --- a/plugins/org.eclipse.etrice.doc/manual/etrice.pdf +++ b/plugins/org.eclipse.etrice.doc/manual/etrice.pdf 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>
|