diff options
author | Frank Lippert | 2013-03-26 20:54:27 +0000 |
---|---|---|
committer | Frank Lippert | 2013-03-26 20:54:27 +0000 |
commit | 004b2bf2afc63ef783629737c5cc897c8923e37e (patch) | |
tree | af461c72b8868f97868ba7d318bc1ae3d0847109 /plugins/org.eclipse.etrice.doc/html | |
parent | d5d02973f16a8a05c79dcf42f5e1bdb2d4f23930 (diff) | |
download | org.eclipse.etrice-004b2bf2afc63ef783629737c5cc897c8923e37e.tar.gz org.eclipse.etrice-004b2bf2afc63ef783629737c5cc897c8923e37e.tar.xz org.eclipse.etrice-004b2bf2afc63ef783629737c5cc897c8923e37e.zip |
[doc] Wider margins for PDF, removed boxes around hyperlinks, added two forgotten chapters, general sanitizing, altered links in toc.xml
Diffstat (limited to 'plugins/org.eclipse.etrice.doc/html')
90 files changed, 4171 insertions, 3762 deletions
diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html index b325f759d..938ea1df1 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-doc.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc.html @@ -10,17 +10,15 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <div class="maketitle"> - - - - - - + + + + <h2 class="titleHead">eTrice</h2> <div class="author" ><span @@ -29,14 +27,12 @@ class="ecrm-1200">Thomas Sch</span><span class="ecrm-1200">ütz</span></div> <br /> <div class="date" ><span -class="ecrm-1200">March 25, 2013</span></div> - - - +class="ecrm-1200">March 26, 2013</span></div> + + </div> - - - + + <div class="tableofcontents"> <span class="likechapterToc" ><a href="etrice-docli1.html#x2-1000" id="QQ2-2-1">Contents</a></span> @@ -98,9 +94,6 @@ href="etrice-docse20.html#x29-430007.1" id="QQ2-29-44">Scope</a></span> href="etrice-docse21.html#x30-440007.2" id="QQ2-30-45">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >7.3 <a href="etrice-docse22.html#x31-450007.3" id="QQ2-31-46">Add a data class</a></span> - - - <br /> <span class="sectionToc" >7.4 <a href="etrice-docse23.html#x32-460007.4" id="QQ2-32-47">Create a new protocol</a></span> <br /> <span class="sectionToc" >7.5 <a @@ -109,6 +102,8 @@ href="etrice-docse24.html#x33-470007.5" id="QQ2-33-48">Create MrPing and MrPong href="etrice-docse25.html#x34-480007.6" id="QQ2-34-49">Define Actor Structure and Behavior</a></span> <br /> <span class="sectionToc" >7.7 <a href="etrice-docse26.html#x35-510007.7" id="QQ2-35-52">Define the top level</a></span> + + <br /> <span class="sectionToc" >7.8 <a href="etrice-docse27.html#x36-520007.8" id="QQ2-36-53">Generate and run the model</a></span> <br /> <span class="sectionToc" >7.9 <a @@ -122,143 +117,156 @@ href="etrice-docse30.html#x40-560008.2" id="QQ2-40-57">Setup the model</a></span <br /> <span class="sectionToc" >8.3 <a href="etrice-docse31.html#x41-570008.3" id="QQ2-41-58">Why does it work and why is it safe?</a></span> <br /><span class="chapterToc" >9 <a -href="etrice-docch9.html#x42-580009" id="QQ2-42-59">Tutorial Remove C-Comment ( C )</a></span> +href="etrice-docch9.html#x42-580009" id="QQ2-42-59">Setting up the Workspace for C Projects</a></span> <br /> <span class="sectionToc" >9.1 <a -href="etrice-docse32.html#x43-590009.1" id="QQ2-43-60">Scope</a></span> +href="etrice-docse32.html#x43-590009.1" id="QQ2-43-60">Testing the environment</a></span> <br /> <span class="sectionToc" >9.2 <a -href="etrice-docse33.html#x44-600009.2" id="QQ2-44-61">Create a new model from scratch</a></span> -<br /> <span class="sectionToc" >9.3 <a -href="etrice-docse34.html#x45-610009.3" id="QQ2-45-62">Create your own data type</a></span> -<br /> <span class="sectionToc" >9.4 <a -href="etrice-docse35.html#x46-620009.4" id="QQ2-46-63">Create the model</a></span> -<br /> <span class="sectionToc" >9.5 <a -href="etrice-docse36.html#x47-630009.5" id="QQ2-47-64">Generate, build and run the model</a></span> -<br /> <span class="sectionToc" >9.6 <a -href="etrice-docse37.html#x48-640009.6" id="QQ2-48-65">Summary</a></span> +href="etrice-docse33.html#x44-600009.2" id="QQ2-44-61">Building the C runtime system</a></span> <br /><span class="chapterToc" >10 <a -href="etrice-docch10.html#x49-6500010" id="QQ2-49-66">ROOM Concepts</a></span> +href="etrice-docch10.html#x45-6100010" id="QQ2-45-62">Tutorial HelloWorld for C</a></span> <br /> <span class="sectionToc" >10.1 <a -href="etrice-docse38.html#x50-6600010.1" id="QQ2-50-67">Actors</a></span> +href="etrice-docse34.html#x46-6200010.1" id="QQ2-46-63">Scope</a></span> <br /> <span class="sectionToc" >10.2 <a -href="etrice-docse39.html#x51-7400010.2" id="QQ2-51-77">Protocols</a></span> +href="etrice-docse35.html#x47-6300010.2" id="QQ2-47-64">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >10.3 <a -href="etrice-docse40.html#x52-7800010.3" id="QQ2-52-81">Ports</a></span> +href="etrice-docse36.html#x48-6400010.3" id="QQ2-48-65">Create the HelloWorld model</a></span> <br /> <span class="sectionToc" >10.4 <a -href="etrice-docse41.html#x53-8400010.4" id="QQ2-53-89">DataClass</a></span> +href="etrice-docse37.html#x49-6500010.4" id="QQ2-49-66">Create a launch configuration to start the C code generator</a></span> <br /> <span class="sectionToc" >10.5 <a -href="etrice-docse42.html#x54-8700010.5" id="QQ2-54-92">Layering</a></span> +href="etrice-docse38.html#x50-6600010.5" id="QQ2-50-67">Generate the code</a></span> <br /> <span class="sectionToc" >10.6 <a -href="etrice-docse43.html#x55-9000010.6" id="QQ2-55-95">Finite State Machines</a></span> +href="etrice-docse39.html#x51-6700010.6" id="QQ2-51-68">Setup the include path</a></span> +<br /> <span class="sectionToc" >10.7 <a +href="etrice-docse40.html#x52-6800010.7" id="QQ2-52-69">Build and run the model</a></span> +<br /> <span class="sectionToc" >10.8 <a +href="etrice-docse41.html#x53-6900010.8" id="QQ2-53-70">Summary</a></span> <br /><span class="chapterToc" >11 <a -href="etrice-docch11.html#x56-9900011" id="QQ2-56-106">Automatic Diagram Layout with KIELER</a></span> +href="etrice-docch11.html#x54-7000011" id="QQ2-54-71">Tutorial Remove C-Comment ( C )</a></span> <br /> <span class="sectionToc" >11.1 <a -href="etrice-docse44.html#x57-10000011.1" id="QQ2-57-107">Overview</a></span> +href="etrice-docse42.html#x55-7100011.1" id="QQ2-55-72">Scope</a></span> <br /> <span class="sectionToc" >11.2 <a -href="etrice-docse45.html#x58-10100011.2" id="QQ2-58-108">Performing Automatic Layout</a></span> +href="etrice-docse43.html#x56-7200011.2" id="QQ2-56-73">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >11.3 <a -href="etrice-docse46.html#x59-10200011.3" id="QQ2-59-109">Layout Options</a></span> +href="etrice-docse44.html#x57-7300011.3" id="QQ2-57-74">Create your own data type</a></span> <br /> <span class="sectionToc" >11.4 <a -href="etrice-docse47.html#x60-10300011.4" id="QQ2-60-110">Configuring Layout Options</a></span> +href="etrice-docse45.html#x58-7400011.4" id="QQ2-58-75">Create the model</a></span> <br /> <span class="sectionToc" >11.5 <a -href="etrice-docse48.html#x61-10800011.5" id="QQ2-61-115">Special Layout Options</a></span> +href="etrice-docse46.html#x59-7500011.5" id="QQ2-59-76">Generate, build and run the model</a></span> <br /> <span class="sectionToc" >11.6 <a -href="etrice-docse49.html#x62-11100011.6" id="QQ2-62-118">Further References</a></span> +href="etrice-docse47.html#x60-7600011.6" id="QQ2-60-77">Summary</a></span> <br /><span class="chapterToc" >12 <a -href="etrice-docch12.html#x63-11200012" id="QQ2-63-119">eTrice Features</a></span> +href="etrice-docch12.html#x61-7700012" id="QQ2-61-78">ROOM Concepts</a></span> <br /> <span class="sectionToc" >12.1 <a -href="etrice-docse50.html#x64-11300012.1" id="QQ2-64-120">Codegenerators</a></span> +href="etrice-docse48.html#x62-7800012.1" id="QQ2-62-79">Actors</a></span> +<br /> <span class="sectionToc" >12.2 <a +href="etrice-docse49.html#x63-8600012.2" id="QQ2-63-89">Protocols</a></span> +<br /> <span class="sectionToc" >12.3 <a +href="etrice-docse50.html#x64-9000012.3" id="QQ2-64-93">Ports</a></span> +<br /> <span class="sectionToc" >12.4 <a +href="etrice-docse51.html#x65-9600012.4" id="QQ2-65-101">DataClass</a></span> +<br /> <span class="sectionToc" >12.5 <a +href="etrice-docse52.html#x66-9900012.5" id="QQ2-66-104">Layering</a></span> +<br /> <span class="sectionToc" >12.6 <a +href="etrice-docse53.html#x67-10200012.6" id="QQ2-67-107">Finite State Machines</a></span> <br /><span class="chapterToc" >13 <a -href="etrice-docch13.html#x65-11700013" id="QQ2-65-124">Codegenerators</a></span> +href="etrice-docch13.html#x68-11100013" id="QQ2-68-118">Automatic Diagram Layout with KIELER</a></span> +<br /> <span class="sectionToc" >13.1 <a +href="etrice-docse54.html#x69-11200013.1" id="QQ2-69-119">Overview</a></span> +<br /> <span class="sectionToc" >13.2 <a +href="etrice-docse55.html#x70-11300013.2" id="QQ2-70-120">Performing Automatic Layout</a></span> +<br /> <span class="sectionToc" >13.3 <a +href="etrice-docse56.html#x71-11400013.3" id="QQ2-71-121">Layout Options</a></span> +<br /> <span class="sectionToc" >13.4 <a +href="etrice-docse57.html#x72-11500013.4" id="QQ2-72-122">Configuring Layout Options</a></span> +<br /> <span class="sectionToc" >13.5 <a +href="etrice-docse58.html#x73-12000013.5" id="QQ2-73-127">Special Layout Options</a></span> +<br /> <span class="sectionToc" >13.6 <a +href="etrice-docse59.html#x74-12300013.6" id="QQ2-74-130">Further References</a></span> <br /><span class="chapterToc" >14 <a -href="etrice-docch14.html#x66-11800014" id="QQ2-66-125">Runtimes</a></span> +href="etrice-docch14.html#x75-12400014" id="QQ2-75-131">eTrice Features</a></span> +<br /> <span class="sectionToc" >14.1 <a +href="etrice-docse60.html#x76-12500014.1" id="QQ2-76-132">Codegenerators</a></span> <br /><span class="chapterToc" >15 <a -href="etrice-docch15.html#x67-11900015" id="QQ2-67-126">eTrice Models and Their Relations</a></span> -<br /> <span class="sectionToc" >15.1 <a -href="etrice-docse51.html#x68-12000015.1" id="QQ2-68-127">The ROOM Model</a></span> - - - -<br /> <span class="sectionToc" >15.2 <a -href="etrice-docse52.html#x69-12100015.2" id="QQ2-69-128">The Config Model</a></span> -<br /> <span class="sectionToc" >15.3 <a -href="etrice-docse53.html#x70-12200015.3" id="QQ2-70-129">The Physical Model</a></span> -<br /> <span class="sectionToc" >15.4 <a -href="etrice-docse54.html#x71-12300015.4" id="QQ2-71-130">The Mapping Model</a></span> +href="etrice-docch15.html#x77-12900015" id="QQ2-77-136">Codegenerators</a></span> + + <br /><span class="chapterToc" >16 <a -href="etrice-docch16.html#x72-12400016" id="QQ2-72-131">eTrice Developer’s Reference</a></span> -<br /> <span class="sectionToc" >16.1 <a -href="etrice-docse55.html#x73-12500016.1" id="QQ2-73-132">Architecture</a></span> -<br /> <span class="sectionToc" >16.2 <a -href="etrice-docse56.html#x74-12900016.2" id="QQ2-74-136">Component Overview</a></span> +href="etrice-docch16.html#x78-13000016" id="QQ2-78-137">Runtimes</a></span> +<br /><span class="chapterToc" >17 <a +href="etrice-docch17.html#x79-13100017" id="QQ2-79-138">eTrice Models and Their Relations</a></span> +<br /> <span class="sectionToc" >17.1 <a +href="etrice-docse61.html#x80-13200017.1" id="QQ2-80-139">The ROOM Model</a></span> +<br /> <span class="sectionToc" >17.2 <a +href="etrice-docse62.html#x81-13300017.2" id="QQ2-81-140">The Config Model</a></span> +<br /> <span class="sectionToc" >17.3 <a +href="etrice-docse63.html#x82-13400017.3" id="QQ2-82-141">The Physical Model</a></span> +<br /> <span class="sectionToc" >17.4 <a +href="etrice-docse64.html#x83-13500017.4" id="QQ2-83-142">The Mapping Model</a></span> +<br /><span class="chapterToc" >18 <a +href="etrice-docch18.html#x84-13600018" id="QQ2-84-143">eTrice Developer’s Reference</a></span> +<br /> <span class="sectionToc" >18.1 <a +href="etrice-docse65.html#x85-13700018.1" id="QQ2-85-144">Architecture</a></span> +<br /> <span class="sectionToc" >18.2 <a +href="etrice-docse66.html#x86-14100018.2" id="QQ2-86-148">Component Overview</a></span> </div> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + - + + -<!--l. 42--><p class="noindent" ><span class="next">[<a +<!--l. 44--><p class="noindent" ><span class="next">[<a href="etrice-docli1.html" id="tailetrice-doc" >next</a>]</span></p> </body></html> - + diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc0x.png b/plugins/org.eclipse.etrice.doc/html/etrice-doc0x.png Binary files differindex e98d5a6a4..8aded1793 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-doc0x.png +++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc0x.png diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc1x.png b/plugins/org.eclipse.etrice.doc/html/etrice-doc1x.png Binary files differindex 542992046..4d3edca2a 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-doc1x.png +++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc1x.png diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc2x.png b/plugins/org.eclipse.etrice.doc/html/etrice-doc2x.png Binary files differindex 542992046..4d3edca2a 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-doc2x.png +++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc2x.png diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-doc3x.png b/plugins/org.eclipse.etrice.doc/html/etrice-doc3x.png Binary files differindex 717739998..4df11956a 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-doc3x.png +++ b/plugins/org.eclipse.etrice.doc/html/etrice-doc3x.png diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html index da5caf0e0..0f53c56f0 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch1.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch10.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch10.html index 78f4c0df7..53161a025 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch10.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch10.html @@ -4,91 +4,55 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>10 ROOM Concepts</title> +<head><title>10 Tutorial HelloWorld for C</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse38.html" >next</a>] [<a -href="etrice-docse37.html" >prev</a>] [<a -href="etrice-docse37.html#tailetrice-docse37.html" >prev-tail</a>] [<a +href="etrice-docse34.html" >next</a>] [<a +href="etrice-docse33.html" >prev</a>] [<a +href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a href="#tailetrice-docch10.html">tail</a>] [<a href="etrice-doc.html#etrice-docch10.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 10</span><br /><a - id="x49-6500010"></a>ROOM Concepts</h2> -<!--l. 3--><p class="noindent" >This chapter gives an overview over the ROOM language elements and their textual -and graphical notation. The formal ROOM grammar based on Xtext (EBNF) you -can find here: <a -href="http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/tree/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext" >ROOM Grammar</a> -</p> + id="x45-6100010"></a>Tutorial HelloWorld for C</h2> <div class="sectionTOCS">  <span class="sectionToc" >10.1 <a -href="etrice-docse38.html#x50-6600010.1">Actors</a></span> -<br />  <span class="subsectionToc" >10.1.1 <a -href="etrice-docse38.html#x50-6700010.1.1">Description</a></span> -<br />  <span class="subsectionToc" >10.1.2 <a -href="etrice-docse38.html#x50-6800010.1.2">Motivation</a></span> -<br />  <span class="subsectionToc" >10.1.3 <a -href="etrice-docse38.html#x50-6900010.1.3">Notation</a></span> -<br />  <span class="subsectionToc" >10.1.4 <a -href="etrice-docse38.html#x50-7000010.1.4">Details</a></span> +href="etrice-docse34.html#x46-6200010.1">Scope</a></span> <br /> <span class="sectionToc" >10.2 <a -href="etrice-docse39.html#x51-7400010.2">Protocols</a></span> -<br />  <span class="subsectionToc" >10.2.1 <a -href="etrice-docse39.html#x51-7500010.2.1">Description</a></span> -<br />  <span class="subsectionToc" >10.2.2 <a -href="etrice-docse39.html#x51-7600010.2.2">Motivation</a></span> -<br />  <span class="subsectionToc" >10.2.3 <a -href="etrice-docse39.html#x51-7700010.2.3">Notation</a></span> +href="etrice-docse35.html#x47-6300010.2">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >10.3 <a -href="etrice-docse40.html#x52-7800010.3">Ports</a></span> -<br />  <span class="subsectionToc" >10.3.1 <a -href="etrice-docse40.html#x52-7900010.3.1">Description</a></span> -<br />  <span class="subsectionToc" >10.3.2 <a -href="etrice-docse40.html#x52-8000010.3.2">Motivation</a></span> -<br />  <span class="subsectionToc" >10.3.3 <a -href="etrice-docse40.html#x52-8100010.3.3">Notation</a></span> +href="etrice-docse36.html#x48-6400010.3">Create the HelloWorld model</a></span> <br /> <span class="sectionToc" >10.4 <a -href="etrice-docse41.html#x53-8400010.4">DataClass</a></span> -<br />  <span class="subsectionToc" >10.4.1 <a -href="etrice-docse41.html#x53-8500010.4.1">Description</a></span> -<br />  <span class="subsectionToc" >10.4.2 <a -href="etrice-docse41.html#x53-8600010.4.2">Notation</a></span> +href="etrice-docse37.html#x49-6500010.4">Create a launch configuration to start the C code generator</a></span> <br /> <span class="sectionToc" >10.5 <a -href="etrice-docse42.html#x54-8700010.5">Layering</a></span> -<br />  <span class="subsectionToc" >10.5.1 <a -href="etrice-docse42.html#x54-8800010.5.1">Description</a></span> -<br />  <span class="subsectionToc" >10.5.2 <a -href="etrice-docse42.html#x54-8900010.5.2">Notation</a></span> +href="etrice-docse38.html#x50-6600010.5">Generate the code</a></span> <br /> <span class="sectionToc" >10.6 <a -href="etrice-docse43.html#x55-9000010.6">Finite State Machines</a></span> -<br />  <span class="subsectionToc" >10.6.1 <a -href="etrice-docse43.html#x55-9100010.6.1">Description</a></span> -<br />  <span class="subsectionToc" >10.6.2 <a -href="etrice-docse43.html#x55-9200010.6.2">Motivation</a></span> -<br />  <span class="subsectionToc" >10.6.3 <a -href="etrice-docse43.html#x55-9300010.6.3">Notation</a></span> -<br />  <span class="subsectionToc" >10.6.4 <a -href="etrice-docse43.html#x55-9600010.6.4">Examples</a></span> +href="etrice-docse39.html#x51-6700010.6">Setup the include path</a></span> +<br /> <span class="sectionToc" >10.7 <a +href="etrice-docse40.html#x52-6800010.7">Build and run the model</a></span> +<br /> <span class="sectionToc" >10.8 <a +href="etrice-docse41.html#x53-6900010.8">Summary</a></span> </div> - - + + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse38.html" >next</a>] [<a -href="etrice-docse37.html" >prev</a>] [<a -href="etrice-docse37.html#tailetrice-docse37.html" >prev-tail</a>] [<a +href="etrice-docse34.html" >next</a>] [<a +href="etrice-docse33.html" >prev</a>] [<a +href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a href="etrice-docch10.html" >front</a>] [<a href="etrice-doc.html#etrice-docch10.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch11.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch11.html index 5af3ca61d..02a043daf 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch11.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch11.html @@ -4,58 +4,49 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>11 Automatic Diagram Layout with KIELER</title> +<head><title>11 Tutorial Remove C-Comment ( C )</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse44.html" >next</a>] [<a -href="etrice-docse43.html" >prev</a>] [<a -href="etrice-docse43.html#tailetrice-docse43.html" >prev-tail</a>] [<a +href="etrice-docse42.html" >next</a>] [<a +href="etrice-docse41.html" >prev</a>] [<a +href="etrice-docse41.html#tailetrice-docse41.html" >prev-tail</a>] [<a href="#tailetrice-docch11.html">tail</a>] [<a href="etrice-doc.html#etrice-docch11.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 11</span><br /><a - id="x56-9900011"></a>Automatic Diagram Layout with KIELER</h2> + id="x54-7000011"></a>Tutorial Remove C-Comment ( C )</h2> <div class="sectionTOCS">  <span class="sectionToc" >11.1 <a -href="etrice-docse44.html#x57-10000011.1">Overview</a></span> +href="etrice-docse42.html#x55-7100011.1">Scope</a></span> <br /> <span class="sectionToc" >11.2 <a -href="etrice-docse45.html#x58-10100011.2">Performing Automatic Layout</a></span> +href="etrice-docse43.html#x56-7200011.2">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >11.3 <a -href="etrice-docse46.html#x59-10200011.3">Layout Options</a></span> +href="etrice-docse44.html#x57-7300011.3">Create your own data type</a></span> <br /> <span class="sectionToc" >11.4 <a -href="etrice-docse47.html#x60-10300011.4">Configuring Layout Options</a></span> -<br />  <span class="subsectionToc" >11.4.1 <a -href="etrice-docse47.html#x60-10400011.4.1">The Layout View</a></span> -<br />  <span class="subsectionToc" >11.4.2 <a -href="etrice-docse47.html#x60-10500011.4.2">Preference Page</a></span> +href="etrice-docse45.html#x58-7400011.4">Create the model</a></span> <br /> <span class="sectionToc" >11.5 <a -href="etrice-docse48.html#x61-10800011.5">Special Layout Options</a></span> -<br />  <span class="subsectionToc" >11.5.1 <a -href="etrice-docse48.html#x61-10900011.5.1">Layout Algorithm</a></span> -<br />  <span class="subsectionToc" >11.5.2 <a -href="etrice-docse48.html#x61-11000011.5.2">Diagram Type</a></span> +href="etrice-docse46.html#x59-7500011.5">Generate, build and run the model</a></span> <br /> <span class="sectionToc" >11.6 <a -href="etrice-docse49.html#x62-11100011.6">Further References</a></span> +href="etrice-docse47.html#x60-7600011.6">Summary</a></span> </div> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse44.html" >next</a>] [<a -href="etrice-docse43.html" >prev</a>] [<a -href="etrice-docse43.html#tailetrice-docse43.html" >prev-tail</a>] [<a +href="etrice-docse42.html" >next</a>] [<a +href="etrice-docse41.html" >prev</a>] [<a +href="etrice-docse41.html#tailetrice-docse41.html" >prev-tail</a>] [<a href="etrice-docch11.html" >front</a>] [<a href="etrice-doc.html#etrice-docch11.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch12.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch12.html index 3a2eea90d..b57d53b02 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch12.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch12.html @@ -4,41 +4,90 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>12 eTrice Features</title> +<head><title>12 ROOM Concepts</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse50.html" >next</a>] [<a -href="etrice-docse49.html" >prev</a>] [<a -href="etrice-docse49.html#tailetrice-docse49.html" >prev-tail</a>] [<a +href="etrice-docse48.html" >next</a>] [<a +href="etrice-docse47.html" >prev</a>] [<a +href="etrice-docse47.html#tailetrice-docse47.html" >prev-tail</a>] [<a href="#tailetrice-docch12.html">tail</a>] [<a href="etrice-doc.html#etrice-docch12.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 12</span><br /><a - id="x63-11200012"></a>eTrice Features</h2> + id="x61-7700012"></a>ROOM Concepts</h2> +<!--l. 3--><p class="noindent" >This chapter gives an overview over the ROOM language elements and their textual and graphical +notation. The formal ROOM grammar based on Xtext (EBNF) you can find here: <a +href="http://git.eclipse.org/c/etrice/org.eclipse.etrice.git/tree/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext" >ROOM +Grammar</a> +</p> <div class="sectionTOCS">  <span class="sectionToc" >12.1 <a -href="etrice-docse50.html#x64-11300012.1">Codegenerators</a></span> +href="etrice-docse48.html#x62-7800012.1">Actors</a></span> <br />  <span class="subsectionToc" >12.1.1 <a -href="etrice-docse50.html#x64-11400012.1.1">Java Generator</a></span> +href="etrice-docse48.html#x62-7900012.1.1">Description</a></span> <br />  <span class="subsectionToc" >12.1.2 <a -href="etrice-docse50.html#x64-11500012.1.2">C++ Generator</a></span> +href="etrice-docse48.html#x62-8000012.1.2">Motivation</a></span> <br />  <span class="subsectionToc" >12.1.3 <a -href="etrice-docse50.html#x64-11600012.1.3">C Generator</a></span> +href="etrice-docse48.html#x62-8100012.1.3">Notation</a></span> +<br />  <span class="subsectionToc" >12.1.4 <a +href="etrice-docse48.html#x62-8200012.1.4">Details</a></span> +<br /> <span class="sectionToc" >12.2 <a +href="etrice-docse49.html#x63-8600012.2">Protocols</a></span> +<br />  <span class="subsectionToc" >12.2.1 <a +href="etrice-docse49.html#x63-8700012.2.1">Description</a></span> +<br />  <span class="subsectionToc" >12.2.2 <a +href="etrice-docse49.html#x63-8800012.2.2">Motivation</a></span> +<br />  <span class="subsectionToc" >12.2.3 <a +href="etrice-docse49.html#x63-8900012.2.3">Notation</a></span> +<br /> <span class="sectionToc" >12.3 <a +href="etrice-docse50.html#x64-9000012.3">Ports</a></span> +<br />  <span class="subsectionToc" >12.3.1 <a +href="etrice-docse50.html#x64-9100012.3.1">Description</a></span> +<br />  <span class="subsectionToc" >12.3.2 <a +href="etrice-docse50.html#x64-9200012.3.2">Motivation</a></span> +<br />  <span class="subsectionToc" >12.3.3 <a +href="etrice-docse50.html#x64-9300012.3.3">Notation</a></span> +<br /> <span class="sectionToc" >12.4 <a +href="etrice-docse51.html#x65-9600012.4">DataClass</a></span> +<br />  <span class="subsectionToc" >12.4.1 <a +href="etrice-docse51.html#x65-9700012.4.1">Description</a></span> +<br />  <span class="subsectionToc" >12.4.2 <a +href="etrice-docse51.html#x65-9800012.4.2">Notation</a></span> +<br /> <span class="sectionToc" >12.5 <a +href="etrice-docse52.html#x66-9900012.5">Layering</a></span> +<br />  <span class="subsectionToc" >12.5.1 <a +href="etrice-docse52.html#x66-10000012.5.1">Description</a></span> +<br />  <span class="subsectionToc" >12.5.2 <a +href="etrice-docse52.html#x66-10100012.5.2">Notation</a></span> +<br /> <span class="sectionToc" >12.6 <a +href="etrice-docse53.html#x67-10200012.6">Finite State Machines</a></span> +<br />  <span class="subsectionToc" >12.6.1 <a +href="etrice-docse53.html#x67-10300012.6.1">Description</a></span> +<br />  <span class="subsectionToc" >12.6.2 <a +href="etrice-docse53.html#x67-10400012.6.2">Motivation</a></span> +<br />  <span class="subsectionToc" >12.6.3 <a +href="etrice-docse53.html#x67-10500012.6.3">Notation</a></span> +<br />  <span class="subsectionToc" >12.6.4 <a +href="etrice-docse53.html#x67-10800012.6.4">Examples</a></span> </div> - - + + + + + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse50.html" >next</a>] [<a -href="etrice-docse49.html" >prev</a>] [<a -href="etrice-docse49.html#tailetrice-docse49.html" >prev-tail</a>] [<a +href="etrice-docse48.html" >next</a>] [<a +href="etrice-docse47.html" >prev</a>] [<a +href="etrice-docse47.html#tailetrice-docse47.html" >prev-tail</a>] [<a href="etrice-docch12.html" >front</a>] [<a href="etrice-doc.html#etrice-docch12.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch13.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch13.html index 898c40ad8..dfa456f7e 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch13.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch13.html @@ -4,37 +4,57 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>13 Codegenerators</title> +<head><title>13 Automatic Diagram Layout with KIELER</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch14.html" >next</a>] [<a -href="etrice-docse50.html" >prev</a>] [<a -href="etrice-docse50.html#tailetrice-docse50.html" >prev-tail</a>] [<a +href="etrice-docse54.html" >next</a>] [<a +href="etrice-docse53.html" >prev</a>] [<a +href="etrice-docse53.html#tailetrice-docse53.html" >prev-tail</a>] [<a href="#tailetrice-docch13.html">tail</a>] [<a href="etrice-doc.html#etrice-docch13.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 13</span><br /><a - id="x65-11700013"></a>Codegenerators</h2> - + id="x68-11100013"></a>Automatic Diagram Layout with KIELER</h2> +<div class="sectionTOCS"> + <span class="sectionToc" >13.1 <a +href="etrice-docse54.html#x69-11200013.1">Overview</a></span> +<br /> <span class="sectionToc" >13.2 <a +href="etrice-docse55.html#x70-11300013.2">Performing Automatic Layout</a></span> +<br /> <span class="sectionToc" >13.3 <a +href="etrice-docse56.html#x71-11400013.3">Layout Options</a></span> +<br /> <span class="sectionToc" >13.4 <a +href="etrice-docse57.html#x72-11500013.4">Configuring Layout Options</a></span> +<br />  <span class="subsectionToc" >13.4.1 <a +href="etrice-docse57.html#x72-11600013.4.1">The Layout View</a></span> +<br />  <span class="subsectionToc" >13.4.2 <a +href="etrice-docse57.html#x72-11700013.4.2">Preference Page</a></span> +<br /> <span class="sectionToc" >13.5 <a +href="etrice-docse58.html#x73-12000013.5">Special Layout Options</a></span> +<br />  <span class="subsectionToc" >13.5.1 <a +href="etrice-docse58.html#x73-12100013.5.1">Layout Algorithm</a></span> +<br />  <span class="subsectionToc" >13.5.2 <a +href="etrice-docse58.html#x73-12200013.5.2">Diagram Type</a></span> +<br /> <span class="sectionToc" >13.6 <a +href="etrice-docse59.html#x74-12300013.6">Further References</a></span> +</div> - - - - - + + + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch14.html" >next</a>] [<a -href="etrice-docse50.html" >prev</a>] [<a -href="etrice-docse50.html#tailetrice-docse50.html" >prev-tail</a>] [<a +href="etrice-docse54.html" >next</a>] [<a +href="etrice-docse53.html" >prev</a>] [<a +href="etrice-docse53.html#tailetrice-docse53.html" >prev-tail</a>] [<a href="etrice-docch13.html" >front</a>] [<a href="etrice-doc.html#etrice-docch13.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch14.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch14.html index 71a4bca78..841ce1982 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch14.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch14.html @@ -4,37 +4,40 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>14 Runtimes</title> +<head><title>14 eTrice Features</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch15.html" >next</a>] [<a -href="etrice-docch13.html" >prev</a>] [<a -href="etrice-docch13.html#tailetrice-docch13.html" >prev-tail</a>] [<a +href="etrice-docse60.html" >next</a>] [<a +href="etrice-docse59.html" >prev</a>] [<a +href="etrice-docse59.html#tailetrice-docse59.html" >prev-tail</a>] [<a href="#tailetrice-docch14.html">tail</a>] [<a href="etrice-doc.html#etrice-docch14.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 14</span><br /><a - id="x66-11800014"></a>Runtimes</h2> - - - - - - - - - + id="x75-12400014"></a>eTrice Features</h2> +<div class="sectionTOCS"> + <span class="sectionToc" >14.1 <a +href="etrice-docse60.html#x76-12500014.1">Codegenerators</a></span> +<br />  <span class="subsectionToc" >14.1.1 <a +href="etrice-docse60.html#x76-12600014.1.1">Java Generator</a></span> +<br />  <span class="subsectionToc" >14.1.2 <a +href="etrice-docse60.html#x76-12700014.1.2">C++ Generator</a></span> +<br />  <span class="subsectionToc" >14.1.3 <a +href="etrice-docse60.html#x76-12800014.1.3">C Generator</a></span> +</div> + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch15.html" >next</a>] [<a -href="etrice-docch13.html" >prev</a>] [<a -href="etrice-docch13.html#tailetrice-docch13.html" >prev-tail</a>] [<a +href="etrice-docse60.html" >next</a>] [<a +href="etrice-docse59.html" >prev</a>] [<a +href="etrice-docse59.html#tailetrice-docse59.html" >prev-tail</a>] [<a href="etrice-docch14.html" >front</a>] [<a href="etrice-doc.html#etrice-docch14.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch15.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch15.html index 237fcdb1a..c8b6446aa 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch15.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch15.html @@ -4,65 +4,34 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>15 eTrice Models and Their Relations</title> +<head><title>15 Codegenerators</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse51.html" >next</a>] [<a -href="etrice-docch14.html" >prev</a>] [<a -href="etrice-docch14.html#tailetrice-docch14.html" >prev-tail</a>] [<a +href="etrice-docch16.html" >next</a>] [<a +href="etrice-docse60.html" >prev</a>] [<a +href="etrice-docse60.html#tailetrice-docse60.html" >prev-tail</a>] [<a href="#tailetrice-docch15.html">tail</a>] [<a href="etrice-doc.html#etrice-docch15.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 15</span><br /><a - id="x67-11900015"></a>eTrice Models and Their Relations</h2> -<!--l. 3--><p class="noindent" >eTrice comprises several models: -</p> - <ul class="itemize1"> - <li class="itemize">the ROOM model (*.room) – defines model classes and the logical - structure of the model - </li> - <li class="itemize">Config model (*.config) – defines configuration values for attributes - </li> - <li class="itemize">Physical model (*.etphys) – defines the structure and properties of the - physical system - </li> - <li class="itemize">Mapping model (*.etmap) – defines a mapping from logical elements to - physical elements</li></ul> -<!--l. 12--><p class="noindent" >In the following diagram the models and their relations are depicted. The meaning of -the arrows is: uses/references. -</p><!--l. 14--><p class="noindent" ><img -src="images/080-models.jpg" alt="PIC" - /> -</p><!--l. 17--><p class="noindent" >In the following sections we will describe those models with emphasis of their cross -relations. -</p> -<div class="sectionTOCS"> - <span class="sectionToc" >15.1 <a -href="etrice-docse51.html#x68-12000015.1">The ROOM Model</a></span> -<br /> <span class="sectionToc" >15.2 <a -href="etrice-docse52.html#x69-12100015.2">The Config Model</a></span> -<br /> <span class="sectionToc" >15.3 <a -href="etrice-docse53.html#x70-12200015.3">The Physical Model</a></span> -<br /> <span class="sectionToc" >15.4 <a -href="etrice-docse54.html#x71-12300015.4">The Mapping Model</a></span> -</div> - - - - - - + id="x77-12900015"></a>Codegenerators</h2> + + + + + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse51.html" >next</a>] [<a -href="etrice-docch14.html" >prev</a>] [<a -href="etrice-docch14.html#tailetrice-docch14.html" >prev-tail</a>] [<a +href="etrice-docch16.html" >next</a>] [<a +href="etrice-docse60.html" >prev</a>] [<a +href="etrice-docse60.html#tailetrice-docse60.html" >prev-tail</a>] [<a href="etrice-docch15.html" >front</a>] [<a href="etrice-doc.html#etrice-docch15.html" >up</a>] </p></div> <!--l. 1--><p class="noindent" ><a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch16.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch16.html index fc8385218..b2794c375 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch16.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch16.html @@ -4,54 +4,36 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>16 eTrice Developer’s Reference</title> +<head><title>16 Runtimes</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > <!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse55.html" >next</a>] [<a -href="etrice-docse54.html" >prev</a>] [<a -href="etrice-docse54.html#tailetrice-docse54.html" >prev-tail</a>] [<a +href="etrice-docch17.html" >next</a>] [<a +href="etrice-docch15.html" >prev</a>] [<a +href="etrice-docch15.html#tailetrice-docch15.html" >prev-tail</a>] [<a href="#tailetrice-docch16.html">tail</a>] [<a href="etrice-doc.html#etrice-docch16.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 16</span><br /><a - id="x72-12400016"></a>eTrice Developer’s Reference</h2> -<div class="sectionTOCS"> - <span class="sectionToc" >16.1 <a -href="etrice-docse55.html#x73-12500016.1">Architecture</a></span> -<br />  <span class="subsectionToc" >16.1.1 <a -href="etrice-docse55.html#x73-12600016.1.1">Editor and Generator Components</a></span> -<br />  <span class="subsectionToc" >16.1.2 <a -href="etrice-docse55.html#x73-12700016.1.2">Runtimes</a></span> -<br />  <span class="subsectionToc" >16.1.3 <a -href="etrice-docse55.html#x73-12800016.1.3">Unit Tests</a></span> -<br /> <span class="sectionToc" >16.2 <a -href="etrice-docse56.html#x74-12900016.2">Component Overview</a></span> -<br />  <span class="subsectionToc" >16.2.1 <a -href="etrice-docse56.html#x74-13000016.2.1">Room Language Overview</a></span> -<br />  <span class="subsectionToc" >16.2.2 <a -href="etrice-docse56.html#x74-13600016.2.2">Config Language Overview</a></span> -<br />  <span class="subsectionToc" >16.2.3 <a -href="etrice-docse56.html#x74-14000016.2.3">Aggregation Layer Overview</a></span> -<br />  <span class="subsectionToc" >16.2.4 <a -href="etrice-docse56.html#x74-14400016.2.4">Generator Overview</a></span> -</div> - - - - -<!--l. 42--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse55.html" >next</a>] [<a -href="etrice-docse54.html" >prev</a>] [<a -href="etrice-docse54.html#tailetrice-docse54.html" >prev-tail</a>] [<a + id="x78-13000016"></a>Runtimes</h2> + + + + + + +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch17.html" >next</a>] [<a +href="etrice-docch15.html" >prev</a>] [<a +href="etrice-docch15.html#tailetrice-docch15.html" >prev-tail</a>] [<a href="etrice-docch16.html" >front</a>] [<a href="etrice-doc.html#etrice-docch16.html" >up</a>] </p></div> -<!--l. 42--><p class="noindent" ><a +<!--l. 1--><p class="noindent" ><a id="tailetrice-docch16.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch17.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch17.html new file mode 100644 index 000000000..ae20f3b15 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch17.html @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>17 eTrice Models and Their Relations</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse61.html" >next</a>] [<a +href="etrice-docch16.html" >prev</a>] [<a +href="etrice-docch16.html#tailetrice-docch16.html" >prev-tail</a>] [<a +href="#tailetrice-docch17.html">tail</a>] [<a +href="etrice-doc.html#etrice-docch17.html" >up</a>] </p></div> +<h2 class="chapterHead"><span class="titlemark">Chapter 17</span><br /><a + id="x79-13100017"></a>eTrice Models and Their Relations</h2> +<!--l. 3--><p class="noindent" >eTrice comprises several models: +</p> + <ul class="itemize1"> + <li class="itemize">the ROOM model (*.room) – defines model classes and the logical structure of the model + </li> + <li class="itemize">Config model (*.config) – defines configuration values for attributes + </li> + <li class="itemize">Physical model (*.etphys) – defines the structure and properties of the physical system + </li> + <li class="itemize">Mapping model (*.etmap) – defines a mapping from logical elements to physical elements</li></ul> +<!--l. 12--><p class="noindent" >In the following diagram the models and their relations are depicted. The meaning of the arrows is: +uses/references. +</p><!--l. 14--><p class="noindent" ><img +src="images/080-models.jpg" alt="PIC" + /> +</p><!--l. 17--><p class="noindent" >In the following sections we will describe those models with emphasis of their cross relations. +</p> +<div class="sectionTOCS"> + <span class="sectionToc" >17.1 <a +href="etrice-docse61.html#x80-13200017.1">The ROOM Model</a></span> +<br /> <span class="sectionToc" >17.2 <a +href="etrice-docse62.html#x81-13300017.2">The Config Model</a></span> +<br /> <span class="sectionToc" >17.3 <a +href="etrice-docse63.html#x82-13400017.3">The Physical Model</a></span> +<br /> <span class="sectionToc" >17.4 <a +href="etrice-docse64.html#x83-13500017.4">The Mapping Model</a></span> +</div> + + + + + +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse61.html" >next</a>] [<a +href="etrice-docch16.html" >prev</a>] [<a +href="etrice-docch16.html#tailetrice-docch16.html" >prev-tail</a>] [<a +href="etrice-docch17.html" >front</a>] [<a +href="etrice-doc.html#etrice-docch17.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docch17.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch18.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch18.html new file mode 100644 index 000000000..491260957 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch18.html @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>18 eTrice Developer’s Reference</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse65.html" >next</a>] [<a +href="etrice-docse64.html" >prev</a>] [<a +href="etrice-docse64.html#tailetrice-docse64.html" >prev-tail</a>] [<a +href="#tailetrice-docch18.html">tail</a>] [<a +href="etrice-doc.html#etrice-docch18.html" >up</a>] </p></div> +<h2 class="chapterHead"><span class="titlemark">Chapter 18</span><br /><a + id="x84-13600018"></a>eTrice Developer’s Reference</h2> +<div class="sectionTOCS"> + <span class="sectionToc" >18.1 <a +href="etrice-docse65.html#x85-13700018.1">Architecture</a></span> +<br />  <span class="subsectionToc" >18.1.1 <a +href="etrice-docse65.html#x85-13800018.1.1">Editor and Generator Components</a></span> +<br />  <span class="subsectionToc" >18.1.2 <a +href="etrice-docse65.html#x85-13900018.1.2">Runtimes</a></span> +<br />  <span class="subsectionToc" >18.1.3 <a +href="etrice-docse65.html#x85-14000018.1.3">Unit Tests</a></span> +<br /> <span class="sectionToc" >18.2 <a +href="etrice-docse66.html#x86-14100018.2">Component Overview</a></span> +<br />  <span class="subsectionToc" >18.2.1 <a +href="etrice-docse66.html#x86-14200018.2.1">Room Language Overview</a></span> +<br />  <span class="subsectionToc" >18.2.2 <a +href="etrice-docse66.html#x86-14800018.2.2">Config Language Overview</a></span> +<br />  <span class="subsectionToc" >18.2.3 <a +href="etrice-docse66.html#x86-15200018.2.3">Aggregation Layer Overview</a></span> +<br />  <span class="subsectionToc" >18.2.4 <a +href="etrice-docse66.html#x86-15600018.2.4">Generator Overview</a></span> +</div> + + + +<!--l. 44--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse65.html" >next</a>] [<a +href="etrice-docse64.html" >prev</a>] [<a +href="etrice-docse64.html#tailetrice-docse64.html" >prev-tail</a>] [<a +href="etrice-docch18.html" >front</a>] [<a +href="etrice-doc.html#etrice-docch18.html" >up</a>] </p></div> +<!--l. 44--><p class="noindent" ><a + id="tailetrice-docch18.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html index 850fcf417..f17047ee0 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch2.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -56,9 +56,8 @@ href="etrice-docse5.html#x9-200002.3.3">Execution Models</a></span> </div> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse3.html" >next</a>] [<a href="etrice-docse2.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html index c134cd573..be5308b61 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch3.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,24 +22,19 @@ href="#tailetrice-docch3.html">tail</a>] [<a href="etrice-doc.html#etrice-docch3.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 3</span><br /><a id="x10-240003"></a>Working with the eTrice Tutorials</h2> -<!--l. 3--><p class="noindent" >The eTrice Tutorials will help you to learn and understand the eTrice tool and -concepts. ETrice supports several target languages. The concepts will not be -explained for each language. -</p><!--l. 5--><p class="noindent" >Most of the common concepts will be described for Java as target language. To start -with a new language the first steps to setup the workspace and to generate and run -the first model will be described also. Target language specific aspects will be -described as well. -</p><!--l. 7--><p class="noindent" >Therefore the best way to start with eTrice is to follow the Java Tutorials and after -that switch to your target language. - - - - - - - - - +<!--l. 3--><p class="noindent" >The eTrice Tutorials will help you to learn and understand the eTrice tool and concepts. ETrice supports +several target languages. The concepts will not be explained for each language. +</p><!--l. 5--><p class="noindent" >Most of the common concepts will be described for Java as target language. To start with a new language +the first steps to setup the workspace and to generate and run the first model will be described also. +Target language specific aspects will be described as well. +</p><!--l. 7--><p class="noindent" >Therefore the best way to start with eTrice is to follow the Java Tutorials and after that switch to your +target language. + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch4.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html index 20fd4b444..118f0d951 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch4.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,9 +22,9 @@ href="#tailetrice-docch4.html">tail</a>] [<a href="etrice-doc.html#etrice-docch4.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 4</span><br /><a id="x11-250004"></a>Setting up the Workspace for Java Projects</h2> -<!--l. 3--><p class="noindent" >ETrice generates code out of ROOM models. The code generator and the generated -code relies on a runtime framework and on some ready to use model parts. This parts -provide services like: +<!--l. 3--><p class="noindent" >ETrice generates code out of ROOM models. The code generator and the generated code relies +on a runtime framework and on some ready to use model parts. This parts provide services +like: </p> <ul class="itemize1"> <li class="itemize">messaging @@ -32,10 +32,9 @@ provide services like: <li class="itemize">logging </li> <li class="itemize">timing</li></ul> -<!--l. 11--><p class="noindent" >Additionally some tutorial models will be provided to make it easy to start with -eTrice. All this parts must be available in our workspace before you can start -working. After installation of eclipse (juno) and the eTrice plug in, your workspace -should look like this: +<!--l. 11--><p class="noindent" >Additionally some tutorial models will be provided to make it easy to start with eTrice. All this parts +must be available in our workspace before you can start working. After installation of eclipse (juno) and +the eTrice plug in, your workspace should look like this: </p><!--l. 13--><p class="noindent" ><img src="images/013-SetupWorkspace01.png" alt="PIC" /> @@ -58,28 +57,26 @@ src="images/013-SetupWorkspace03.png" alt="PIC" /> </p><!--l. 29--><p class="noindent" >Do the same steps for <span class="ecti-1000">eTrice Java Modellib </span>and <span -class="ecti-1000">eTrice Java Tutorials</span>. To avoid -temporary error markers you should keep the proposed order of installation. The -resulting workspace should look like this: +class="ecti-1000">eTrice Java Tutorials</span>. To avoid temporary error markers +you should keep the proposed order of installation. The resulting workspace should look like +this: </p><!--l. 31--><p class="noindent" ><img src="images/013-SetupWorkspace04.png" alt="PIC" /> -</p><!--l. 34--><p class="noindent" >Now workspace is set up and you can perform the tutorials or start with your -work. +</p><!--l. 34--><p class="noindent" >Now workspace is set up and you can perform the tutorials or start with your work. </p><!--l. 36--><p class="noindent" >The tutorial models are available in the <span -class="ecti-1000">org.eclipse.etrice.tutorials </span>project. All -tutorials are ready to generate and run without any changes. To start the -code generator simply run <span -class="ecbx-1000">gen_org.eclipse.etrice.tutorials.launch </span>as +class="ecti-1000">org.eclipse.etrice.tutorials </span>project. All tutorials are +ready to generate and run without any changes. To start the code generator simply run <span +class="ecbx-1000">gen_org.eclipse.etrice.tutorials.launch </span>as <span class="ecbx-1000">gen_org.eclipse.etrice.tutorials.launch</span>: </p><!--l. 38--><p class="noindent" ><img src="images/013-SetupWorkspace05.png" alt="PIC" /> </p><!--l. 41--><p class="noindent" >After generation for each tutorial a java file called <span -class="ecbx-1000">SubSystem_ModelnameRunner.java</span> -is generated. To run the model simply run this file as a java application: +class="ecbx-1000">SubSystem_ModelnameRunner.java </span>is generated. +To run the model simply run this file as a java application: </p><!--l. 43--><p class="noindent" ><img src="images/013-SetupWorkspace06.png" alt="PIC" /> @@ -88,22 +85,15 @@ class="ecti-1000">quit </span>in the console window. </p><!--l. 48--><p class="noindent" ><img src="images/013-SetupWorkspace07.png" alt="PIC" /> - - - -</p><!--l. 51--><p class="noindent" >Performing the tutorials will setup an dedicated project for each tutorial. Therefore -there are some slight changes especially whenever a path must be set (e.g. to -the model library) within your own projects. All this is described in the -tutorials. - - - - - - - - - +</p><!--l. 51--><p class="noindent" >Performing the tutorials will setup an dedicated project for each tutorial. Therefore there are some slight +changes especially whenever a path must be set (e.g. to the model library) within your own projects. All +this is described in the tutorials. + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch5.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html index 60fe1b07c..83fd5b921 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch5.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -41,9 +41,8 @@ href="etrice-docse11.html#x18-320005.6">Summary</a></span> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse6.html" >next</a>] [<a href="etrice-docch4.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html index 897c87f71..133fc76a8 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch6.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -47,9 +47,8 @@ href="etrice-docse19.html#x27-410006.8">Summary</a></span> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse12.html" >next</a>] [<a href="etrice-docse11.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html index acf09d00e..6780f6367 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch7.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -54,9 +54,8 @@ href="etrice-docse28.html#x37-530007.9">Summary</a></span> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse20.html" >next</a>] [<a href="etrice-docse19.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html index fc087ee14..5098e1af6 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch8.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -32,9 +32,8 @@ href="etrice-docse31.html#x41-570008.3">Why does it work and why is it safe?</a> </div> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse29.html" >next</a>] [<a href="etrice-docse28.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docch9.html b/plugins/org.eclipse.etrice.doc/html/etrice-docch9.html index cce1b9d08..16d1a4285 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docch9.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docch9.html @@ -4,13 +4,13 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>9 Tutorial Remove C-Comment ( C )</title> +<head><title>9 Setting up the Workspace for C Projects</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -21,29 +21,33 @@ href="etrice-docse31.html#tailetrice-docse31.html" >prev-tail</a>] [<a href="#tailetrice-docch9.html">tail</a>] [<a href="etrice-doc.html#etrice-docch9.html" >up</a>] </p></div> <h2 class="chapterHead"><span class="titlemark">Chapter 9</span><br /><a - id="x42-580009"></a>Tutorial Remove C-Comment ( C )</h2> + id="x42-580009"></a>Setting up the Workspace for C Projects</h2> +<!--l. 3--><p class="noindent" >Before you can start with C, some preconditions must be fulfilled: + </p><dl class="description"><dt class="description"> + </dt><dd +class="description">A C compiler must be installed on your machine (all tests and tutorials are based on MinGW) + </dd><dt class="description"> + </dt><dd +class="description">The CDT-Eclipse plugin must be installed as the C development environment.</dd></dl> +<!--l. 10--><p class="noindent" >Once the CDT is installed, the C runtime and model library must be imported. (<span +class="ecti-1000">File->New->Project->eTrice</span> +select <span +class="ecti-1000">eTrice C runtime </span>/ <span +class="ecti-1000">eTrice C modellib</span>) +</p><!--l. 13--><p class="noindent" >The resulting workspace should look like this: +</p><!--l. 15--><p class="noindent" ><img +src="images/032-SetupWorkspaceC01.png" alt="PIC" + /> +</p> <div class="sectionTOCS">  <span class="sectionToc" >9.1 <a -href="etrice-docse32.html#x43-590009.1">Scope</a></span> +href="etrice-docse32.html#x43-590009.1">Testing the environment</a></span> <br /> <span class="sectionToc" >9.2 <a -href="etrice-docse33.html#x44-600009.2">Create a new model from scratch</a></span> -<br /> <span class="sectionToc" >9.3 <a -href="etrice-docse34.html#x45-610009.3">Create your own data type</a></span> -<br /> <span class="sectionToc" >9.4 <a -href="etrice-docse35.html#x46-620009.4">Create the model</a></span> -<br /> <span class="sectionToc" >9.5 <a -href="etrice-docse36.html#x47-630009.5">Generate, build and run the model</a></span> -<br /> <span class="sectionToc" >9.6 <a -href="etrice-docse37.html#x48-640009.6">Summary</a></span> +href="etrice-docse33.html#x44-600009.2">Building the C runtime system</a></span> </div> - - - - - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse32.html" >next</a>] [<a href="etrice-docse31.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html index 7f4841bf7..76f2c5376 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docli1.html @@ -10,11 +10,11 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 22--><div class="crosslinks"><p class="noindent">[<a +<!--l. 24--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch1.html" >next</a>] [<a href="etrice-doc.html" >prev</a>] [<a href="etrice-doc.html#tailetrice-doc" >prev-tail</a>] [<a @@ -73,13 +73,12 @@ href="etrice-docse6.html#x13-270005.1">Scope</a></span> href="etrice-docse7.html#x14-280005.2">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >5.3 <a href="etrice-docse8.html#x15-290005.3">Create a state machine</a></span> - - - <br /> <span class="sectionToc" >5.4 <a href="etrice-docse9.html#x16-300005.4">Build and run the model</a></span> <br /> <span class="sectionToc" >5.5 <a href="etrice-docse10.html#x17-310005.5">Open the Message Sequence Chart</a></span> + + <br /> <span class="sectionToc" >5.6 <a href="etrice-docse11.html#x18-320005.6">Summary</a></span> <br /><span class="chapterToc" >6 <a @@ -133,148 +132,168 @@ href="etrice-docse30.html#x40-560008.2">Setup the model</a></span> <br /> <span class="sectionToc" >8.3 <a href="etrice-docse31.html#x41-570008.3">Why does it work and why is it safe?</a></span> <br /><span class="chapterToc" >9 <a -href="etrice-docch9.html#x42-580009">Tutorial Remove C-Comment ( C )</a></span> +href="etrice-docch9.html#x42-580009">Setting up the Workspace for C Projects</a></span> <br /> <span class="sectionToc" >9.1 <a -href="etrice-docse32.html#x43-590009.1">Scope</a></span> +href="etrice-docse32.html#x43-590009.1">Testing the environment</a></span> <br /> <span class="sectionToc" >9.2 <a -href="etrice-docse33.html#x44-600009.2">Create a new model from scratch</a></span> -<br /> <span class="sectionToc" >9.3 <a -href="etrice-docse34.html#x45-610009.3">Create your own data type</a></span> -<br /> <span class="sectionToc" >9.4 <a -href="etrice-docse35.html#x46-620009.4">Create the model</a></span> -<br /> <span class="sectionToc" >9.5 <a -href="etrice-docse36.html#x47-630009.5">Generate, build and run the model</a></span> -<br /> <span class="sectionToc" >9.6 <a -href="etrice-docse37.html#x48-640009.6">Summary</a></span> +href="etrice-docse33.html#x44-600009.2">Building the C runtime system</a></span> <br /><span class="chapterToc" >10 <a -href="etrice-docch10.html#x49-6500010">ROOM Concepts</a></span> +href="etrice-docch10.html#x45-6100010">Tutorial HelloWorld for C</a></span> <br /> <span class="sectionToc" >10.1 <a -href="etrice-docse38.html#x50-6600010.1">Actors</a></span> - - - -<br />  <span class="subsectionToc" >10.1.1 <a -href="etrice-docse38.html#x50-6700010.1.1" id="QQ2-50-68">Description</a></span> -<br />  <span class="subsectionToc" >10.1.2 <a -href="etrice-docse38.html#x50-6800010.1.2" id="QQ2-50-69">Motivation</a></span> -<br />  <span class="subsectionToc" >10.1.3 <a -href="etrice-docse38.html#x50-6900010.1.3" id="QQ2-50-70">Notation</a></span> -<br />  <span class="subsectionToc" >10.1.4 <a -href="etrice-docse38.html#x50-7000010.1.4" id="QQ2-50-72">Details</a></span> +href="etrice-docse34.html#x46-6200010.1">Scope</a></span> <br /> <span class="sectionToc" >10.2 <a -href="etrice-docse39.html#x51-7400010.2">Protocols</a></span> -<br />  <span class="subsectionToc" >10.2.1 <a -href="etrice-docse39.html#x51-7500010.2.1" id="QQ2-51-78">Description</a></span> -<br />  <span class="subsectionToc" >10.2.2 <a -href="etrice-docse39.html#x51-7600010.2.2" id="QQ2-51-79">Motivation</a></span> -<br />  <span class="subsectionToc" >10.2.3 <a -href="etrice-docse39.html#x51-7700010.2.3" id="QQ2-51-80">Notation</a></span> +href="etrice-docse35.html#x47-6300010.2">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >10.3 <a -href="etrice-docse40.html#x52-7800010.3">Ports</a></span> -<br />  <span class="subsectionToc" >10.3.1 <a -href="etrice-docse40.html#x52-7900010.3.1" id="QQ2-52-82">Description</a></span> -<br />  <span class="subsectionToc" >10.3.2 <a -href="etrice-docse40.html#x52-8000010.3.2" id="QQ2-52-83">Motivation</a></span> -<br />  <span class="subsectionToc" >10.3.3 <a -href="etrice-docse40.html#x52-8100010.3.3" id="QQ2-52-84">Notation</a></span> +href="etrice-docse36.html#x48-6400010.3">Create the HelloWorld model</a></span> <br /> <span class="sectionToc" >10.4 <a -href="etrice-docse41.html#x53-8400010.4">DataClass</a></span> -<br />  <span class="subsectionToc" >10.4.1 <a -href="etrice-docse41.html#x53-8500010.4.1" id="QQ2-53-90">Description</a></span> -<br />  <span class="subsectionToc" >10.4.2 <a -href="etrice-docse41.html#x53-8600010.4.2" id="QQ2-53-91">Notation</a></span> +href="etrice-docse37.html#x49-6500010.4">Create a launch configuration to start the C code generator</a></span> <br /> <span class="sectionToc" >10.5 <a -href="etrice-docse42.html#x54-8700010.5">Layering</a></span> -<br />  <span class="subsectionToc" >10.5.1 <a -href="etrice-docse42.html#x54-8800010.5.1" id="QQ2-54-93">Description</a></span> -<br />  <span class="subsectionToc" >10.5.2 <a -href="etrice-docse42.html#x54-8900010.5.2" id="QQ2-54-94">Notation</a></span> +href="etrice-docse38.html#x50-6600010.5">Generate the code</a></span> <br /> <span class="sectionToc" >10.6 <a -href="etrice-docse43.html#x55-9000010.6">Finite State Machines</a></span> -<br />  <span class="subsectionToc" >10.6.1 <a -href="etrice-docse43.html#x55-9100010.6.1" id="QQ2-55-96">Description</a></span> -<br />  <span class="subsectionToc" >10.6.2 <a -href="etrice-docse43.html#x55-9200010.6.2" id="QQ2-55-97">Motivation</a></span> -<br />  <span class="subsectionToc" >10.6.3 <a -href="etrice-docse43.html#x55-9300010.6.3" id="QQ2-55-98">Notation</a></span> -<br />  <span class="subsectionToc" >10.6.4 <a -href="etrice-docse43.html#x55-9600010.6.4" id="QQ2-55-103">Examples</a></span> +href="etrice-docse39.html#x51-6700010.6">Setup the include path</a></span> +<br /> <span class="sectionToc" >10.7 <a +href="etrice-docse40.html#x52-6800010.7">Build and run the model</a></span> +<br /> <span class="sectionToc" >10.8 <a +href="etrice-docse41.html#x53-6900010.8">Summary</a></span> <br /><span class="chapterToc" >11 <a -href="etrice-docch11.html#x56-9900011">Automatic Diagram Layout with KIELER</a></span> +href="etrice-docch11.html#x54-7000011">Tutorial Remove C-Comment ( C )</a></span> <br /> <span class="sectionToc" >11.1 <a -href="etrice-docse44.html#x57-10000011.1">Overview</a></span> +href="etrice-docse42.html#x55-7100011.1">Scope</a></span> <br /> <span class="sectionToc" >11.2 <a -href="etrice-docse45.html#x58-10100011.2">Performing Automatic Layout</a></span> +href="etrice-docse43.html#x56-7200011.2">Create a new model from scratch</a></span> <br /> <span class="sectionToc" >11.3 <a -href="etrice-docse46.html#x59-10200011.3">Layout Options</a></span> +href="etrice-docse44.html#x57-7300011.3">Create your own data type</a></span> + + <br /> <span class="sectionToc" >11.4 <a -href="etrice-docse47.html#x60-10300011.4">Configuring Layout Options</a></span> -<br />  <span class="subsectionToc" >11.4.1 <a -href="etrice-docse47.html#x60-10400011.4.1" id="QQ2-60-111">The Layout View</a></span> -<br />  <span class="subsectionToc" >11.4.2 <a -href="etrice-docse47.html#x60-10500011.4.2" id="QQ2-60-112">Preference Page</a></span> +href="etrice-docse45.html#x58-7400011.4">Create the model</a></span> <br /> <span class="sectionToc" >11.5 <a -href="etrice-docse48.html#x61-10800011.5">Special Layout Options</a></span> -<br />  <span class="subsectionToc" >11.5.1 <a -href="etrice-docse48.html#x61-10900011.5.1" id="QQ2-61-116">Layout Algorithm</a></span> -<br />  <span class="subsectionToc" >11.5.2 <a -href="etrice-docse48.html#x61-11000011.5.2" id="QQ2-61-117">Diagram Type</a></span> +href="etrice-docse46.html#x59-7500011.5">Generate, build and run the model</a></span> <br /> <span class="sectionToc" >11.6 <a -href="etrice-docse49.html#x62-11100011.6">Further References</a></span> +href="etrice-docse47.html#x60-7600011.6">Summary</a></span> <br /><span class="chapterToc" >12 <a -href="etrice-docch12.html#x63-11200012">eTrice Features</a></span> +href="etrice-docch12.html#x61-7700012">ROOM Concepts</a></span> <br /> <span class="sectionToc" >12.1 <a -href="etrice-docse50.html#x64-11300012.1">Codegenerators</a></span> +href="etrice-docse48.html#x62-7800012.1">Actors</a></span> <br />  <span class="subsectionToc" >12.1.1 <a -href="etrice-docse50.html#x64-11400012.1.1" id="QQ2-64-121">Java Generator</a></span> - - - +href="etrice-docse48.html#x62-7900012.1.1" id="QQ2-62-80">Description</a></span> <br />  <span class="subsectionToc" >12.1.2 <a -href="etrice-docse50.html#x64-11500012.1.2" id="QQ2-64-122">C++ Generator</a></span> +href="etrice-docse48.html#x62-8000012.1.2" id="QQ2-62-81">Motivation</a></span> <br />  <span class="subsectionToc" >12.1.3 <a -href="etrice-docse50.html#x64-11600012.1.3" id="QQ2-64-123">C Generator</a></span> +href="etrice-docse48.html#x62-8100012.1.3" id="QQ2-62-82">Notation</a></span> +<br />  <span class="subsectionToc" >12.1.4 <a +href="etrice-docse48.html#x62-8200012.1.4" id="QQ2-62-84">Details</a></span> +<br /> <span class="sectionToc" >12.2 <a +href="etrice-docse49.html#x63-8600012.2">Protocols</a></span> +<br />  <span class="subsectionToc" >12.2.1 <a +href="etrice-docse49.html#x63-8700012.2.1" id="QQ2-63-90">Description</a></span> +<br />  <span class="subsectionToc" >12.2.2 <a +href="etrice-docse49.html#x63-8800012.2.2" id="QQ2-63-91">Motivation</a></span> +<br />  <span class="subsectionToc" >12.2.3 <a +href="etrice-docse49.html#x63-8900012.2.3" id="QQ2-63-92">Notation</a></span> +<br /> <span class="sectionToc" >12.3 <a +href="etrice-docse50.html#x64-9000012.3">Ports</a></span> +<br />  <span class="subsectionToc" >12.3.1 <a +href="etrice-docse50.html#x64-9100012.3.1" id="QQ2-64-94">Description</a></span> +<br />  <span class="subsectionToc" >12.3.2 <a +href="etrice-docse50.html#x64-9200012.3.2" id="QQ2-64-95">Motivation</a></span> +<br />  <span class="subsectionToc" >12.3.3 <a +href="etrice-docse50.html#x64-9300012.3.3" id="QQ2-64-96">Notation</a></span> +<br /> <span class="sectionToc" >12.4 <a +href="etrice-docse51.html#x65-9600012.4">DataClass</a></span> +<br />  <span class="subsectionToc" >12.4.1 <a +href="etrice-docse51.html#x65-9700012.4.1" id="QQ2-65-102">Description</a></span> +<br />  <span class="subsectionToc" >12.4.2 <a +href="etrice-docse51.html#x65-9800012.4.2" id="QQ2-65-103">Notation</a></span> +<br /> <span class="sectionToc" >12.5 <a +href="etrice-docse52.html#x66-9900012.5">Layering</a></span> +<br />  <span class="subsectionToc" >12.5.1 <a +href="etrice-docse52.html#x66-10000012.5.1" id="QQ2-66-105">Description</a></span> +<br />  <span class="subsectionToc" >12.5.2 <a +href="etrice-docse52.html#x66-10100012.5.2" id="QQ2-66-106">Notation</a></span> +<br /> <span class="sectionToc" >12.6 <a +href="etrice-docse53.html#x67-10200012.6">Finite State Machines</a></span> +<br />  <span class="subsectionToc" >12.6.1 <a +href="etrice-docse53.html#x67-10300012.6.1" id="QQ2-67-108">Description</a></span> +<br />  <span class="subsectionToc" >12.6.2 <a +href="etrice-docse53.html#x67-10400012.6.2" id="QQ2-67-109">Motivation</a></span> +<br />  <span class="subsectionToc" >12.6.3 <a +href="etrice-docse53.html#x67-10500012.6.3" id="QQ2-67-110">Notation</a></span> +<br />  <span class="subsectionToc" >12.6.4 <a +href="etrice-docse53.html#x67-10800012.6.4" id="QQ2-67-115">Examples</a></span> <br /><span class="chapterToc" >13 <a -href="etrice-docch13.html#x65-11700013">Codegenerators</a></span> +href="etrice-docch13.html#x68-11100013">Automatic Diagram Layout with KIELER</a></span> +<br /> <span class="sectionToc" >13.1 <a +href="etrice-docse54.html#x69-11200013.1">Overview</a></span> +<br /> <span class="sectionToc" >13.2 <a +href="etrice-docse55.html#x70-11300013.2">Performing Automatic Layout</a></span> +<br /> <span class="sectionToc" >13.3 <a +href="etrice-docse56.html#x71-11400013.3">Layout Options</a></span> +<br /> <span class="sectionToc" >13.4 <a +href="etrice-docse57.html#x72-11500013.4">Configuring Layout Options</a></span> +<br />  <span class="subsectionToc" >13.4.1 <a +href="etrice-docse57.html#x72-11600013.4.1" id="QQ2-72-123">The Layout View</a></span> +<br />  <span class="subsectionToc" >13.4.2 <a +href="etrice-docse57.html#x72-11700013.4.2" id="QQ2-72-124">Preference Page</a></span> +<br /> <span class="sectionToc" >13.5 <a +href="etrice-docse58.html#x73-12000013.5">Special Layout Options</a></span> +<br />  <span class="subsectionToc" >13.5.1 <a +href="etrice-docse58.html#x73-12100013.5.1" id="QQ2-73-128">Layout Algorithm</a></span> +<br />  <span class="subsectionToc" >13.5.2 <a +href="etrice-docse58.html#x73-12200013.5.2" id="QQ2-73-129">Diagram Type</a></span> +<br /> <span class="sectionToc" >13.6 <a +href="etrice-docse59.html#x74-12300013.6">Further References</a></span> <br /><span class="chapterToc" >14 <a -href="etrice-docch14.html#x66-11800014">Runtimes</a></span> +href="etrice-docch14.html#x75-12400014">eTrice Features</a></span> +<br /> <span class="sectionToc" >14.1 <a +href="etrice-docse60.html#x76-12500014.1">Codegenerators</a></span> +<br />  <span class="subsectionToc" >14.1.1 <a +href="etrice-docse60.html#x76-12600014.1.1" id="QQ2-76-133">Java Generator</a></span> + + +<br />  <span class="subsectionToc" >14.1.2 <a +href="etrice-docse60.html#x76-12700014.1.2" id="QQ2-76-134">C++ Generator</a></span> +<br />  <span class="subsectionToc" >14.1.3 <a +href="etrice-docse60.html#x76-12800014.1.3" id="QQ2-76-135">C Generator</a></span> <br /><span class="chapterToc" >15 <a -href="etrice-docch15.html#x67-11900015">eTrice Models and Their Relations</a></span> -<br /> <span class="sectionToc" >15.1 <a -href="etrice-docse51.html#x68-12000015.1">The ROOM Model</a></span> -<br /> <span class="sectionToc" >15.2 <a -href="etrice-docse52.html#x69-12100015.2">The Config Model</a></span> -<br /> <span class="sectionToc" >15.3 <a -href="etrice-docse53.html#x70-12200015.3">The Physical Model</a></span> -<br /> <span class="sectionToc" >15.4 <a -href="etrice-docse54.html#x71-12300015.4">The Mapping Model</a></span> +href="etrice-docch15.html#x77-12900015">Codegenerators</a></span> <br /><span class="chapterToc" >16 <a -href="etrice-docch16.html#x72-12400016">eTrice Developer’s Reference</a></span> -<br /> <span class="sectionToc" >16.1 <a -href="etrice-docse55.html#x73-12500016.1">Architecture</a></span> -<br />  <span class="subsectionToc" >16.1.1 <a -href="etrice-docse55.html#x73-12600016.1.1" id="QQ2-73-133">Editor and Generator Components</a></span> -<br />  <span class="subsectionToc" >16.1.2 <a -href="etrice-docse55.html#x73-12700016.1.2" id="QQ2-73-134">Runtimes</a></span> -<br />  <span class="subsectionToc" >16.1.3 <a -href="etrice-docse55.html#x73-12800016.1.3" id="QQ2-73-135">Unit Tests</a></span> -<br /> <span class="sectionToc" >16.2 <a -href="etrice-docse56.html#x74-12900016.2">Component Overview</a></span> -<br />  <span class="subsectionToc" >16.2.1 <a -href="etrice-docse56.html#x74-13000016.2.1" id="QQ2-74-137">Room Language Overview</a></span> -<br />  <span class="subsectionToc" >16.2.2 <a -href="etrice-docse56.html#x74-13600016.2.2" id="QQ2-74-143">Config Language Overview</a></span> -<br />  <span class="subsectionToc" >16.2.3 <a -href="etrice-docse56.html#x74-14000016.2.3" id="QQ2-74-147">Aggregation Layer Overview</a></span> -<br />  <span class="subsectionToc" >16.2.4 <a -href="etrice-docse56.html#x74-14400016.2.4" id="QQ2-74-151">Generator Overview</a></span> +href="etrice-docch16.html#x78-13000016">Runtimes</a></span> +<br /><span class="chapterToc" >17 <a +href="etrice-docch17.html#x79-13100017">eTrice Models and Their Relations</a></span> +<br /> <span class="sectionToc" >17.1 <a +href="etrice-docse61.html#x80-13200017.1">The ROOM Model</a></span> +<br /> <span class="sectionToc" >17.2 <a +href="etrice-docse62.html#x81-13300017.2">The Config Model</a></span> +<br /> <span class="sectionToc" >17.3 <a +href="etrice-docse63.html#x82-13400017.3">The Physical Model</a></span> +<br /> <span class="sectionToc" >17.4 <a +href="etrice-docse64.html#x83-13500017.4">The Mapping Model</a></span> +<br /><span class="chapterToc" >18 <a +href="etrice-docch18.html#x84-13600018">eTrice Developer’s Reference</a></span> +<br /> <span class="sectionToc" >18.1 <a +href="etrice-docse65.html#x85-13700018.1">Architecture</a></span> +<br />  <span class="subsectionToc" >18.1.1 <a +href="etrice-docse65.html#x85-13800018.1.1" id="QQ2-85-145">Editor and Generator Components</a></span> +<br />  <span class="subsectionToc" >18.1.2 <a +href="etrice-docse65.html#x85-13900018.1.2" id="QQ2-85-146">Runtimes</a></span> +<br />  <span class="subsectionToc" >18.1.3 <a +href="etrice-docse65.html#x85-14000018.1.3" id="QQ2-85-147">Unit Tests</a></span> +<br /> <span class="sectionToc" >18.2 <a +href="etrice-docse66.html#x86-14100018.2">Component Overview</a></span> +<br />  <span class="subsectionToc" >18.2.1 <a +href="etrice-docse66.html#x86-14200018.2.1" id="QQ2-86-149">Room Language Overview</a></span> +<br />  <span class="subsectionToc" >18.2.2 <a +href="etrice-docse66.html#x86-14800018.2.2" id="QQ2-86-155">Config Language Overview</a></span> +<br />  <span class="subsectionToc" >18.2.3 <a +href="etrice-docse66.html#x86-15200018.2.3" id="QQ2-86-159">Aggregation Layer Overview</a></span> +<br />  <span class="subsectionToc" >18.2.4 <a +href="etrice-docse66.html#x86-15600018.2.4" id="QQ2-86-163">Generator Overview</a></span> </div> - - - - - - + + + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch1.html" >next</a>] [<a href="etrice-doc.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html index c81f2217b..12f0db7e9 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse1.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,14 +22,13 @@ href="#tailetrice-docse1.html">tail</a>] [<a href="etrice-docch1.html#etrice-docse1.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">1.1 </span> <a id="x4-30001.1"></a>What is eTrice?</h3> -<!--l. 5--><p class="noindent" >eTrice provides an implementation of the ROOM modeling language (Real Time -Object Oriented Modeling) together with editors, code generators for Java, C++ and -C code and exemplary target middleware. -</p><!--l. 7--><p class="noindent" >The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the -structural and behavioral (i.e. state machine) parts. - - - +<!--l. 5--><p class="noindent" >eTrice provides an implementation of the ROOM modeling language (Real Time Object Oriented +Modeling) together with editors, code generators for Java, C++ and C code and exemplary target +middleware. +</p><!--l. 7--><p class="noindent" >The model is defined in textual form (Xtext) with graphical editors (Graphiti) for the structural and +behavioral (i.e. state machine) parts. + + </p> <!--l. 9--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse2.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html index e7863c105..49e5e9002 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse10.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,15 +23,13 @@ href="etrice-docch5.html#etrice-docse10.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.5 </span> <a id="x17-310005.5"></a>Open the Message Sequence Chart</h3> <!--l. 113--><p class="noindent" >During runtime the application produced a MSC and wrote it to a file. Open -HelloWorld/tmp/log/SubSystem_HelloWorld_Async.seq using Trace2UML (it is -open source and can be obtained from http://trace2uml.tigris.org/). You should see -something like this: +HelloWorld/tmp/log/SubSystem_HelloWorld_Async.seq using Trace2UML (it is open source and can be +obtained from http://trace2uml.tigris.org/). You should see something like this: </p><!--l. 115--><p class="noindent" ><img src="images/015-HelloWorld09.png" alt="PIC" /> - - - + + </p> <!--l. 119--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse11.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html index 1332088ae..6f8df47df 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse11.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,21 +22,17 @@ href="#tailetrice-docse11.html">tail</a>] [<a href="etrice-docch5.html#etrice-docse11.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.6 </span> <a id="x18-320005.6"></a>Summary</h3> -<!--l. 121--><p class="noindent" >Now you have generated your first eTrice model from scratch. You can switch -between diagram editor and model (.room file) and you can see what will be -generated during editing and saving the diagram files. You should take a look at the -generated source files to understand how the state machine is generated and the life -cycle of the application. The next tutorials will deal with more complex hierarchies in +<!--l. 121--><p class="noindent" >Now you have generated your first eTrice model from scratch. You can switch between diagram editor and +model (.room file) and you can see what will be generated during editing and saving the diagram files. +You should take a look at the generated source files to understand how the state machine is generated +and the life cycle of the application. The next tutorials will deal with more complex hierarchies in structure and behavior. - - - - - - - - - + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch6.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html index 81d933f05..3bef09a50 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse12.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,19 +23,17 @@ href="etrice-docch6.html#etrice-docse12.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.1 </span> <a id="x20-340006.1"></a>Scope</h3> <!--l. 5--><p class="noindent" >This tutorial describes how to use the <span -class="ecti-1000">TimingService</span>, how to combine a generated -model with manual code and how to model a hierarchical state machine. The idea of -the tutorial is to switch a LED on and off. The behavior of the LED should be: -blinking in a one second interval for 5 seconds, stop blinking for 5 seconds, -blinking, stop,... For this exercise we will use a little GUI class that will be -used in more sophisticated tutorials too. The GUI simulates a pedestrian -traffic crossing. For now, just a simple LED simulation will be used from the +class="ecti-1000">TimingService</span>, how to combine a generated model with manual +code and how to model a hierarchical state machine. The idea of the tutorial is to switch +a LED on and off. The behavior of the LED should be: blinking in a one second interval +for 5 seconds, stop blinking for 5 seconds, blinking, stop,... For this exercise we will use a +little GUI class that will be used in more sophisticated tutorials too. The GUI simulates +a pedestrian traffic crossing. For now, just a simple LED simulation will be used from the GUI. -</p><!--l. 8--><p class="noindent" >After the exercise is created you must copy the GUI to your src directory (see -below). -</p><!--l. 10--><p class="noindent" >The package contains four java classes which implements a small window with a -3-light traffic light which simulates the signals for the car traffic and a 2-light traffic -light which simulates the pedestrian signals. +</p><!--l. 8--><p class="noindent" >After the exercise is created you must copy the GUI to your src directory (see below). +</p><!--l. 10--><p class="noindent" >The package contains four java classes which implements a small window with a 3-light traffic light which +simulates the signals for the car traffic and a 2-light traffic light which simulates the pedestrian +signals. </p><!--l. 12--><p class="noindent" >The GUI looks like this: </p><!--l. 14--><p class="noindent" ><img src="images/020-Blinky08.png" alt="PIC" @@ -46,9 +44,6 @@ src="images/020-Blinky08.png" alt="PIC" </p><ol class="enumerate1" > <li class="enumerate" id="x20-34002x1">create a new model from scratch - - - </li> <li class="enumerate" id="x20-34004x2">define a protocol @@ -62,6 +57,8 @@ src="images/020-Blinky08.png" alt="PIC" <li class="enumerate" id="x20-34010x5">use the predefined <span class="ecti-1000">TimingService</span> + + </li> <li class="enumerate" id="x20-34012x6">combine manual code with generated code @@ -71,9 +68,8 @@ class="ecti-1000">TimingService</span> </li> <li class="enumerate" id="x20-34016x8">open the message sequence chart</li></ol> - - - + + <!--l. 32--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse13.html" >next</a>] [<a href="etrice-docch6.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html index 2f2a713de..22a23f550 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse13.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,24 +23,21 @@ href="etrice-docch6.html#etrice-docse13.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.2 </span> <a id="x21-350006.2"></a>Create a new model from scratch</h3> <!--l. 34--><p class="noindent" >Remember the exercise <span -class="ecti-1000">HelloWorld</span>. Create a new eTrice project and name it -<span +class="ecti-1000">HelloWorld</span>. Create a new eTrice project and name it <span class="ecti-1000">Blinky</span>. </p><!--l. 37--><p class="noindent" >To use the GUI please copy the package <span class="ecti-1000">org.eclipse.etrice.tutorials.PedLightGUI </span>from <span class="ecti-1000">org.eclipse.etrice.tutorials/src </span>to your *src* directory <span -class="ecti-1000">Blinky/src</span>. For this tutorial you -must remove the error markers by editing the file <span -class="ecti-1000">PedestrianLightWndNoTcp.java</span>. -Appropriate comments are provided to remove the error markers for this -turorial. +class="ecti-1000">Blinky/src</span>. For this tutorial you must remove the +error markers by editing the file <span +class="ecti-1000">PedestrianLightWndNoTcp.java</span>. Appropriate comments are provided to +remove the error markers for this turorial. </p><!--l. 39--><p class="noindent" >Open the <span -class="ecti-1000">Blinky.room </span>file and copy the following code into the file or use content -assist to create the model. - - - +class="ecti-1000">Blinky.room </span>file and copy the following code into the file or use content assist to create the +model. + + </p> <div class="verbatim" id="verbatim-3"> RoomModel Blinky { @@ -58,9 +55,8 @@ RoomModel Blinky {  <br />} </div> <!--l. 55--><p class="nopar" > - - - + + </p> <!--l. 57--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse14.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html index a58d773df..d80eaebb5 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse14.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,8 +22,8 @@ href="#tailetrice-docse14.html">tail</a>] [<a href="etrice-docch6.html#etrice-docse14.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.3 </span> <a id="x22-360006.3"></a>Add two additional actor classes</h3> -<!--l. 59--><p class="noindent" >Position the cursor outside any class definition and right click the mouse within the -editor window. From the context menu select <span +<!--l. 59--><p class="noindent" >Position the cursor outside any class definition and right click the mouse within the editor window. From +the context menu select <span class="ecti-1000">Content Assist</span> </p><!--l. 61--><p class="noindent" ><img src="images/020-Blinky02.png" alt="PIC" @@ -38,9 +38,8 @@ src="images/020-Blinky01.png" alt="PIC" class="ecti-1000">BlinkyController</span>. </p><!--l. 71--><p class="noindent" >With Ctrl+Shift+F you can beautify the model code. </p><!--l. 73--><p class="noindent" >Save the model and visit the outline view. - - - + + </p> <!--l. 75--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse15.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html index f82dffbeb..783c6981f 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse15.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -24,23 +24,22 @@ href="etrice-docch6.html#etrice-docse15.html" >up</a>] </p></div> id="x23-370006.4"></a>Create a new protocol</h3> <!--l. 77--><p class="noindent" >With the help of <span class="ecti-1000">Content Assist </span>create a <span -class="ecti-1000">ProtocolClass </span>and name it +class="ecti-1000">ProtocolClass </span>and name it <span +class="ecti-1000">BlinkyControlProtocol</span>. Inside the +brackets use the <span +class="ecti-1000">Content Assist </span>(CTRL+Space) to create two incoming messages called <span +class="ecti-1000">start </span>and <span -class="ecti-1000">BlinkyControlProtocol</span>. Inside the brackets use the <span -class="ecti-1000">Content Assist </span>(CTRL+Space) to -create two incoming messages called <span -class="ecti-1000">start </span>and <span class="ecti-1000">stop</span>. </p><!--l. 80--><p class="noindent" >The resulting code should look like this: </p><!--l. 82--><p class="noindent" ><img src="images/020-Blinky03.png" alt="PIC" /> </p><!--l. 85--><p class="noindent" >With Ctrl-Shift+F or selecting <span -class="ecti-1000">Format </span>from the context menu you can format the -text. Note that all elements are displayed in the outline view. - - - +class="ecti-1000">Format </span>from the context menu you can format the text. Note that all +elements are displayed in the outline view. + + </p> <!--l. 87--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse16.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html index 7b84b689b..d4b3e76fb 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse16.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,23 +22,21 @@ href="#tailetrice-docse16.html">tail</a>] [<a href="etrice-docch6.html#etrice-docse16.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.5 </span> <a id="x24-380006.5"></a>Import the Timing Service</h3> -<!--l. 89--><p class="noindent" >Switching on and off the LED is timing controlled. The timing service is provided -from the model library and must be imported before it can be used from the -model. -</p><!--l. 91--><p class="noindent" >This is the first time you use an element from the modellib. Make sure that your Java -Build Path has the appropriate entry to the modellib. Otherwise the jave code, which -will be generated from the modellib, can not be referenced. (right click to <span -class="ecti-1000">Blinky </span>and -select properties. Select the <span -class="ecti-1000">Java Build Path </span>tab) +<!--l. 89--><p class="noindent" >Switching on and off the LED is timing controlled. The timing service is provided from the model library +and must be imported before it can be used from the model. +</p><!--l. 91--><p class="noindent" >This is the first time you use an element from the modellib. Make sure that your Java Build Path has the +appropriate entry to the modellib. Otherwise the jave code, which will be generated from the modellib, +can not be referenced. (right click to <span +class="ecti-1000">Blinky </span>and select properties. Select the <span +class="ecti-1000">Java Build Path</span> +tab) </p><!--l. 94--><p class="noindent" ><img src="images/020-Blinky16.png" alt="PIC" /> -</p><!--l. 97--><p class="noindent" >After the build path is set up return to the model and navigate the cursor at the -beginning of the model and import the timing service: - - - +</p><!--l. 97--><p class="noindent" >After the build path is set up return to the model and navigate the cursor at the beginning of the model +and import the timing service: + + </p> <div class="verbatim" id="verbatim-4"> RoomModel Blinky { @@ -53,37 +51,35 @@ RoomModel Blinky {  <br />... </div> <!--l. 111--><p class="nopar" > -</p><!--l. 114--><p class="noindent" >Make sure that the path fits to your folder structure. The original tutorial code is -different due to the folder structure. +</p><!--l. 114--><p class="noindent" >Make sure that the path fits to your folder structure. The original tutorial code is different due to the +folder structure. </p><!--l. 116--><p class="noindent" >Now it can be used within the model. Right click to <span -class="ecbx-1000">SubSystem_Blinky </span>within the -outline view. Select <span +class="ecbx-1000">SubSystem_Blinky </span>within the outline view. Select +<span class="ecti-1000">Edit Structure</span>. The <span -class="ecti-1000">application </span>is already referenced in -the subsystem. Drag and Drop an <span -class="ecti-1000">ActorRef </span>to the <span -class="ecbx-1000">SubSystem_Blinky</span> -and name it <span +class="ecti-1000">application </span>is already referenced in the subsystem. Drag and Drop an <span +class="ecti-1000">ActorRef </span>to +the <span +class="ecbx-1000">SubSystem_Blinky </span>and name it <span class="ecti-1000">timingService</span>. From the actor class drop down list select <span class="ecti-1000">room.basic.service.timing.ATimingService</span>. Draw a <span class="ecti-1000">LayerConnection </span>from <span -class="ecti-1000">application</span> -to each service provision point (SPP) of the <span -class="ecti-1000">timingService</span>. The resulting structure -should look like this: +class="ecti-1000">application </span>to each +service provision point (SPP) of the <span +class="ecti-1000">timingService</span>. The resulting structure should look like +this: </p><!--l. 118--><p class="noindent" ><img src="images/020-Blinky06.png" alt="PIC" /> -</p><!--l. 121--><p class="noindent" >The current version of eTrice does not provide a graphical element for a service -access point (SAP). Therefore the SAPs to access the timing service must be added -in the .room file. Open the <span +</p><!--l. 121--><p class="noindent" >The current version of eTrice does not provide a graphical element for a service access point (SAP). +Therefore the SAPs to access the timing service must be added in the .room file. Open the +<span class="ecti-1000">Blinky.room </span>file and navigate to the <span -class="ecti-1000">Blinky </span>actor. Add -the following line to the structure of the actor: - - - +class="ecti-1000">Blinky </span>actor. Add the following line to the structure of the +actor: + + </p> <div class="verbatim" id="verbatim-5"> SAP timer: room.basic.service.timing.PTimeout  @@ -95,9 +91,8 @@ class="ecti-1000">BlinkyController</span>. </p><!--l. 129--><p class="noindent" ><img src="images/020-Blinky07.png" alt="PIC" /> - - - + + </p> <!--l. 133--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse17.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html index 70a994eb3..4c4ba81fe 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse17.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -24,19 +24,19 @@ href="etrice-docch6.html#etrice-docse17.html" >up</a>] </p></div> id="x25-390006.6"></a>Finish the model structure</h3> <!--l. 135--><p class="noindent" >From the outline view right click to <span class="ecti-1000">Blinky </span>and select <span -class="ecti-1000">Edit Structure</span>. Drag and Drop -an <span -class="ecti-1000">Interface Port </span>to the boarder of the <span -class="ecti-1000">Blinky </span>actor. Note that an interface -port is not possible inside the actor. Name the port <span -class="ecti-1000">ControlPort </span>and select +class="ecti-1000">Edit Structure</span>. Drag and Drop an <span +class="ecti-1000">Interface</span> <span -class="ecti-1000">BlinkyControlProtocol </span>from the drop down list. Uncheck <span +class="ecti-1000">Port </span>to the boarder of the <span +class="ecti-1000">Blinky </span>actor. Note that an interface port is not possible inside the +actor. Name the port <span +class="ecti-1000">ControlPort </span>and select <span +class="ecti-1000">BlinkyControlProtocol </span>from the drop down list. +Uncheck <span class="ecti-1000">Conjugated </span>and <span -class="ecti-1000">Is Relay</span> -<span -class="ecti-1000">Port</span>. Click <span -class="ecti-1000">ok</span>. The resulting structure should look like this: +class="ecti-1000">Is Relay Port</span>. Click <span +class="ecti-1000">ok</span>. The resulting structure should look like +this: </p><!--l. 137--><p class="noindent" ><img src="images/020-Blinky04.png" alt="PIC" /> @@ -45,33 +45,30 @@ class="ecti-1000">BlinkyController</span>. Make the port <span class="ecti-1000">Conjugated</span> </p><!--l. 142--><p class="noindent" >Keep in mind that the protocol defines <span class="ecti-1000">start </span>and <span -class="ecti-1000">stop </span>as incoming messages. -<span -class="ecti-1000">Blinky </span>receives this messages and therefore <span +class="ecti-1000">stop </span>as incoming messages. <span +class="ecti-1000">Blinky </span>receives this messages +and therefore <span class="ecti-1000">Blinky</span>’s <span -class="ecti-1000">ControlPort </span>must be -a regular port and <span +class="ecti-1000">ControlPort </span>must be a regular port and <span class="ecti-1000">BlinkyController</span>’s <span -class="ecti-1000">ControlPort </span>must be a conjugated -port. +class="ecti-1000">ControlPort </span>must be a +conjugated port. </p><!--l. 145--><p class="noindent" >From the outline view right click <span class="ecti-1000">BlinkyTop </span>and select <span class="ecti-1000">Edit Structure</span>. </p><!--l. 147--><p class="noindent" >Drag and Drop an <span -class="ecti-1000">ActorRef </span>inside the <span +class="ecti-1000">ActorRef </span>inside the <span class="ecti-1000">BlinkyTop </span>actor. Name it <span -class="ecti-1000">blinky</span>. -From the actor class drop down list select <span +class="ecti-1000">blinky</span>. From the actor class drop down +list select <span class="ecti-1000">Blinky</span>. Do the same for <span -class="ecti-1000">controller</span>. -Connect the ports via the binding tool. The resulting structure should look like -this: +class="ecti-1000">controller</span>. Connect the ports via the binding tool. The resulting +structure should look like this: </p><!--l. 149--><p class="noindent" ><img src="images/020-Blinky05.png" alt="PIC" /> - - - + + </p> <!--l. 152--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse18.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html index 273ae3749..4d8c872c3 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse18.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,132 +22,119 @@ href="#tailetrice-docse18.html">tail</a>] [<a href="etrice-docch6.html#etrice-docse18.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.7 </span> <a id="x26-400006.7"></a>Implement the Behavior</h3> -<!--l. 154--><p class="noindent" >The application should switch on and off the LED for 5 seconds in a 1 second -interval, then stop blinking for 5 seconds and start again. To implement this behavior -we will implement two FSMs. One for the 1 second interval and one for the 5 second -interval. The 1 second blinking should be implemented in <span -class="ecti-1000">Blinky</span>. The 5 second -interval should be implemented in <span +<!--l. 154--><p class="noindent" >The application should switch on and off the LED for 5 seconds in a 1 second interval, then stop blinking +for 5 seconds and start again. To implement this behavior we will implement two FSMs. One for the 1 +second interval and one for the 5 second interval. The 1 second blinking should be implemented in +<span +class="ecti-1000">Blinky</span>. The 5 second interval should be implemented in <span class="ecti-1000">BlinkyController</span>. First implement the Controller. </p><!--l. 156--><p class="noindent" >Right click to <span class="ecti-1000">BlinkyController </span>and select <span class="ecti-1000">Edit Behavior</span>. Drag and Drop the <span -class="ecti-1000">Initial</span> -<span -class="ecti-1000">Point </span>and two <span -class="ecti-1000">States </span>into the top state. Name the states <span +class="ecti-1000">Initial Point </span>and two <span +class="ecti-1000">States</span> +into the top state. Name the states <span class="ecti-1000">on </span>and <span -class="ecti-1000">off</span>. Use the -<span +class="ecti-1000">off</span>. Use the <span class="ecti-1000">Transition </span>tool to draw transitions from <span class="ecti-1000">init </span>to <span -class="ecti-1000">on </span>from <span +class="ecti-1000">on</span> +from <span class="ecti-1000">on </span>to <span -class="ecti-1000">off </span>and from <span -class="ecti-1000">off </span>to -<span +class="ecti-1000">off </span>and from <span +class="ecti-1000">off </span>to <span class="ecti-1000">on</span>. -</p><!--l. 160--><p class="noindent" >Open the transition dialog by double click the arrow to specify the trigger event and -the action code of each transition. Note that the initial transition does not have a -trigger event. +</p><!--l. 160--><p class="noindent" >Open the transition dialog by double click the arrow to specify the trigger event and the action code of +each transition. Note that the initial transition does not have a trigger event. </p><!--l. 162--><p class="noindent" >The transition dialog should look like this: </p><!--l. 164--><p class="noindent" ><img src="images/020-Blinky09.png" alt="PIC" /> -</p><!--l. 167--><p class="noindent" >The defined ports will be generated as a member attribute of the actor class -from type of the attached protocol. So, to send e message you must state -<span +</p><!--l. 167--><p class="noindent" >The defined ports will be generated as a member attribute of the actor class from type of the attached +protocol. So, to send e message you must state <span class="ecti-1000">port.message(param);</span>. In this example <span -class="ecti-1000">ControlPort.start() </span>sends the <span -class="ecti-1000">start </span>message -via the <span +class="ecti-1000">ControlPort.start()</span> +sends the <span +class="ecti-1000">start </span>message via the <span class="ecti-1000">ControlPort </span>to the outside world. Assuming that <span -class="ecti-1000">Blinky </span>is connected to this -port, the message will start the one second blinking FSM. It is the same -thing with the <span -class="ecti-1000">timer</span>. The SAP is also a port and follows the same rules. -So it is clear that <span +class="ecti-1000">Blinky </span>is connected to +this port, the message will start the one second blinking FSM. It is the same thing with the <span +class="ecti-1000">timer</span>. The +SAP is also a port and follows the same rules. So it is clear that <span class="ecti-1000">timer.Start(5000); </span>will send the <span -class="ecti-1000">Start </span>message to the -timing service. The timing service will send a <span +class="ecti-1000">Start</span> +message to the timing service. The timing service will send a <span class="ecti-1000">timeoutTick </span>message back after 5000ms. -</p><!--l. 169--><p class="noindent" >Within each transition the timer will be restarted and the appropriate message will -be sent via the <span +</p><!--l. 169--><p class="noindent" >Within each transition the timer will be restarted and the appropriate message will be sent via the +<span class="ecti-1000">ControlPort</span>. -</p><!--l. 171--><p class="noindent" >The resulting state machine should look like this: (Note that the arrows peak changes -if the transition contains action code.) +</p><!--l. 171--><p class="noindent" >The resulting state machine should look like this: (Note that the arrows peak changes if the transition +contains action code.) </p><!--l. 174--><p class="noindent" ><img src="images/020-Blinky10.png" alt="PIC" /> </p><!--l. 177--><p class="noindent" >Save the diagram and inspect the <span class="ecti-1000">Blinky.room </span>file. The <span -class="ecti-1000">BlinkyController </span>should look -like this: +class="ecti-1000">BlinkyController </span>should look like +this: </p><!--l. 179--><p class="noindent" ><img src="images/020-Blinky11.png" alt="PIC" /> </p><!--l. 182--><p class="noindent" >Now we will implement <span class="ecti-1000">Blinky</span>. Due to the fact that <span -class="ecti-1000">Blinky </span>interacts with the GUI -class a view things must to be done in the model file. - - - +class="ecti-1000">Blinky </span>interacts with the GUI class a view things +must to be done in the model file. </p><!--l. 184--><p class="noindent" >Double click <span class="ecti-1000">Blinky </span>in the outline view to navigate to <span -class="ecti-1000">Blinky </span>within the model -file. Add the following code: (type it or simply copy it from the tutorial -project) +class="ecti-1000">Blinky </span>within the model file. Add the following +code: (type it or simply copy it from the tutorial project) </p><!--l. 188--><p class="noindent" ><img src="images/020-Blinky12.png" alt="PIC" /> </p><!--l. 191--><p class="noindent" ><span -class="ecti-1000">usercode1 </span>will be generated at the beginning of the file, outside the class definition. -<span -class="ecti-1000">usercode2 </span>will be generated within the class definition. The code imports the GUI -class and instantiates the window class. Attributes for the carLights and pedLights -will be declared to easily access the lights in the state machine. The Operation -<span -class="ecti-1000">destroyUser() </span>is a predefined operation that will be called during shutdown of the -application. Within this operation, cleanup of manual coded classes can be +class="ecti-1000">usercode1 </span>will be generated at the beginning of the file, outside the class definition. <span +class="ecti-1000">usercode2 </span>will be +generated within the class definition. The code imports the GUI class and instantiates the window class. +Attributes for the carLights and pedLights will be declared to easily access the lights in the state +machine. The Operation <span +class="ecti-1000">destroyUser() </span>is a predefined operation that will be called during +shutdown of the application. Within this operation, cleanup of manual coded classes can be done. </p><!--l. 194--><p class="noindent" >Now design the FSM of <span class="ecti-1000">Blinky</span>. Remember, as the name suggested <span -class="ecti-1000">blinking </span>is a state -in which the LED must be switched on and off. We will realize that by an -hierarchical FSM in which the <span -class="ecti-1000">blinking </span>state has two sub states. +class="ecti-1000">blinking </span>is a state in which the LED +must be switched on and off. We will realize that by an hierarchical FSM in which the <span +class="ecti-1000">blinking </span>state has + + +two sub states. </p><!--l. 196--><p class="noindent" >Open the behavior diagram of <span class="ecti-1000">Blinky </span>by right clicking the <span -class="ecti-1000">Blinky </span>actor in the outline -view. Create two states named <span +class="ecti-1000">Blinky </span>actor in the outline view. Create two +states named <span class="ecti-1000">blinking </span>and <span class="ecti-1000">off</span>. Right click to <span -class="ecti-1000">blinking </span>and create a -subgraph. +class="ecti-1000">blinking </span>and create a subgraph. </p><!--l. 198--><p class="noindent" ><img src="images/020-Blinky13.png" alt="PIC" /> </p><!--l. 201--><p class="noindent" >Create the following state machine. The trigger events between <span class="ecti-1000">on </span>and <span -class="ecti-1000">off </span>are the +class="ecti-1000">off </span>are the <span +class="ecti-1000">timeoutTick </span>from the <span -class="ecti-1000">timeoutTick </span>from the <span class="ecti-1000">timer </span>port. </p><!--l. 203--><p class="noindent" ><img src="images/020-Blinky14.png" alt="PIC" /> </p><!--l. 206--><p class="noindent" >Create entry code for both states by right clicking the state and select <span -class="ecti-1000">Edit</span> -<span -class="ecti-1000">State...</span> +class="ecti-1000">Edit State...</span> </p><!--l. 208--><p class="noindent" >Entry code of <span class="ecti-1000">on </span>is: - - - + + </p> <div class="verbatim" id="verbatim-6"> timer.Start(1000); @@ -156,9 +143,8 @@ timer.Start(1000); <!--l. 213--><p class="nopar" > </p><!--l. 216--><p class="noindent" >Entry code of <span class="ecti-1000">off </span>is: - - - + + </p> <div class="verbatim" id="verbatim-7"> timer.Start(1000); @@ -166,31 +152,29 @@ timer.Start(1000); </div> <!--l. 221--><p class="nopar" > </p><!--l. 223--><p class="noindent" >Navigate to the Top level state by double clicking the <span -class="ecti-1000">/blinking </span>state. Create the -following state machine: +class="ecti-1000">/blinking </span>state. Create the following state +machine: </p><!--l. 225--><p class="noindent" ><img src="images/020-Blinky15.png" alt="PIC" /> </p><!--l. 228--><p class="noindent" >The trigger event from <span -class="ecti-1000">off </span>to <span +class="ecti-1000">off </span>to <span class="ecti-1000">blinking </span>is the <span class="ecti-1000">start </span>event from the <span -class="ecti-1000">ControlPort</span>.The -trigger event from <span +class="ecti-1000">ControlPort</span>.The trigger event from +<span class="ecti-1000">blinking </span>to <span class="ecti-1000">off </span>is the <span class="ecti-1000">stop </span>event from the <span -class="ecti-1000">ControlPort</span>. Note: The -transition from <span +class="ecti-1000">ControlPort</span>. Note: The transition from <span class="ecti-1000">blinking </span>to <span -class="ecti-1000">off </span>is a so called group transition. This is a outgoing -transition from a super state (state with sub states) without specifying the concrete -leave state (state without sub states). An incoming transition to a super state is +class="ecti-1000">off </span>is a so +called group transition. This is a outgoing transition from a super state (state with sub states) without +specifying the concrete leave state (state without sub states). An incoming transition to a super state is called history transition. </p><!--l. 231--><p class="noindent" >Action code of the init transition is: - - - + + </p> <div class="verbatim" id="verbatim-8"> carLights = light.getCarLights(); @@ -202,21 +186,19 @@ carLights = light.getCarLights(); </p><!--l. 240--><p class="noindent" >Action code from <span class="ecti-1000">blinking </span>to <span class="ecti-1000">off </span>is: - - - + + </p> <div class="verbatim" id="verbatim-9"> timer.Kill();  <br />carLights.setState(TrafficLight3.OFF); </div> <!--l. 245--><p class="nopar" > -</p><!--l. 247--><p class="noindent" >The model is complete now. You can run and debug the model as described in -getting started. Have fun. +</p><!--l. 247--><p class="noindent" >The model is complete now. You can run and debug the model as described in getting started. Have +fun. </p><!--l. 249--><p class="noindent" >The complete model can be found in /org.eclipse.etrice.tutorials/model/Blinky. - - - + + </p> <!--l. 251--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse19.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html index 5c62c4344..0223ad99d 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse19.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,21 +22,17 @@ href="#tailetrice-docse19.html">tail</a>] [<a href="etrice-docch6.html#etrice-docse19.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">6.8 </span> <a id="x27-410006.8"></a>Summary</h3> -<!--l. 253--><p class="noindent" >Run the model and take a look at the generated MSCs. Inspect the generated code -to understand the runtime model of eTrice. Within this tutorial you have -learned how to create a hierarchical FSM with group transitions and history -transitions and you have used entry code. You are now familiar with the -basic features of eTrice. The further tutorials will take this knowledge as a +<!--l. 253--><p class="noindent" >Run the model and take a look at the generated MSCs. Inspect the generated code to understand the +runtime model of eTrice. Within this tutorial you have learned how to create a hierarchical FSM +with group transitions and history transitions and you have used entry code. You are now +familiar with the basic features of eTrice. The further tutorials will take this knowledge as a precondition. - - - - - - - - - + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch7.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html index 9b12f7a1e..58495344b 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse2.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -27,8 +27,7 @@ href="etrice-docch1.html#etrice-docse2.html" >up</a>] </p></div> <ul class="itemize1"> <li class="itemize">structural complexity <ul class="itemize2"> - <li class="itemize">by explicit modeling of hierarchical Actor containment, layering and - inheritance</li></ul> + <li class="itemize">by explicit modeling of hierarchical Actor containment, layering and inheritance</li></ul> </li> <li class="itemize">behavioral complexity <ul class="itemize2"> @@ -36,24 +35,19 @@ href="etrice-docch1.html#etrice-docse2.html" >up</a>] </p></div> </li> <li class="itemize">teamwork complexity <ul class="itemize2"> - <li class="itemize">because loosely coupled Actors provide a natural way to structure - team work + <li class="itemize">because loosely coupled Actors provide a natural way to structure team work </li> <li class="itemize">since textual model notation allows simple branching and merging</li></ul> </li> <li class="itemize">complexity of concurrent & distributed systems <ul class="itemize2"> - <li class="itemize">because loosely coupled Actors are deployable to threads, processes, - nodes</li></ul> + <li class="itemize">because loosely coupled Actors are deployable to threads, processes, nodes</li></ul> </li> <li class="itemize">complexity of variant handling and reuse (e.g. for product lines) <ul class="itemize2"> <li class="itemize">by composition of existing Actors to new structures </li> <li class="itemize">since Protocols and Ports make Actors replaceable - - - </li> <li class="itemize">by inheritance for structure, behavior and Protocols </li> @@ -61,15 +55,15 @@ href="etrice-docch1.html#etrice-docse2.html" >up</a>] </p></div> </li> <li class="itemize">complexity of debugging <ul class="itemize2"> - <li class="itemize">model level debugging: state machine animation, data inspection and - manipulation, message injection, generated message sequence charts + <li class="itemize">model level debugging: state machine animation, data inspection and manipulation, + message injection, generated message sequence charts + + </li> - <li class="itemize">model checking easier for model than for code (detect errors before - they occur)</li></ul> + <li class="itemize">model checking easier for model than for code (detect errors before they occur)</li></ul> </li></ul> - - - + + <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch2.html" >next</a>] [<a href="etrice-docse1.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html index fb8b388b5..6cbf93542 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse20.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,10 +22,9 @@ href="#tailetrice-docse20.html">tail</a>] [<a href="etrice-docch7.html#etrice-docse20.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.1 </span> <a id="x29-430007.1"></a>Scope</h3> -<!--l. 5--><p class="noindent" >This tutorial shows how data will be sent in a eTrice model. Within the -example you will create two actors (MrPing and MrPong). MrPong will -simply loop back every data it received. MrPing will send data and verify the -result. +<!--l. 5--><p class="noindent" >This tutorial shows how data will be sent in a eTrice model. Within the example you will create two +actors (MrPing and MrPong). MrPong will simply loop back every data it received. MrPing will send +data and verify the result. </p><!--l. 8--><p class="noindent" >You will perform the following steps: </p><!--l. 10--><p class="noindent" > </p><ol class="enumerate1" > @@ -43,15 +42,11 @@ result. </li> <li class="enumerate" id="x29-43010x5">create two simple state machines - - - </li> <li class="enumerate" id="x29-43012x6">build and run the model</li></ol> - - - + + <!--l. 19--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse21.html" >next</a>] [<a href="etrice-docch7.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html index 5eb952a8d..1fc23275f 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse21.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,14 +23,13 @@ href="etrice-docch7.html#etrice-docse21.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.2 </span> <a id="x30-440007.2"></a>Create a new model from scratch</h3> <!--l. 21--><p class="noindent" >Remember exercise <span -class="ecti-1000">HelloWorld</span>. Create a new eTrice project and name it +class="ecti-1000">HelloWorld</span>. Create a new eTrice project and name it <span +class="ecti-1000">SendingData</span>. Open the <span -class="ecti-1000">SendingData</span>. Open the <span -class="ecti-1000">SendingData.room </span>file and copy the following code into the -file or use content assist to create the model. - - - +class="ecti-1000">SendingData.room </span>file and copy the following code into the file or use content assist to create the +model. + + </p> <div class="verbatim" id="verbatim-10"> RoomModel SendingData { @@ -45,9 +44,8 @@ RoomModel SendingData {  <br />} </div> <!--l. 37--><p class="nopar" > - - - + + </p> <!--l. 39--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse22.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html index 044f99a40..612147c83 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse22.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,20 +22,18 @@ href="#tailetrice-docse22.html">tail</a>] [<a href="etrice-docch7.html#etrice-docse22.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.3 </span> <a id="x31-450007.3"></a>Add a data class</h3> -<!--l. 41--><p class="noindent" >Position the cursor outside any class definition and right click the mouse -within the editor window. From the context menu select <span -class="ecti-1000">Content Assist </span>(or -Ctrl+Space). +<!--l. 41--><p class="noindent" >Position the cursor outside any class definition and right click the mouse within the editor window. From +the context menu select <span +class="ecti-1000">Content Assist </span>(or Ctrl+Space). </p><!--l. 43--><p class="noindent" ><img src="images/025-SendingData01.png" alt="PIC" /> </p><!--l. 46--><p class="noindent" >Select <span class="ecti-1000">DataClass - data class skeleton </span>and name it <span -class="ecti-1000">DemoData</span>. Remove the -operations and add the following Attributes: - - - +class="ecti-1000">DemoData</span>. Remove the operations and add the +following Attributes: + + </p> <div class="verbatim" id="verbatim-11"> DataClass DemoData { @@ -46,11 +44,10 @@ DataClass DemoData {  <br />} </div> <!--l. 56--><p class="nopar" > -</p><!--l. 58--><p class="noindent" >Save the model and visit the outline view. Note that the outline view contains all -data elements as defined in the model. - - - +</p><!--l. 58--><p class="noindent" >Save the model and visit the outline view. Note that the outline view contains all data elements as +defined in the model. + + </p> <!--l. 61--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse23.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html index c7bc35f25..dac38b625 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse23.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -25,11 +25,10 @@ href="etrice-docch7.html#etrice-docse23.html" >up</a>] </p></div> <!--l. 63--><p class="noindent" >With the help of <span class="ecti-1000">Content Assist </span>create a <span class="ecti-1000">ProtocolClass </span>and name it <span -class="ecti-1000">PingPongProtocol</span>. -Create the following messages: - - - +class="ecti-1000">PingPongProtocol</span>. Create the +following messages: + + </p> <div class="verbatim" id="verbatim-12"> ProtocolClass PingPongProtocol { @@ -44,9 +43,8 @@ ProtocolClass PingPongProtocol {  <br />} </div> <!--l. 76--><p class="nopar" > - - - + + </p> <!--l. 78--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse24.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html index b897e816a..78e003a01 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse24.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -24,12 +24,11 @@ href="etrice-docch7.html#etrice-docse24.html" >up</a>] </p></div> id="x33-470007.5"></a>Create MrPing and MrPong Actors</h3> <!--l. 80--><p class="noindent" >With the help of <span class="ecti-1000">Content Assist </span>create two new actor classes and name them <span -class="ecti-1000">MrPing</span> -and <span -class="ecti-1000">MrPong</span>. The resulting model should look like this: - - - +class="ecti-1000">MrPing </span>and <span +class="ecti-1000">MrPong</span>. The +resulting model should look like this: + + </p> <div class="verbatim" id="verbatim-13"> RoomModel SendingData { @@ -77,16 +76,12 @@ RoomModel SendingData {  <br /> </div> <!--l. 126--><p class="nopar" > - - - </p><!--l. 128--><p class="noindent" >The outline view should look like this: </p><!--l. 130--><p class="noindent" ><img src="images/025-SendingData03.png" alt="PIC" /> - - - + + </p> <!--l. 133--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse25.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html index b0e532d46..e414cb339 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse25.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,14 +22,13 @@ href="#tailetrice-docse25.html">tail</a>] [<a href="etrice-docch7.html#etrice-docse25.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.6 </span> <a id="x34-480007.6"></a>Define Actor Structure and Behavior</h3> -<!--l. 135--><p class="noindent" >Save the model and visit the outline view. Within the outline view, right click on the -<span -class="ecti-1000">MrPong </span>actor and select <span +<!--l. 135--><p class="noindent" >Save the model and visit the outline view. Within the outline view, right click on the <span +class="ecti-1000">MrPong </span>actor and +select <span class="ecti-1000">Edit Structure</span>. Select an <span -class="ecti-1000">Interface Port </span>from the -toolbox and add it to MrPong. Name the Port <span -class="ecti-1000">PingPongPort </span>and select the +class="ecti-1000">Interface Port </span>from the toolbox and add it to MrPong. Name the Port <span +class="ecti-1000">PingPongPort </span>and select the <span class="ecti-1000">PingPongProtocol</span>. </p><!--l. 137--><p class="noindent" ><img src="images/025-SendingData02.png" alt="PIC" @@ -41,8 +40,8 @@ class="ecti-1000">conjugated</span> <h4 class="subsectionHead"><span class="titlemark">7.6.1 </span> <a id="x34-490007.6.1"></a>Define MrPongs behavior</h4> <!--l. 144--><p class="noindent" >Within the outline view, right click MrPong and select <span -class="ecti-1000">Edit Behavior</span>. Create the -following state machine: +class="ecti-1000">Edit Behavior</span>. Create the following state +machine: </p><!--l. 146--><p class="noindent" ><img src="images/025-SendingData04.png" alt="PIC" /> @@ -60,17 +59,16 @@ src="images/025-SendingData06.png" alt="PIC" </p> <h4 class="subsectionHead"><span class="titlemark">7.6.2 </span> <a id="x34-500007.6.2"></a>Define MrPing behavior</h4> -<!--l. 163--><p class="noindent" >Within the outline view double click MrPing. Navigate the cursor to the behavior of -MrPing. With the help of content assist create a new operation. +<!--l. 163--><p class="noindent" >Within the outline view double click MrPing. Navigate the cursor to the behavior of MrPing. With the +help of content assist create a new operation. </p><!--l. 165--><p class="noindent" ><img src="images/025-SendingData07.png" alt="PIC" /> </p><!--l. 168--><p class="noindent" >Name the operation <span class="ecti-1000">printData </span>and define the DemoData as a parameter. </p><!--l. 170--><p class="noindent" >Fill in the following code: - - - + + </p> <div class="verbatim" id="verbatim-14"> Operation printData(d: DemoData) : void { @@ -83,8 +81,8 @@ Operation printData(d: DemoData) : void {  <br />} </div> <!--l. 182--><p class="nopar" > -</p><!--l. 185--><p class="noindent" >For MrPing create the following state machine: (Remember that you can copy and -paste the action code from the tutorial directory.) +</p><!--l. 185--><p class="noindent" >For MrPing create the following state machine: (Remember that you can copy and paste the action code +from the tutorial directory.) </p><!--l. 188--><p class="noindent" ><img src="images/025-SendingData08.png" alt="PIC" /> @@ -109,9 +107,8 @@ class="ecti-1000">wait2</span>: </p><!--l. 210--><p class="noindent" ><img src="images/025-SendingData12.png" alt="PIC" /> - - - + + </p> <!--l. 213--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse26.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html index 3fbe63760..e879b6c84 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse26.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,8 +22,8 @@ href="#tailetrice-docse26.html">tail</a>] [<a href="etrice-docch7.html#etrice-docse26.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.7 </span> <a id="x35-510007.7"></a>Define the top level</h3> -<!--l. 215--><p class="noindent" >Open the Structure from SendingDataTop and add MrPing and MrPong as a -reference. Connect the ports. +<!--l. 215--><p class="noindent" >Open the Structure from SendingDataTop and add MrPing and MrPong as a reference. Connect the +ports. </p><!--l. 217--><p class="noindent" ><img src="images/025-SendingData13.png" alt="PIC" /> @@ -31,11 +31,9 @@ src="images/025-SendingData13.png" alt="PIC" <div class="flushleft" > <!--l. 220--><p class="noindent" > -The model is finished now and can be found in -/org.eclipse.etrice.tutorials/model/SendingData.</p></div> - - - +The model is finished now and can be found in /org.eclipse.etrice.tutorials/model/SendingData.</p></div> + + <!--l. 222--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse27.html" >next</a>] [<a href="etrice-docse25.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html index a28d9a500..ad1a47034 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse27.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,12 +23,11 @@ href="etrice-docch7.html#etrice-docse27.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.8 </span> <a id="x36-520007.8"></a>Generate and run the model</h3> <!--l. 224--><p class="noindent" >Generate the code by right click to <span -class="ecbx-1000">gen_SendingData.launch </span>and run it as -<span -class="ecbx-1000">gen_SendingData</span>. Run the model. The output should look like this: - - - +class="ecbx-1000">gen_SendingData.launch </span>and run it as <span +class="ecbx-1000">gen_SendingData</span>. Run +the model. The output should look like this: + + </p> <div class="verbatim" id="verbatim-15"> type ’quit’ to exit @@ -75,17 +74,13 @@ type ’quit’ to exit  <br />d.float64Val: 3,141234  <br />d.int8Array: 100 101 102 103 104 105 106 107 108 109  <br />d.stringVal: some contents - - -  <br />/SendingData_SubSystem/SendigDataTopRef/ref0 -> waitForPong  <br />quit  <br />echo: quit </div> <!--l. 275--><p class="nopar" > - - - + + </p> <!--l. 277--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse28.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html index a7bf3dac7..28dcb5c70 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse28.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,50 +23,42 @@ href="etrice-docch7.html#etrice-docse28.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">7.9 </span> <a id="x37-530007.9"></a>Summary</h3> <!--l. 279--><p class="noindent" >Within the first loop an integer value will be incremented by <span -class="ecti-1000">MrPong </span>and -sent back to <span -class="ecti-1000">MrPing</span>. As long as the guard is true <span -class="ecti-1000">MrPing </span>sends back the -value. +class="ecti-1000">MrPong </span>and sent back to <span +class="ecti-1000">MrPing</span>. As long +as the guard is true <span +class="ecti-1000">MrPing </span>sends back the value. </p><!--l. 281--><p class="noindent" >Within the <span class="ecti-1000">next </span>transition, <span -class="ecti-1000">MrPing </span>creates a data class and sends the default values. -Then <span -class="ecti-1000">MrPing </span>changes the values and sends the class again. At this point you -should note that during the send operation, a copy of the data class will be -created and sent. Otherwise it would not be possible to send the same object -two times, even more it would not be possible to send a stack object at -all. This type of data passing is called <span -class="ecti-1000">sending data by value</span>. However, for -performance reasons some applications requires <span -class="ecti-1000">sending data by reference</span>. In this -case the user is responsible for the life cycle of the object. In Java the VM -takes care of the life cycle of an object. This is not the case for C/C++. -Consider that a object which is created within a transition of a state machine -will be destroyed when the transition is finished. The receiving FSM would -receive an invalid reference. Therefore care must be taken when sending +class="ecti-1000">MrPing </span>creates a data class and sends the default values. Then <span +class="ecti-1000">MrPing</span> +changes the values and sends the class again. At this point you should note that during the +send operation, a copy of the data class will be created and sent. Otherwise it would not +be possible to send the same object two times, even more it would not be possible to send +a stack object at all. This type of data passing is called <span +class="ecti-1000">sending data by value</span>. However, +for performance reasons some applications requires <span +class="ecti-1000">sending data by reference</span>. In this case +the user is responsible for the life cycle of the object. In Java the VM takes care of the life +cycle of an object. This is not the case for C/C++. Consider that a object which is created +within a transition of a state machine will be destroyed when the transition is finished. The +receiving FSM would receive an invalid reference. Therefore care must be taken when sending references. </p><!--l. 284--><p class="noindent" >For sending data by reference you simply have to add the keyword <span -class="ecti-1000">ref </span>to the protocol -definition. - - - +class="ecti-1000">ref </span>to the protocol definition. + + </p> <div class="verbatim" id="verbatim-16"> Message ping(data: DemoData ref) </div> <!--l. 286--><p class="nopar" > </p><!--l. 288--><p class="noindent" >Make the test and inspect the console output. - - - - - - - - - + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch8.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse29.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse29.html index 26f999073..0d3531570 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse29.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse29.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,53 +22,46 @@ href="#tailetrice-docse29.html">tail</a>] [<a href="etrice-docch8.html#etrice-docse29.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">8.1 </span> <a id="x39-550008.1"></a>Scope</h3> -<!--l. 5--><p class="noindent" >The scope of this tutorial is to demonstrate how to receive model messages from -outside the model. Calling methods which are not part of the model is simple and -you have already done this within the blinky tutorial (this is the other way round: -model => external code). Receiving events from outside the model is a very -common problem and a very frequently asked question. Therefore this tutorial -shows how an external event (outside the model) can be received by the +<!--l. 5--><p class="noindent" >The scope of this tutorial is to demonstrate how to receive model messages from outside the model. +Calling methods which are not part of the model is simple and you have already done this within +the blinky tutorial (this is the other way round: model => external code). Receiving events +from outside the model is a very common problem and a very frequently asked question. +Therefore this tutorial shows how an external event (outside the model) can be received by the model. -</p><!--l. 7--><p class="noindent" >This tutorial is not like hello world or blinky. Being familiar with the basic tool -features is mandatory for this tutorial. The goal is to understand the mechanism not -to learn the tool features. -</p><!--l. 9--><p class="noindent" >The idea behind the exercise is, to control a Pedestrian crossing light. We will use the -same GUI as for the blinky tutorial but now we will use the <span -class="ecti-1000">REQUEST </span>button to -start a FSM, which controls the traffic lights. +</p><!--l. 7--><p class="noindent" >This tutorial is not like hello world or blinky. Being familiar with the basic tool features is +mandatory for this tutorial. The goal is to understand the mechanism not to learn the tool +features. +</p><!--l. 9--><p class="noindent" >The idea behind the exercise is, to control a Pedestrian crossing light. We will use the same GUI as for +the blinky tutorial but now we will use the <span +class="ecti-1000">REQUEST </span>button to start a FSM, which controls the traffic +lights. </p><!--l. 11--><p class="noindent" ><img src="images/020-Blinky08.png" alt="PIC" /> </p><!--l. 14--><p class="noindent" >The <span -class="ecti-1000">REQUEST </span>must lead to a model message which starts the activity of the -lights. -</p><!--l. 16--><p class="noindent" >There are several possibilities to receive external events (e.g. TCP/UDP Socket, -using OS messaging mechanism), but the easiest way is, to make a port usable from -outside the model. To do that a few steps are necessary: +class="ecti-1000">REQUEST </span>must lead to a model message which starts the activity of the lights. +</p><!--l. 16--><p class="noindent" >There are several possibilities to receive external events (e.g. TCP/UDP Socket, using OS messaging +mechanism), but the easiest way is, to make a port usable from outside the model. To do that a few steps +are necessary: </p><ol class="enumerate1" > <li - class="enumerate" id="x39-55002x1">specify the messages (within a protocol) which should be sent into the - model + class="enumerate" id="x39-55002x1">specify the messages (within a protocol) which should be sent into the model </li> <li - class="enumerate" id="x39-55004x2">model an actor with a port (which uses the specified protocol) and connect - the port to the receiver + class="enumerate" id="x39-55004x2">model an actor with a port (which uses the specified protocol) and connect the port to the + receiver </li> <li class="enumerate" id="x39-55006x3">the external code should know the port (import of the port class) - - - </li> <li - class="enumerate" id="x39-55008x4">the external code should provide a registration method, so that the actor - is able to allow access to this port + class="enumerate" id="x39-55008x4">the external code should provide a registration method, so that the actor is able to allow + access to this port </li> <li class="enumerate" id="x39-55010x5">the port can be used from the external code</li></ol> - - - + + <!--l. 25--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse30.html" >next</a>] [<a href="etrice-docch8.html" >prev</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html index 85dcd6377..55deb4b5b 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse3.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -23,16 +23,11 @@ href="etrice-docch2.html#etrice-docse3.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">2.1 </span> <a id="x7-60002.1"></a>Scope of ROOM</h3> <!--l. 5--><p class="noindent" >This chapter will give a rough overview of what ROOM (<img -src="etrice-doc0x.png" alt="R -¯ " class="b" /> eal time <img -src="etrice-doc1x.png" alt="O - ¯ " class="b" /> bject <img -src="etrice-doc2x.png" alt="O -¯ " class="b" /> -riented <img -src="etrice-doc3x.png" alt="M -¯ " class="b" /> odeling) is and what it is good for. It will try to answer the following -questions: </p> +src="etrice-doc0x.png" alt="R¯ " class="b" /> eal time <img +src="etrice-doc1x.png" alt="O¯ " class="b" /> bject <img +src="etrice-doc2x.png" alt="O¯ " class="b" /> riented <img +src="etrice-doc3x.png" alt="M¯ " class="b" /> odeling) is +and what it is good for. It will try to answer the following questions: </p> <ul class="itemize1"> <li class="itemize">Where does it come from? </li> @@ -43,49 +38,48 @@ questions: </p> <li class="itemize">What are the benefits of ROOM? </li> <li class="itemize">Which consequences must be taken into account?</li></ul> - - - + + <!--l. 14--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.1.1 </span> <a id="x7-70002.1.1"></a>Where does it come from?</h4> -<!--l. 16--><p class="noindent" >Room was developed in the 1990th on the background of the upcoming mobile -applications with the goal to manage the complexity of such huge SW-Systems. From -the very beginning ROOM has focused on a certain type of SW-Systems and is, in -contrast to the UML, well suited for this kind of systems. In this sense, ROOM is a -DSL (Domain Specific Language) for distributed, event driven, real time +<!--l. 16--><p class="noindent" >Room was developed in the 1990th on the background of the upcoming mobile applications with the goal +to manage the complexity of such huge SW-Systems. From the very beginning ROOM has focused on a +certain type of SW-Systems and is, in contrast to the UML, well suited for this kind of systems. In this +sense, ROOM is a DSL (Domain Specific Language) for distributed, event driven, real time systems. -</p><!--l. 18--><p class="noindent" >Bran Selic, Garth Gullekson and Paul T. Ward have published the concepts 1994 in -the book <span -class="ecbx-1000">Real-Time Object-Oriented Modeling</span>. The company <span -class="ecti-1000">object time</span> -<sup class="textsuperscript"><span -class="ecrm-0900">TM</span></sup>developed a ROOM tool which was taken over by <span -class="ecti-1000">Rational SW </span><sup class="textsuperscript"><span -class="ecrm-0900">TM</span></sup>and later -on by <span +</p><!--l. 18--><p class="noindent" >Bran Selic, Garth Gullekson and Paul T. Ward have published the concepts 1994 in the book <span +class="ecbx-1000">Real-Time</span> +<span +class="ecbx-1000">Object-Oriented Modeling</span>. The company <span +class="ecti-1000">object time </span><sup class="textsuperscript"><span +class="ecrm-0900">TM</span></sup>developed a ROOM tool which was +taken over by <span +class="ecti-1000">Rational SW </span><sup class="textsuperscript"><span +class="ecrm-0900">TM</span></sup>and later on by <span class="ecti-1000">IBM </span><sup class="textsuperscript"><span class="ecrm-0900">TM</span></sup>. The company <span -class="ecti-1000">Protos Software Gmbh </span><sup class="textsuperscript"><span -class="ecrm-0900">TM</span></sup>also developed a -ROOM tool called <span +class="ecti-1000">Protos Software</span> +<span +class="ecti-1000">Gmbh </span><sup class="textsuperscript"><span +class="ecrm-0900">TM</span></sup>also developed a ROOM tool called <span class="ecti-1000">Trice </span><sup class="textsuperscript"><span -class="ecrm-0900">TM</span></sup>for control software for production machines and -automotive systems. <span +class="ecrm-0900">TM</span></sup>for control software for production +machines and automotive systems. <span class="ecti-1000">Trice </span><sup class="textsuperscript"><span class="ecrm-0900">TM</span></sup>is the predecessor of eTrice (see Introduction to eTrice). -</p><!--l. 21--><p class="noindent" >From our point of view ROOM provides still the clearest, simplest, most complete -and best suited modeling concepts for the real time domain. All later proposals like -the UML do not fit as well to this kind of problems. +</p><!--l. 21--><p class="noindent" >From our point of view ROOM provides still the clearest, simplest, most complete and best suited +modeling concepts for the real time domain. All later proposals like the UML do not fit as well to this +kind of problems. </p><!--l. 24--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.1.2 </span> <a id="x7-80002.1.2"></a>Which kind of SW-Systems will be addressed?</h4> -<!--l. 26--><p class="noindent" >As mentioned before ROOM addresses distributed, event driven, real time systems. -But what is a *real time system*? ROOM defines a set of properties which are -typical for a real time system. These properties are: </p> +<!--l. 26--><p class="noindent" >As mentioned before ROOM addresses distributed, event driven, real time systems. But what is a *real +time system*? ROOM defines a set of properties which are typical for a real time system. These +properties are: </p> <ul class="itemize1"> <li class="itemize">Timeliness </li> @@ -98,52 +92,47 @@ typical for a real time system. These properties are: </p> <li class="itemize">Distribution </li> <li class="itemize">Reliability</li></ul> - - - -<!--l. 36--><p class="noindent" >Each of these properties has potential to make SW development complex. If a given -system can be characterized with a combination of or all of these properties, ROOM -might be applied to such a system. -</p><!--l. 38--><p class="noindent" >As an example take a look at a washing machine. The system has to react on user -interactions, has to handle some error conditions like a closed water tap or a defective -lye pump. It has to react simultaneously to all these inputs. It has to close the water -valve in a certain time to avoid flooding the basement. So, the system can be -characterized as timely, concurrent and reactive. As long as the washing machine -does not transform to a laundry drier by itself, the system has no dynamic -internal structure and as long as all functions are running on a single micro -controller the (SW)-system is not distributed. ROOM fits perfect to such a +<!--l. 36--><p class="noindent" >Each of these properties has potential to make SW development complex. If a given system can be +characterized with a combination of or all of these properties, ROOM might be applied to such a +system. +</p><!--l. 38--><p class="noindent" >As an example take a look at a washing machine. The system has to react on user interactions, has +to handle some error conditions like a closed water tap or a defective lye pump. It has to +react simultaneously to all these inputs. It has to close the water valve in a certain time to +avoid flooding the basement. So, the system can be characterized as timely, concurrent and +reactive. As long as the washing machine does not transform to a laundry drier by itself, +the system has no dynamic internal structure and as long as all functions are running on +a single micro controller the (SW)-system is not distributed. ROOM fits perfect to such a system. -</p><!--l. 42--><p class="noindent" >A SW system which mainly consists of data transformations like signal/image -processing or a loop controller (e.g. a PID controller) cannot be characterized with -any of the above mentioned properties. However, in the real world most of the SW -systems will be a combination of both. ROOM can be combined with such systems, -so that for example an actor provides a *run to completion* context for calculating -an image processing algorithm or a PID controller. + + +</p><!--l. 42--><p class="noindent" >A SW system which mainly consists of data transformations like signal/image processing or a loop +controller (e.g. a PID controller) cannot be characterized with any of the above mentioned properties. +However, in the real world most of the SW systems will be a combination of both. ROOM can be +combined with such systems, so that for example an actor provides a *run to completion* context for +calculating an image processing algorithm or a PID controller. </p><!--l. 44--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.1.3 </span> <a id="x7-90002.1.3"></a>What is the relation between OOP and ROOM?</h4> -<!--l. 46--><p class="noindent" >The relation between classical object oriented programming and ROOM is -comparable to the relation between assembler programming and C programming. It -provides a shift of the object paradigm. As the picture shows, the classic object -paradigm provides some kind of information hiding. Attributes can be accessed via -access methods. Logical higher level methods provide the requested behavior to the +<!--l. 46--><p class="noindent" >The relation between classical object oriented programming and ROOM is comparable to the relation +between assembler programming and C programming. It provides a shift of the object paradigm. As the +picture shows, the classic object paradigm provides some kind of information hiding. Attributes can be +accessed via access methods. Logical higher level methods provide the requested behavior to the user. </p><!--l. 48--><p class="noindent" ><img src="images/010-RoomIntroduction01.png" alt="PIC" /> -</p><!--l. 51--><p class="noindent" >As the figure illustrates, the classical object paradigm does not care about -concurrency issues. The threads of control will be provided by the underlying -operating system and the user is responsible to avoid access violations by using those -operating system mechanisms directly (semaphore, mutex). +</p><!--l. 51--><p class="noindent" >As the figure illustrates, the classical object paradigm does not care about concurrency issues. The +threads of control will be provided by the underlying operating system and the user is responsible to +avoid access violations by using those operating system mechanisms directly (semaphore, +mutex). </p><!--l. 53--><p class="noindent" ><img src="images/010-RoomIntroduction02.png" alt="PIC" /> -</p><!--l. 56--><p class="noindent" >ROOM provides the concept of a logical machine (called actor) with its -own thread of control. It provides some kind of cooperative communication -infrastructure with *run to completion* semantic. That makes developing of -business logic easy and safe (see basic concepts). The logical machine provides -an encapsulation shell including concurrency issues (see chapter <span +</p><!--l. 56--><p class="noindent" >ROOM provides the concept of a logical machine (called actor) with its own thread of control. It +provides some kind of cooperative communication infrastructure with *run to completion* +semantic. That makes developing of business logic easy and safe (see basic concepts). The logical +machine provides an encapsulation shell including concurrency issues (see chapter <span class="ecbx-1000">Run to</span> <span class="ecbx-1000">completion</span>). @@ -151,48 +140,45 @@ class="ecbx-1000">completion</span>). src="images/010-RoomIntroduction03.png" alt="PIC" /> </p><!--l. 61--><p class="noindent" >This thinking of an object is much more general than the classic one. - - - </p><!--l. 63--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.1.4 </span> <a id="x7-100002.1.4"></a>What are the benefits of ROOM?</h4> -<!--l. 65--><p class="noindent" >ROOM has a lot of benefits and it depends on the users point of view which is the -most important one. From a general point of view the most important benefit is, that -ROOM allows to create SW systems very efficient, robust and safe due to the fact -that it provides some abstract, high level modeling concepts combined with code -generation and a small efficient runtime environment. +<!--l. 65--><p class="noindent" >ROOM has a lot of benefits and it depends on the users point of view which is the most important one. +From a general point of view the most important benefit is, that ROOM allows to create +SW systems very efficient, robust and safe due to the fact that it provides some abstract, +high level modeling concepts combined with code generation and a small efficient runtime +environment. </p><!--l. 67--><p class="noindent" >In detail: </p> <ul class="itemize1"> - <li class="itemize">ROOM models contain well defined interfaces (protocols), which makes it - easy to reuse components in different applications or e.g. in a test harness. + <li class="itemize">ROOM models contain well defined interfaces (protocols), which makes it easy to reuse + components in different applications or e.g. in a test harness. </li> - <li class="itemize">Graphical modeling makes it easy to understand, maintain and share code - with other developers + <li class="itemize">Graphical modeling makes it easy to understand, maintain and share code with other + developers </li> - <li class="itemize">Higher abstraction in combination with automated code generation - provides very efficient mechanisms to the developer. + <li class="itemize">Higher abstraction in combination with automated code generation provides very efficient + mechanisms to the developer. + + </li> - <li class="itemize">ROOM provides graphical model execution, which makes it easy to - understand the application or find defects in a very early phase.</li></ul> + <li class="itemize">ROOM provides graphical model execution, which makes it easy to understand the + application or find defects in a very early phase.</li></ul> <!--l. 75--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.1.5 </span> <a id="x7-110002.1.5"></a>Which consequences must be taken into account?</h4> -<!--l. 77--><p class="noindent" >Generating code from models will introduce some overhead in terms of memory -footprint as well as performance. For most systems the overhead will be negligible. -However, the decision for using ROOM should be made explicitly and it is always a -trade off between development costs, time to market and costs in terms of a little bit -more of memory and performance. Thanks to the powerful component model, ROOM -is especially well suited for the development of software product lines with their need -for reusable core assets. -</p><!--l. 79--><p class="noindent" >Care must be taken during the introduction of the new methodology. Due to the fact -that ROOM provides a shift of the object paradigm, developers and teams need a -phase of adaption. Every benefit comes at a price. - - - +<!--l. 77--><p class="noindent" >Generating code from models will introduce some overhead in terms of memory footprint as well as +performance. For most systems the overhead will be negligible. However, the decision for using ROOM +should be made explicitly and it is always a trade off between development costs, time to market and +costs in terms of a little bit more of memory and performance. Thanks to the powerful component model, +ROOM is especially well suited for the development of software product lines with their need for reusable +core assets. +</p><!--l. 79--><p class="noindent" >Care must be taken during the introduction of the new methodology. Due to the fact that ROOM +provides a shift of the object paradigm, developers and teams need a phase of adaption. Every benefit +comes at a price. + + </p> <!--l. 81--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse4.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse30.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse30.html index 0cf760400..680a047ef 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse30.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse30.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -24,30 +24,27 @@ href="etrice-docch8.html#etrice-docse30.html" >up</a>] </p></div> id="x40-560008.2"></a>Setup the model</h3> <ul class="itemize1"> <li class="itemize">Use the <span -class="ecti-1000">New Model Wizzard </span>to create a new eTrice project and name it - <span +class="ecti-1000">New Model Wizzard </span>to create a new eTrice project and name it <span class="ecti-1000">PedLightsController</span>. </li> - <li class="itemize">Copy the package <span -class="ecti-1000">org.eclipse.etrice.tutorials.PedLightGUI </span>to your <span -class="ecti-1000">src</span> - directory (see blinky tutorial). + <li class="itemize">Copy the package <span +class="ecti-1000">org.eclipse.etrice.tutorials.PedLightGUI </span>to your <span +class="ecti-1000">src </span>directory (see blinky + tutorial). </li> - <li class="itemize">In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 - (usage) and 132-134 (registration). The error markers will disappear after - the code is generated from the model. + <li class="itemize">In PedestrianLightWndNoTcp.jav uncomment line 15 (import), 36, 122 (usage) and 132-134 + (registration). The error markers will disappear after the code is generated from the model. </li> <li class="itemize"> <div class="flushleft" > <!--l. 31--><p class="noindent" > -Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController -to your model file, or run the model directly in the tutorial directory.</p></div> +Copy the model from /org.eclipse.etrice.tutorials/model/PedLightsController to your model file, +or run the model directly in the tutorial directory.</p></div> </li> <li class="itemize">Adapt the import statement to your path.</li></ul> - - - + + <div class="verbatim" id="verbatim-17"> import room.basic.service.timing.* from  <br />"../../org.eclipse.etrice.modellib/models/TimingService.room" @@ -66,30 +63,28 @@ import room.basic.service.timing.* from <!--l. 49--><p class="noindent" ><img src="images/030-PedLights01.png" alt="PIC" /> The <span -class="ecti-1000">GuiAdapter </span>represents the interface to the external code. It registers its -<span -class="ecti-1000">ControlPort </span>by the external code. +class="ecti-1000">GuiAdapter </span>represents the interface to the external code. It registers its <span +class="ecti-1000">ControlPort </span>by the +external code. </p><!--l. 53--><p class="noindent" ><img src="images/030-PedLights02.png" alt="PIC" - /> Visit the initial transition to understand the registration. The actor handles the -incoming messages as usual and controls the traffic lights as known from -blinky. + /> Visit the initial transition to understand the registration. The actor handles the incoming messages +as usual and controls the traffic lights as known from blinky. </p><!--l. 57--><p class="noindent" ><img src="images/030-PedLights03.png" alt="PIC" /> The <span class="ecti-1000">Controller </span>receives the <span -class="ecti-1000">start </span>message and controls the timing of the lights. -Note that the <span -class="ecti-1000">start </span>message will be sent from the external code whenever the -<span -class="ecti-1000">REQUEST </span>button is pressed. +class="ecti-1000">start </span>message and controls the timing of the lights. Note that +the <span +class="ecti-1000">start </span>message will be sent from the external code whenever the <span +class="ecti-1000">REQUEST </span>button is +pressed. </p> <ul class="itemize1"> <li class="itemize">Visit the model and take a closer look to the following elements: <ol class="enumerate1" > <li - class="enumerate" id="x40-56002x1">PedControlProtocol => notice that the start message is defined as - usual + class="enumerate" id="x40-56002x1">PedControlProtocol => notice that the start message is defined as usual </li> <li class="enumerate" id="x40-56004x2">Initial transition of the <span @@ -98,31 +93,26 @@ class="ecti-1000">GuiAdapter </span>=> see the registration <li class="enumerate" id="x40-56006x3">The <span class="ecti-1000">Controller </span>=> notice that the <span -class="ecti-1000">Controller </span>receives the external - message (not the <span +class="ecti-1000">Controller </span>receives the external message (not the + <span class="ecti-1000">GuiAdapter</span>). The <span -class="ecti-1000">GuiAdapter </span>just provides its port - and handles the incoming messages. +class="ecti-1000">GuiAdapter </span>just provides its port and handles the incoming messages. </li> <li - class="enumerate" id="x40-56008x4">Visit the hand written code => see the import statement of the - protocol class and the usage of the port.</li></ol> - - - + class="enumerate" id="x40-56008x4">Visit the hand written code => see the import statement of the protocol class and the + usage of the port.</li></ol> </li> <li class="itemize">Generate and test the model </li> - <li class="itemize">Take a look at the generated MSC => notice that the start message will shown - as if the <span + <li class="itemize">Take a look at the generated MSC => notice that the start message will shown as if the + <span class="ecti-1000">GuiAdapter </span>had sent it.</li></ul> <!--l. 73--><p class="noindent" ><img src="images/030-PedLights04.png" alt="PIC" /> - - - + + </p> <!--l. 76--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse31.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse31.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse31.html index 1956e96de..922e1773a 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse31.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse31.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,18 +22,17 @@ href="#tailetrice-docse31.html">tail</a>] [<a href="etrice-docch8.html#etrice-docse31.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">8.3 </span> <a id="x41-570008.3"></a>Why does it work and why is it safe?</h3> -<!--l. 78--><p class="noindent" >The tutorial shows that it is generally possible to use every port from outside the -model as long as the port knows its peer. This is guaranteed by describing protocol -and the complete structure (especially the bindings) within the model. The only -remaining question is: Why is it safe and does not violate the <span -class="ecbx-1000">run to completion</span> -semantic. To answer this question, take a look at the <span +<!--l. 78--><p class="noindent" >The tutorial shows that it is generally possible to use every port from outside the model as long as the +port knows its peer. This is guaranteed by describing protocol and the complete structure (especially the +bindings) within the model. The only remaining question is: Why is it safe and does not violate the <span +class="ecbx-1000">run</span> +<span +class="ecbx-1000">to completion </span>semantic. To answer this question, take a look at the <span class="ecti-1000">MessageService.java </span>from the -runtime environment. There you will find the receive method which puts each -message into the queue. - - - +runtime environment. There you will find the receive method which puts each message into the +queue. + + </p> <div class="verbatim" id="verbatim-18">     @Override @@ -45,31 +44,16 @@ message into the queue.  <br />    } </div> <!--l. 89--><p class="nopar" > -</p><!--l. 91--><p class="noindent" >This method is synchronized. That means, regardless who sends the message, the -queue is secured. If we later on (e.g. for performance reasons in C/C++) distinguish -between internal and external senders (same thread or not), care must be taken to -use the external (secure) queue. - - - - - - - - - - - - - - - - - - - - - +</p><!--l. 91--><p class="noindent" >This method is synchronized. That means, regardless who sends the message, the queue is +secured. If we later on (e.g. for performance reasons in C/C++) distinguish between internal +and external senders (same thread or not), care must be taken to use the external (secure) +queue. + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch9.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse32.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse32.html index 73bbcb8e7..a59cee9fb 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse32.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse32.html @@ -4,59 +4,72 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Scope</title> +<head><title>Testing the environment</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +<!--l. 19--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse33.html" >next</a>] [<a href="etrice-docch9.html" >prev</a>] [<a href="etrice-docch9.html#tailetrice-docch9.html" >prev-tail</a>] [<a href="#tailetrice-docse32.html">tail</a>] [<a href="etrice-docch9.html#etrice-docse32.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">9.1 </span> <a - id="x43-590009.1"></a>Scope</h3> -<!--l. 5--><p class="noindent" >In this tutorial you will create a more complex model. The model implements a -simple parser that removes comments (block comments and line comments) from a C -source file. Therefore we will create two actors. One actor is responsible to perform -the file operations, while the second actor implements the parser. -</p><!--l. 7--><p class="noindent" >You will perform the following steps: -</p><!--l. 9--><p class="noindent" > - </p><ol class="enumerate1" > - <li - class="enumerate" id="x43-59002x1">create a new model from scratch for C - </li> - <li - class="enumerate" id="x43-59004x2">define a protocol - </li> - <li - class="enumerate" id="x43-59006x3">define your own data type - </li> - <li - class="enumerate" id="x43-59008x4">create the structure and the behavior by yourself - </li> - <li - class="enumerate" id="x43-59010x5">generate, build and run the model</li></ol> -<!--l. 17--><p class="noindent" >Make sure that you have set up the workspace as described in <span -class="ecti-1000">Setting up the</span> + id="x43-590009.1"></a>Testing the environment</h3> +<!--l. 21--><p class="noindent" >To verify the C tool chain you should generate and run the Hello World example program of the CDT. +Activate the <span +class="ecti-1000">C/C++ </span>perspective. +</p><!--l. 23--><p class="noindent" ><img +src="images/032-SetupWorkspaceC03.png" alt="PIC" + /> +</p><!--l. 26--><p class="noindent" >From the main menu select <span +class="ecti-1000">File->New->C Project</span>. +</p><!--l. 28--><p class="noindent" ><img +src="images/032-SetupWorkspaceC02.png" alt="PIC" + /> +</p><!--l. 31--><p class="noindent" >Name the project. Select an <span +class="ecti-1000">Executable->Hello World ANSI C </span>as project type, <span +class="ecti-1000">MinGW GCC </span>as tool +chain and click <span +class="ecti-1000">Finish</span>. +</p><!--l. 33--><p class="noindent" ><img +src="images/032-SetupWorkspaceC04.png" alt="PIC" + /> +</p><!--l. 36--><p class="noindent" >Select the new project and click the build button (or right click the project and select <span +class="ecti-1000">Build</span> +<span +class="ecti-1000">Project</span>) +</p><!--l. 38--><p class="noindent" ><img +src="images/032-SetupWorkspaceC05.png" alt="PIC" + /> +</p><!--l. 41--><p class="noindent" >The binary should be generated. Run the binary as <span +class="ecti-1000">Local C/C++ Application</span>. +</p><!--l. 43--><p class="noindent" ><img +src="images/032-SetupWorkspaceC06.png" alt="PIC" + /> +</p><!--l. 46--><p class="noindent" >Verify the output. +</p><!--l. 48--><p class="noindent" ><img +src="images/032-SetupWorkspaceC07.png" alt="PIC" + /> +</p><!--l. 51--><p class="noindent" >Remember these steps. In the following Tutorials these steps will be referenced as <span +class="ecti-1000">build and</span> <span -class="ecti-1000">Workspace for C Projects</span>. - - - +class="ecti-1000">run</span>. + + </p> -<!--l. 19--><div class="crosslinks"><p class="noindent">[<a +<!--l. 54--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse33.html" >next</a>] [<a href="etrice-docch9.html" >prev</a>] [<a href="etrice-docch9.html#tailetrice-docch9.html" >prev-tail</a>] [<a href="etrice-docse32.html" >front</a>] [<a href="etrice-docch9.html#etrice-docse32.html" >up</a>] </p></div> -<!--l. 19--><p class="noindent" ><a +<!--l. 54--><p class="noindent" ><a id="tailetrice-docse32.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse33.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse33.html index f12812575..3db808f05 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse33.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse33.html @@ -4,71 +4,84 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Create a new model from scratch</title> +<head><title>Building the C runtime system</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 19--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse34.html" >next</a>] [<a +<!--l. 54--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch10.html" >next</a>] [<a href="etrice-docse32.html" >prev</a>] [<a href="etrice-docse32.html#tailetrice-docse32.html" >prev-tail</a>] [<a href="#tailetrice-docse33.html">tail</a>] [<a href="etrice-docch9.html#etrice-docse33.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">9.2 </span> <a - id="x44-600009.2"></a>Create a new model from scratch</h3> -<!--l. 21--><p class="noindent" >Remember the following steps from the previous tutorials: </p> + id="x44-600009.2"></a>Building the C runtime system</h3> +<!--l. 56--><p class="noindent" >The C runtime system contains some basic functionalities to run the generated models. The so called +runtime is common for all C projects. The requirements for several projects may differ depending on the +functionality of the model or the resources of the different platforms. Therefore the runtime is +configurable in terms of message queue size, frequency and memory alignment. The configuration file +<span +class="ecti-1000">etRuntimeConfig.h </span>is located in <span +class="ecti-1000">src/config</span>. +</p><!--l. 58--><p class="noindent" >After changing the configuration, the runtime must be built. +</p><!--l. 60--><p class="noindent" >Open the properties of the <span +class="ecti-1000">org.eclipse.runtime.c </span>project and select <span +class="ecti-1000">C/C++ Build->Settings->Tool</span> +<span +class="ecti-1000">Settings </span>and select <span +class="ecti-1000">Includes</span>. +</p><!--l. 62--><p class="noindent" ><img +src="images/032-SetupWorkspaceC08.png" alt="PIC" + /> +</p><!--l. 65--><p class="noindent" >Verify the include paths +</p> <ul class="itemize1"> - <li class="itemize">select the <span -class="ecti-1000">C/C++ </span>perspective - </li> - <li class="itemize">From the main menue select <span -class="ecti-1000">File->New->C Project</span> - </li> - <li class="itemize">Name the project <span -class="ecti-1000">RemoveComment</span> + <li class="itemize"><span +class="ecti-1000">src/config</span> </li> - <li class="itemize">Project type is <span -class="ecti-1000">Executable / Empty C Project</span> + <li class="itemize"><span +class="ecti-1000">src/common</span> </li> - <li class="itemize">Toolchain is <span -class="ecti-1000">MinGW</span> - </li> - <li class="itemize">Add the folder <span -class="ecti-1000">model</span> - </li> - <li class="itemize">Add the model file and name it <span -class="ecti-1000">RemoveComment.room</span> - </li> - <li class="itemize">Add the Xtext nature.</li></ul> -<!--l. 33--><p class="noindent" >The workspace should look like this: -</p><!--l. 35--><p class="noindent" ><img -src="images/036-RemoveCommentC01.png" alt="PIC" + <li class="itemize"><span +class="ecti-1000">src/platforms/generic</span></li></ul> +<!--l. 73--><p class="noindent" >Within the Setting dialog select the tab <span +class="ecti-1000">Build Artefact </span>and select <span +class="ecti-1000">Static Library</span> +</p><!--l. 75--><p class="noindent" ><img +src="images/032-SetupWorkspaceC09.png" alt="PIC" + /> +</p><!--l. 78--><p class="noindent" >Build the runtime by clicking +</p><!--l. 80--><p class="noindent" ><img +src="images/032-SetupWorkspaceC10.png" alt="PIC" /> -</p><!--l. 38--><p class="noindent" >Create a launch configuration for the C generator and add the include path and -library as described in <span -class="ecti-1000">HelloWorldC</span>. -</p><!--l. 40--><p class="noindent" >The workspace should look like this: -</p><!--l. 42--><p class="noindent" ><img -src="images/036-RemoveCommentC02.png" alt="PIC" +</p><!--l. 83--><p class="noindent" >The runtime library should be created. +</p><!--l. 85--><p class="noindent" ><img +src="images/032-SetupWorkspaceC11.png" alt="PIC" /> -</p><!--l. 45--><p class="noindent" >Now the model is created and all settings for the code generator, compiler and linker -are done. - - - +</p><!--l. 88--><p class="noindent" >For the tutorials one runtime library should be sufficient. For embedded projects it might be necessary to +build project specific runtime libraries. In this case a separate project for the runtime should be created. +Symbolic links to the sources might be used to avoid duplicate files. Just the configuration file must be +duplicated. A specific library file must exist within the project. Such specific runtime libraries might be +referenced from several applications. + + + + + + </p> -<!--l. 48--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse34.html" >next</a>] [<a +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch10.html" >next</a>] [<a href="etrice-docse32.html" >prev</a>] [<a href="etrice-docse32.html#tailetrice-docse32.html" >prev-tail</a>] [<a href="etrice-docse33.html" >front</a>] [<a href="etrice-docch9.html#etrice-docse33.html" >up</a>] </p></div> -<!--l. 48--><p class="noindent" ><a +<!--l. 1--><p class="noindent" ><a id="tailetrice-docse33.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse34.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse34.html index 80a36d71c..d93d232fd 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse34.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse34.html @@ -4,75 +4,60 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Create your own data type</title> +<head><title>Scope</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 48--><div class="crosslinks"><p class="noindent">[<a +<!--l. 3--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse35.html" >next</a>] [<a -href="etrice-docse33.html" >prev</a>] [<a -href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a +href="etrice-docch10.html" >prev</a>] [<a +href="etrice-docch10.html#tailetrice-docch10.html" >prev-tail</a>] [<a href="#tailetrice-docse34.html">tail</a>] [<a -href="etrice-docch9.html#etrice-docse34.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">9.3 </span> <a - id="x45-610009.3"></a>Create your own data type</h3> -<!--l. 50--><p class="noindent" >The planed application should read a C source file and remove the comments. -Therefore we need a file descriptor which is not part of the basic C types. The type -for the file descriptor for MinGW is <span -class="ecti-1000">FILE</span>. To make this type available on the model -level, you have to declare the type. -</p><!--l. 52--><p class="noindent" >Open the file <span -class="ecti-1000">Types.room </span>from <span -class="ecti-1000">org.eclipse.modellib.c </span>and take a look at the -declaration of <span -class="ecti-1000">string </span>(last line) which is not a basic C type. -</p><!--l. 54--><p class="noindent" ><span -class="ecti-1000">PrimitiveType string:ptCharacter -> charPtr default "0"</span> -</p><!--l. 56--><p class="noindent" >With this declaration, you make the <span -class="ecti-1000">string </span>keyword available on model level as a -primitive type. This type will be translated to <span -class="ecti-1000">charPtr </span>in your C sources. <span -class="ecti-1000">charPtr </span>is -defined in <span -class="ecti-1000">etDatatypes.h</span>. This header file is platform specific (<span -class="ecti-1000">generic</span>). With this -mechanism you can define your own type system on model level and map the model -types to specific target/platform types. -</p><!--l. 58--><p class="noindent" >To not interfere with other models, we will declare the type direct in the model. Add -the following line to your model: - - - -</p> -<div class="verbatim" id="verbatim-19"> -RoomModel RemoveComment { - <br />import room.basic.types.* from - <br />"../../../org.eclipse.etrice.modellib.c/model/Types.room" - <br /> - <br />PrimitiveType file:ptInteger -> FILE default "0" -</div> -<!--l. 68--><p class="nopar" > -</p><!--l. 71--><p class="noindent" ><span -class="ecti-1000">FILE </span>is the native type for MinGW. Therefore you don’t need a mapping within +href="etrice-docch10.html#etrice-docse34.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">10.1 </span> <a + id="x46-6200010.1"></a>Scope</h3> +<!--l. 5--><p class="noindent" >In this tutorial you will learn how to create a model for C from scratch. There are some more +steps to do in C compared to Java. The goal is to get familiar with the additional steps. The +Java tutorial is a prerequisite for the following explanations. You will perform the following +steps: +</p><!--l. 8--><p class="noindent" > + </p><ol class="enumerate1" > + <li + class="enumerate" id="x46-62002x1">create a new model from scratch for C + </li> + <li + class="enumerate" id="x46-62004x2">create structure and behavior similar to Java + </li> + <li + class="enumerate" id="x46-62006x3">create a launch configuration for the C code generator + </li> + <li + class="enumerate" id="x46-62008x4">setup the C environment + </li> + <li + class="enumerate" id="x46-62010x5">generate the source code + </li> + <li + class="enumerate" id="x46-62012x6">run the model</li></ol> +<!--l. 17--><p class="noindent" >Make sure that you have set up the workspace as described in <span +class="ecti-1000">Setting up the Workspace for C</span> <span -class="ecti-1000">etDatatypes.h</span>. If your model should be portable across different platforms you should -not take this shortcut. - - - +class="ecti-1000">Projects</span>. + + </p> -<!--l. 73--><div class="crosslinks"><p class="noindent">[<a +<!--l. 20--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse35.html" >next</a>] [<a -href="etrice-docse33.html" >prev</a>] [<a -href="etrice-docse33.html#tailetrice-docse33.html" >prev-tail</a>] [<a +href="etrice-docch10.html" >prev</a>] [<a +href="etrice-docch10.html#tailetrice-docch10.html" >prev-tail</a>] [<a href="etrice-docse34.html" >front</a>] [<a -href="etrice-docch9.html#etrice-docse34.html" >up</a>] </p></div> -<!--l. 73--><p class="noindent" ><a +href="etrice-docch10.html#etrice-docse34.html" >up</a>] </p></div> +<!--l. 20--><p class="noindent" ><a id="tailetrice-docse34.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse35.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse35.html index fd3fadb02..2c2e301b3 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse35.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse35.html @@ -4,86 +4,81 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Create the model</title> +<head><title>Create a new model from scratch</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 73--><div class="crosslinks"><p class="noindent">[<a +<!--l. 20--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse36.html" >next</a>] [<a href="etrice-docse34.html" >prev</a>] [<a href="etrice-docse34.html#tailetrice-docse34.html" >prev-tail</a>] [<a href="#tailetrice-docse35.html">tail</a>] [<a -href="etrice-docch9.html#etrice-docse35.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">9.4 </span> <a - id="x46-620009.4"></a>Create the model</h3> -<!--l. 75--><p class="noindent" >Due to the former tutorials you should be familiar with the steps to create the model -with protocols, actors and state machines. -</p><!--l. 77--><p class="noindent" >The basic idea of the exercise is to create a file reader actor, which is responsible to -open, close and read characters from the source file. Another actor receives the -characters and filters the comments (parser). The remaining characters (pure source -code) should be print out. -</p><!--l. 79--><p class="noindent" >Remember the logical steps: </p> +href="etrice-docch10.html#etrice-docse35.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">10.2 </span> <a + id="x47-6300010.2"></a>Create a new model from scratch</h3> +<!--l. 22--><p class="noindent" >Before you can create a new C-model, you have to create a new C project as described in <span +class="ecti-1000">Setting up the</span> +<span +class="ecti-1000">Workspace for C Projects</span>. Remember: </p> <ul class="itemize1"> - <li class="itemize">create the model by the help of content assist (CTRL Space) + <li class="itemize">select the <span +class="ecti-1000">C/C++ </span>perspective </li> - <li class="itemize">name the model, subsystem and top level actor + <li class="itemize">From the main menue select <span +class="ecti-1000">File->New->C Project</span> </li> - <li class="itemize">define the protocol (in this case it should be able to send a char, and to - request the next char from the file reader) + <li class="itemize">Name the project <span +class="ecti-1000">HelloWorldC</span> </li> - <li class="itemize">create the structure (file reader and parser with an appropriate port, create - the references and connect the ports) + <li class="itemize">Project type is <span +class="ecti-1000">Executable / Empty C Project</span> </li> - <li class="itemize">create the state machines</li></ul> -<!--l. 88--><p class="noindent" >Try to create the model by yourself and take the following solution as an -example. -</p><!--l. 90--><p class="noindent" >Structure: -</p><!--l. 92--><p class="noindent" ><img -src="images/036-RemoveCommentC04.png" alt="PIC" + <li class="itemize">Toolchain is <span +class="ecti-1000">MinGW </span></li></ul> +<!--l. 32--><p class="noindent" >The workspace should look like this: +</p><!--l. 34--><p class="noindent" ><img +src="images/034-HelloWorldC01.png" alt="PIC" /> -</p><!--l. 95--><p class="noindent" >File reader FSM: -</p><!--l. 97--><p class="noindent" ><img -src="images/036-RemoveCommentC05.png" alt="PIC" +</p><!--l. 37--><p class="noindent" >The next step is to add the model folder: Right click on the new project. Select <span +class="ecti-1000">New->Folder </span>and name it +<span +class="ecti-1000">model</span>. +</p><!--l. 40--><p class="noindent" ><img +src="images/034-HelloWorldC02.png" alt="PIC" /> -</p><!--l. 100--><p class="noindent" >Parser FSM: -</p><!--l. 102--><p class="noindent" ><img -src="images/036-RemoveCommentC06.png" alt="PIC" +</p><!--l. 43--><p class="noindent" >Add the model file to the folder. Right click on the new folder. Select <span +class="ecti-1000">New->file </span>and name it +<span +class="ecti-1000">HelloWorldC.room</span>. +</p><!--l. 45--><p class="noindent" ><img +src="images/034-HelloWorldC03.png" alt="PIC" /> -</p><!--l. 105--><p class="noindent" >The complete model can be found in <span -class="ecti-1000">org.eclipse.etrice.tutorials.c</span> -</p><!--l. 107--><p class="noindent" >Take a look at the file attribute of the file reader. - - - -</p> -<div class="verbatim" id="verbatim-20"> -Attribute f:file ref -</div> -<!--l. 111--><p class="nopar" > -</p><!--l. 113--><p class="noindent" ><span -class="ecti-1000">fopen </span>expects a <span -class="ecti-1000">FILE *</span>. <span -class="ecti-1000">f:file ref </span>declares a variable <span -class="ecti-1000">f </span>from type reference to <span -class="ecti-1000">file</span>, -which is a pointer to <span -class="ecti-1000">FILE</span>. - - - +</p><!--l. 48--><p class="noindent" >Due to the file ending <span +class="ecti-1000">.room</span>, the tool will ask you to add the Xtext nature. Answer with +<span +class="ecti-1000">Yes</span>. +</p><!--l. 50--><p class="noindent" ><img +src="images/034-HelloWorldC04.png" alt="PIC" + /> +</p><!--l. 53--><p class="noindent" >The workspace should look like this: +</p><!--l. 55--><p class="noindent" ><img +src="images/034-HelloWorldC05.png" alt="PIC" + /> + + </p> -<!--l. 116--><div class="crosslinks"><p class="noindent">[<a +<!--l. 60--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse36.html" >next</a>] [<a href="etrice-docse34.html" >prev</a>] [<a href="etrice-docse34.html#tailetrice-docse34.html" >prev-tail</a>] [<a href="etrice-docse35.html" >front</a>] [<a -href="etrice-docch9.html#etrice-docse35.html" >up</a>] </p></div> -<!--l. 116--><p class="noindent" ><a +href="etrice-docch10.html#etrice-docse35.html" >up</a>] </p></div> +<!--l. 60--><p class="noindent" ><a id="tailetrice-docse35.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse36.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse36.html index d08bc4219..c82fe2a2e 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse36.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse36.html @@ -4,45 +4,69 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Generate, build and run the model</title> +<head><title>Create the HelloWorld model</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 116--><div class="crosslinks"><p class="noindent">[<a +<!--l. 60--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse37.html" >next</a>] [<a href="etrice-docse35.html" >prev</a>] [<a href="etrice-docse35.html#tailetrice-docse35.html" >prev-tail</a>] [<a href="#tailetrice-docse36.html">tail</a>] [<a -href="etrice-docch9.html#etrice-docse36.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">9.5 </span> <a - id="x47-630009.5"></a>Generate, build and run the model</h3> -<!--l. 118--><p class="noindent" >Before you can run the model you should copy one of the generated C source files -into the project folder and name it <span -class="ecti-1000">test.txt</span>. -</p><!--l. 120--><p class="noindent" ><img -src="images/036-RemoveCommentC07.png" alt="PIC" - /> -</p><!--l. 123--><p class="noindent" >Generate, build and run the model. -</p><!--l. 125--><p class="noindent" >Your output should start like this: -</p><!--l. 127--><p class="noindent" ><img -src="images/036-RemoveCommentC08.png" alt="PIC" - /> - - - +href="etrice-docch10.html#etrice-docse36.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">10.3 </span> <a + id="x48-6400010.3"></a>Create the HelloWorld model</h3> +<!--l. 62--><p class="noindent" >Once the model file is created and the Xtext nature is added, you can create the model as you did it for +Java. Creating the model is not the focus of this tutorial. Therefore copy and paste the following code +into your model file. Optionally you can open and layout the diagrams. Recognize the C specific parts: </p> -<!--l. 131--><div class="crosslinks"><p class="noindent">[<a + <ul class="itemize1"> + <li class="itemize">The action code contains C instead of Java. Later versions will contain a common action + language, but for the moment the action language is target specific. + </li> + <li class="itemize">The application must be shutdown on model level (see also <span +class="ecti-1000">etRuntimeConfig.h</span>).</li></ul> + + +<div class="verbatim" id="verbatim-19"> +RoomModel HelloWorldCModel { + <br />import room.basic.types.* from "../../org.eclipse.etrice.modellib.c/model/Types.room" + <br />SubSystemClass HelloWorldCSubSysClass { + <br />ActorRef HelloETriceTopRef:AHelloWorldCTop + <br />} + <br />ActorClass AHelloWorldCTop { + <br />Structure { } + <br />Behavior { + <br />StateMachine { + <br />Transition init: initial -> state0 { } + <br />State state0 { + <br />entry { + <br />"printf(\"HelloWorldC !\\n\");" + <br />"SubSysClass_shutdown();" + <br />"\t\t\t\t\t\t" + <br />} + <br />} + <br />} + <br />} + <br />} + <br />} +</div> +<!--l. 92--><p class="nopar" > + + +</p> +<!--l. 94--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse37.html" >next</a>] [<a href="etrice-docse35.html" >prev</a>] [<a href="etrice-docse35.html#tailetrice-docse35.html" >prev-tail</a>] [<a href="etrice-docse36.html" >front</a>] [<a -href="etrice-docch9.html#etrice-docse36.html" >up</a>] </p></div> -<!--l. 131--><p class="noindent" ><a +href="etrice-docch10.html#etrice-docse36.html" >up</a>] </p></div> +<!--l. 94--><p class="noindent" ><a id="tailetrice-docse36.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse37.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse37.html index a3c0df124..71fce7c18 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse37.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse37.html @@ -4,45 +4,72 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Summary</title> +<head><title>Create a launch configuration to start the C code generator</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 131--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch10.html" >next</a>] [<a +<!--l. 94--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse38.html" >next</a>] [<a href="etrice-docse36.html" >prev</a>] [<a href="etrice-docse36.html#tailetrice-docse36.html" >prev-tail</a>] [<a href="#tailetrice-docse37.html">tail</a>] [<a -href="etrice-docch9.html#etrice-docse37.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">9.6 </span> <a - id="x48-640009.6"></a>Summary</h3> -<!--l. 133--><p class="noindent" >This tutorial should help you to train the necessary steps to create a C model. By the -way you have seen how to create your own type system for a real embedded project. -An additional aspect was to show how simple it is to separate different aspects of the -required functionality by the use of actors and protocols and make them -reusable. - - - - - - - - - +href="etrice-docch10.html#etrice-docse37.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">10.4 </span> <a + id="x49-6500010.4"></a>Create a launch configuration to start the C code generator</h3> +<!--l. 96--><p class="noindent" >Other than in Java a launch configuration for the C code generator must be created. +</p><!--l. 98--><p class="noindent" >From the <span +class="ecti-1000">Run </span>menu select <span +class="ecti-1000">Run Configurations</span> +</p><!--l. 100--><p class="noindent" ><img +src="images/034-HelloWorldC06.png" alt="PIC" + /> +</p><!--l. 103--><p class="noindent" >Within the dialog select <span +class="ecti-1000">eTrice C Generator </span>and click the <span +class="ecti-1000">New </span>button to create a new launch +configuration. +</p><!--l. 105--><p class="noindent" ><img +src="images/034-HelloWorldC07.png" alt="PIC" + /> +</p><!--l. 108--><p class="noindent" >A new configuration should be created. Name it <span +class="ecti-1000">gen_HelloWorldC </span>and add the model via one of the <span +class="ecti-1000">add</span> +buttons. +</p><!--l. 110--><p class="noindent" ><img +src="images/034-HelloWorldC08.png" alt="PIC" + /> +</p><!--l. 113--><p class="noindent" >In the <span +class="ecti-1000">Refresh </span>tab select <span +class="ecti-1000">The entire workspace</span> +</p><!--l. 115--><p class="noindent" ><img +src="images/034-HelloWorldC09.png" alt="PIC" + /> +</p><!--l. 118--><p class="noindent" >In the <span +class="ecti-1000">Common </span>tab select <span +class="ecti-1000">Shared file </span>and add the <span +class="ecti-1000">HelloWorldC </span>project via the <span +class="ecti-1000">Browse </span>button. +</p><!--l. 120--><p class="noindent" ><img +src="images/034-HelloWorldC10.png" alt="PIC" + /> +</p><!--l. 123--><p class="noindent" >Apply your changes. The new configuration should now exist in your workspace. +</p><!--l. 125--><p class="noindent" ><img +src="images/034-HelloWorldC11.png" alt="PIC" + /> + + </p> -<!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch10.html" >next</a>] [<a +<!--l. 129--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse38.html" >next</a>] [<a href="etrice-docse36.html" >prev</a>] [<a href="etrice-docse36.html#tailetrice-docse36.html" >prev-tail</a>] [<a href="etrice-docse37.html" >front</a>] [<a -href="etrice-docch9.html#etrice-docse37.html" >up</a>] </p></div> -<!--l. 1--><p class="noindent" ><a +href="etrice-docch10.html#etrice-docse37.html" >up</a>] </p></div> +<!--l. 129--><p class="noindent" ><a id="tailetrice-docse37.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse38.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse38.html index 3ecb1a855..ba2b3a72d 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse38.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse38.html @@ -4,241 +4,43 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Actors</title> +<head><title>Generate the code</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 6--><div class="crosslinks"><p class="noindent">[<a +<!--l. 129--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse39.html" >next</a>] [<a -href="etrice-docch10.html" >prev</a>] [<a -href="etrice-docch10.html#tailetrice-docch10.html" >prev-tail</a>] [<a +href="etrice-docse37.html" >prev</a>] [<a +href="etrice-docse37.html#tailetrice-docse37.html" >prev-tail</a>] [<a href="#tailetrice-docse38.html">tail</a>] [<a href="etrice-docch10.html#etrice-docse38.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.1 </span> <a - id="x50-6600010.1"></a>Actors</h3> - - - -<!--l. 8--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.1.1 </span> <a - id="x50-6700010.1.1"></a>Description</h4> -<!--l. 10--><p class="noindent" >The actor is the basic structural building block for building systems with ROOM. An -actor can be refined hierarchically and thus can be of arbitrarily large scope. Ports -define the interface of an actor. An Actor can also have a behavior usually defined by -a finite state machine. -</p><!--l. 12--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.1.2 </span> <a - id="x50-6800010.1.2"></a>Motivation</h4> - <ul class="itemize1"> - <li class="itemize">Actors enable the construction of hierarchical structures by composition - and layering - </li> - <li class="itemize">Actors have their own logical thread of execution - </li> - <li class="itemize">Actors can be freely deployed - </li> - <li class="itemize">Actors define potentially reusable blocks</li></ul> -<!--l. 21--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.1.3 </span> <a - id="x50-6900010.1.3"></a>Notation</h4> -<div class="table"> - - - -<!--l. 25--><p class="noindent" ><a - id="x50-690011"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.1: </span><span -class="content">Actor Class Notation</span></div><!--tex4ht:label?: x50-690011 --> -<div class="tabular"> <table id="TBL-3" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-3-1g"><col -id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col -id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col -id="TBL-3-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1" -class="td11"> <span -class="ecbx-1000">Element </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1" -class="td11"> ActorClass </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2" -class="td11"> <img -src="images/040-ActorClassNotation.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3" -class="td11"> <img -src="images/040-ActorClassTextualNotation.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1" -class="td11"> ActorRef </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2" -class="td11"> <img -src="images/040-ActorReferenceNotation.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3" -class="td11"> <img -src="images/040-ActorReferenceTextualNotation.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1" -class="td11"> </td></tr></table></div> - - - -</div><hr class="endfloat" /> -</div> -<h4 class="subsectionHead"><span class="titlemark">10.1.4 </span> <a - id="x50-7000010.1.4"></a>Details</h4> -<!--l. 55--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x50-7100010.1.4"></a>Actor Classes, Actor References, Ports and Bindings</h5> -<!--l. 57--><p class="noindent" >An <span -class="ecbx-1000">ActorClass </span>defines the type (or blueprint) of an actor. Hierarchies are -built by ActorClasses that contain <span -class="ecbx-1000">ActorReferences </span>which have another -ActorClass as type. The interface of an ActorClass is always defined by Ports. -The ActorClass can also contain Attributes, Operations and a finite state -machine. -</p><!--l. 59--><p class="noindent" ><span -class="ecbx-1000">External Ports </span>define the external interface of an actor and are defined in the -*Interface* section of the ActorClass. -</p><!--l. 61--><p class="noindent" ><span -class="ecbx-1000">Internal Ports </span>define the internal interface of an actor and are defined in the -*Structure* section of the ActorClass. -</p><!--l. 63--><p class="noindent" ><span -class="ecbx-1000">Bindings </span>connect Ports inside an ActorClass. -</p><!--l. 65--><p class="noindent" >Example: -</p> -<div class="table"> - - - -<!--l. 68--><p class="noindent" ><a - id="x50-710012"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.2: </span><span -class="content">Actor Class Example</span></div><!--tex4ht:label?: x50-710012 --> -<div class="tabular"> <table id="TBL-4" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-4-1g"><col -id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col -id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col -id="TBL-4-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1" -class="td11"> <img -src="images/040-ActorClass.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2" -class="td11"> <img -src="images/040-ActorClassExampleTextualNotation.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1" -class="td11"> </td></tr></table> -</div> - - - -</div><hr class="endfloat" /> -</div> - <ul class="itemize1"> - <li class="itemize"><span -class="ecbx-1000">ActorClass1 </span>contains two ActorReferences (of ActorClass2 and - ActorClass3) - </li> - <li class="itemize"><span -class="ecti-1000">port1 </span>is a <span -class="ecbx-1000">External End Port</span>. Since it connects external Actors with - the behavior of the ActorClass, it is defined in the <span -class="ecbx-1000">Interface </span>section and - the <span -class="ecbx-1000">Structure </span>section of the ActorClass. - </li> - <li class="itemize"><span -class="ecti-1000">port2 </span>and <span -class="ecti-1000">port3 </span>are <span -class="ecbx-1000">Internal End Ports </span>and can only be connected to - the ports of contained ActorReferences. Internal End Ports connect the - Behavior of an ActorClass with its contained ActorReferences. - </li> - <li class="itemize"><span -class="ecti-1000">port4 </span>is a relay port and connects external Actors to contained - ActorReferences. This port can not be accessed by the behavior of the - ActorClass. - </li> - <li class="itemize"><span -class="ecti-1000">port5 </span>through <span -class="ecti-1000">port9 </span>are Ports of contained ActorReferences. <span -class="ecti-1000">port8</span> - and <span -class="ecti-1000">port9 </span>can communicate without interference with the containing - ActorClass. - </li> - <li class="itemize"><span -class="ecbx-1000">Bindings </span>can connect ports of the ActorClass and its contained - ActorReferences.</li></ul> -<h5 class="subsubsectionHead"><a - id="x50-7200010.1.4"></a>Attributes</h5> -<!--l. 98--><p class="noindent" >Attributes are part of the Structure of an ActorClass. They can be of a -PrimitiveType or a DataClass. -</p><!--l. 100--><p class="noindent" >Example: -</p><!--l. 102--><p class="noindent" ><img -src="images/040-ActorClassAttributes.png" alt="PIC" +<h3 class="sectionHead"><span class="titlemark">10.5 </span> <a + id="x50-6600010.5"></a>Generate the code</h3> +<!--l. 131--><p class="noindent" >Now you can generate the code as you know it from Java. Right click on the launch configuration and run +it as <span +class="ecti-1000">gen_HelloWorldC</span>. +</p><!--l. 133--><p class="noindent" ><img +src="images/034-HelloWorldC12.png" alt="PIC" /> -</p><!--l. 105--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x50-7300010.1.4"></a>Operations</h5> -<!--l. 107--><p class="noindent" >Operations are part of the Behavior of an ActorClass. Arguments and return values -can be of a PrimitiveType or a DataClass. DataClasses can be passed by value -(implicit) or by reference (keyword <span -class="ecbx-1000">ref</span>). -</p><!--l. 109--><p class="noindent" >Example: -</p><!--l. 111--><p class="noindent" ><img -src="images/040-ActorClassOperations.png" alt="PIC" +</p><!--l. 136--><p class="noindent" >The code should be generated. +</p><!--l. 138--><p class="noindent" ><img +src="images/034-HelloWorldC13.png" alt="PIC" /> - - - + + </p> -<!--l. 114--><div class="crosslinks"><p class="noindent">[<a +<!--l. 141--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse39.html" >next</a>] [<a -href="etrice-docch10.html" >prev</a>] [<a -href="etrice-docch10.html#tailetrice-docch10.html" >prev-tail</a>] [<a +href="etrice-docse37.html" >prev</a>] [<a +href="etrice-docse37.html#tailetrice-docse37.html" >prev-tail</a>] [<a href="etrice-docse38.html" >front</a>] [<a href="etrice-docch10.html#etrice-docse38.html" >up</a>] </p></div> -<!--l. 114--><p class="noindent" ><a - id="tailetrice-docse38.html"></a> </p> +<!--l. 141--><p class="noindent" ><a + id="tailetrice-docse38.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse39.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse39.html index 8550866a3..884c96254 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse39.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse39.html @@ -4,59 +4,48 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Protocols</title> +<head><title>Setup the include path</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 114--><div class="crosslinks"><p class="noindent">[<a +<!--l. 141--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse40.html" >next</a>] [<a href="etrice-docse38.html" >prev</a>] [<a href="etrice-docse38.html#tailetrice-docse38.html" >prev-tail</a>] [<a href="#tailetrice-docse39.html">tail</a>] [<a href="etrice-docch10.html#etrice-docse39.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.2 </span> <a - id="x51-7400010.2"></a>Protocols</h3> -<!--l. 116--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.2.1 </span> <a - id="x51-7500010.2.1"></a>Description</h4> -<!--l. 118--><p class="noindent" >A ProtocolClass defines a set of incoming and outgoing messages that can be -exchanged between two ports. The exact semantics of a message is defined by the -execution model. -</p><!--l. 121--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.2.2 </span> <a - id="x51-7600010.2.2"></a>Motivation</h4> - <ul class="itemize1"> - <li class="itemize">ProtocolClasses provide a reusable interface specification for ports - </li> - <li class="itemize">ProtocolClasses can optionally specify valid message exchange sequences</li></ul> -<!--l. 128--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.2.3 </span> <a - id="x51-7700010.2.3"></a>Notation</h4> -<!--l. 130--><p class="noindent" >ProtocolClasses have only textual notation. The example defines a ProtocolClass -with 2 incoming and two outgoing messages. Messages can have data attached. The -data can be of a primitive type (e.g. int32, float64, ...) or a DataClass. -</p><!--l. 133--><p class="noindent" ><img -src="images/040-ProtocolClassTextualNotation.png" alt="PIC" +<h3 class="sectionHead"><span class="titlemark">10.6 </span> <a + id="x51-6700010.6"></a>Setup the include path</h3> +<!--l. 143--><p class="noindent" >Before you can build the application you must setup the include path for the runtime system. Right +click the project and select <span +class="ecti-1000">Properties</span>. Add the include path as described in <span +class="ecti-1000">setting up the</span> +<span +class="ecti-1000">workspace</span>. +</p><!--l. 145--><p class="noindent" ><img +src="images/034-HelloWorldC14.png" alt="PIC" + /> +</p><!--l. 148--><p class="noindent" >Add the runtime library. +</p><!--l. 150--><p class="noindent" ><img +src="images/034-HelloWorldC15.png" alt="PIC" /> - - - +</p><!--l. 153--><p class="noindent" >Recognize the name of the library ("org.eclipse.etrice.runtime.c"). The library file on your disk is +"liborg.eclipse.etrice.runtime.c.a". + + </p> -<!--l. 136--><div class="crosslinks"><p class="noindent">[<a +<!--l. 155--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse40.html" >next</a>] [<a href="etrice-docse38.html" >prev</a>] [<a href="etrice-docse38.html#tailetrice-docse38.html" >prev-tail</a>] [<a href="etrice-docse39.html" >front</a>] [<a href="etrice-docch10.html#etrice-docse39.html" >up</a>] </p></div> -<!--l. 136--><p class="noindent" ><a +<!--l. 155--><p class="noindent" ><a id="tailetrice-docse39.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html index dff78eb38..11a86564f 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse4.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -26,25 +26,21 @@ href="etrice-docch2.html#etrice-docse4.html" >up</a>] </p></div> </p> <h4 class="subsectionHead"><span class="titlemark">2.2.1 </span> <a id="x8-130002.2.1"></a>Actor, Port, Protocol</h4> -<!--l. 85--><p class="noindent" >The basic elements of ROOM are the actors with their ports and protocols. The -protocol provides a formal interface description. The port is an interaction point -where the actor interacts with its outside world. Each port has exactly one -protocol attached. The sum of all ports builds up the complete interface -of an actor. Each port can receive messages, with or without data, which -are defined in the attached protocol. Each message will be handled by the -actors behavior (state machine) or will be delegated to the actors internal -structure. +<!--l. 85--><p class="noindent" >The basic elements of ROOM are the actors with their ports and protocols. The protocol provides a +formal interface description. The port is an interaction point where the actor interacts with its outside +world. Each port has exactly one protocol attached. The sum of all ports builds up the complete interface +of an actor. Each port can receive messages, with or without data, which are defined in the attached +protocol. Each message will be handled by the actors behavior (state machine) or will be delegated to the +actors internal structure. </p> <div class="table"> - - - + + <!--l. 88--><p class="noindent" ><a id="x8-130011"></a></p><hr class="float" /><div class="float" > - - - + + <div class="caption" ><span class="id">Table 2.1: </span><span class="content">Actor and Protocol Example</span></div><!--tex4ht:label?: x8-130011 --> @@ -73,38 +69,33 @@ class="hline"><td><hr /></td><td><hr /></td></tr><tr style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1" class="td11"> </td></tr></table> </div> - - - + + </div><hr class="endfloat" /> </div> -<!--l. 107--><p class="noindent" >The actor provides access protection for its own attributes (including complex types -(classical objects)), including concurrency protection. An actor has neither public -attributes nor public operations. The only interaction with the outside world -takes place via interface ports. This ensures a high degree of reusability on -actor level and provides an effective and safe programming model to the +<!--l. 107--><p class="noindent" >The actor provides access protection for its own attributes (including complex types (classical objects)), +including concurrency protection. An actor has neither public attributes nor public operations. The only +interaction with the outside world takes place via interface ports. This ensures a high degree +of reusability on actor level and provides an effective and safe programming model to the developer. -</p><!--l. 109--><p class="noindent" >Receiving a message via a port will trigger the internal state machine. A transition -will be executed depending on the message and the current state. Within this -transition, detail level code will be executed and response messages can be -sent. -</p><!--l. 113--><p class="noindent" >With this model, a complex behavior can be divided into many relatively simple, -linked actors. To put it the other way round: The complex behavior will be provided -by a network of relatively simple components which are communicating with each -other via well defined interfaces. +</p><!--l. 109--><p class="noindent" >Receiving a message via a port will trigger the internal state machine. A transition will be executed +depending on the message and the current state. Within this transition, detail level code will be executed +and response messages can be sent. +</p><!--l. 113--><p class="noindent" >With this model, a complex behavior can be divided into many relatively simple, linked actors. To put it +the other way round: The complex behavior will be provided by a network of relatively simple +components which are communicating with each other via well defined interfaces. </p> <h4 class="subsectionHead"><span class="titlemark">2.2.2 </span> <a id="x8-140002.2.2"></a>Hierarchy in Structure and Behavior</h4> -<!--l. 118--><p class="noindent" >ROOM provides two types of hierarchy. Behavioral hierarchy and structural -hierarchy. Structural hierarchy means that actors can be nested to arbitrary depth. -Usually you will add more and more details to your application with each nesting -level. That means you can focus yourself on any level of abstraction with always the -same element, the actor. Structural hierarchy provides a powerful mechanism to -divide your problem in smaller pieces, so that you can focus on the level of -abstraction you want to work on. -</p><!--l. 120--><p class="noindent" >The actor’s behavior will be described with a state machine. A state in turn may -contain sub states. This is another possibility to focus on an abstraction level. Take -the simple FSM from the blinky actor from the blinky tutorial. +<!--l. 118--><p class="noindent" >ROOM provides two types of hierarchy. Behavioral hierarchy and structural hierarchy. Structural +hierarchy means that actors can be nested to arbitrary depth. Usually you will add more and more details +to your application with each nesting level. That means you can focus yourself on any level of abstraction +with always the same element, the actor. Structural hierarchy provides a powerful mechanism to divide +your problem in smaller pieces, so that you can focus on the level of abstraction you want to work +on. +</p><!--l. 120--><p class="noindent" >The actor’s behavior will be described with a state machine. A state in turn may contain sub states. This +is another possibility to focus on an abstraction level. Take the simple FSM from the blinky actor from +the blinky tutorial. </p><!--l. 122--><p class="noindent" >Top level: </p><!--l. 124--><p class="noindent" ><img src="images/020-Blinky15.png" alt="PIC" @@ -115,73 +106,66 @@ class="ecti-1000">blinking </span>Sub machine: src="images/020-Blinky151.png" alt="PIC" /> </p><!--l. 132--><p class="noindent" >From an abstract point of view there is a state <span -class="ecti-1000">blinking</span>. But a simple LED is not -able to blink autonomously. Therefore you have to add more details to your -model to make a LED blinking, but for the current work it is not of interest -how the blinking is realized. This will be done in the next lower level of the -hierarchy. +class="ecti-1000">blinking</span>. But a simple LED is not able to blink +autonomously. Therefore you have to add more details to your model to make a LED blinking, but for the +current work it is not of interest how the blinking is realized. This will be done in the next lower level of +the hierarchy. </p><!--l. 134--><p class="noindent" >This simple example might give an idea how powerful this mechanisms is. -</p><!--l. 136--><p class="noindent" >The hierarchical FSM provides a rich tool box to describe real world problems (see +</p><!--l. 136--><p class="noindent" >The hierarchical FSM provides a rich tool box to describe real world problems (see <span +class="ecbx-1000">room</span> <span -class="ecbx-1000">room concepts</span>). - - - +class="ecbx-1000">concepts</span>). </p><!--l. 138--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.2.3 </span> <a id="x8-150002.2.3"></a>Layering</h4> -<!--l. 140--><p class="noindent" >Layering is another well known form of abstraction to reduce complexity in the -structure of systems. ROOM is probably the only language that supports Layering -directly as language feature. Layering can be expressed in ROOM by Actors with -specialized Ports, called Service Access Points (*SAP*) and Service Provision Points -(*SPP*). -</p><!--l. 143--><p class="noindent" >The Actor that provides a service implements an SPP and the client of that service -implements an SAP. The Layer Connection connects all SAPs of a specific -Protocol within an Actor hierarchy with an SPP that implements the service. -From the Actors point of view, SAPs and SPPs behave almost like regular +<!--l. 140--><p class="noindent" >Layering is another well known form of abstraction to reduce complexity in the structure of systems. +ROOM is probably the only language that supports Layering directly as language feature. Layering can +be expressed in ROOM by Actors with specialized Ports, called Service Access Points (*SAP*) and +Service Provision Points (*SPP*). +</p><!--l. 143--><p class="noindent" >The Actor that provides a service implements an SPP and the client of that service implements an SAP. +The Layer Connection connects all SAPs of a specific Protocol within an Actor hierarchy with an SPP +that implements the service. From the Actors point of view, SAPs and SPPs behave almost like regular + + ports. </p><!--l. 145--><p class="noindent" ><img src="images/010-LayerExample.png" alt="PIC" /> -</p><!--l. 148--><p class="noindent" >The Example shows a layered model. The Layer Connections define e.g. that -the <span -class="ecti-1000">ApplicationLayer </span>can only use the services of the <span -class="ecti-1000">ServiceLayer </span>and the +</p><!--l. 148--><p class="noindent" >The Example shows a layered model. The Layer Connections define e.g. that the <span +class="ecti-1000">ApplicationLayer </span>can +only use the services of the <span +class="ecti-1000">ServiceLayer </span>and the <span +class="ecti-1000">CommunicationLayer</span>. Actors inside the <span -class="ecti-1000">CommunicationLayer</span>. Actors inside the <span -class="ecti-1000">ApplicationLayer </span>that implement an SAP for -those services are connected directly to the implementation of the services. Layering -and actor hierarchies with port to port connections can be mixed on every level of -granularity. +class="ecti-1000">ApplicationLayer </span>that implement an SAP for those services are connected directly to the implementation +of the services. Layering and actor hierarchies with port to port connections can be mixed on every level +of granularity. </p><!--l. 151--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.2.4 </span> <a id="x8-160002.2.4"></a>Run to Completion</h4> <!--l. 153--><p class="noindent" ><span -class="ecbx-1000">Run to completion </span>(RTC) is a very central concept of ROOM. It enables the -developer to concentrate on the functional aspects of the system. The developer -doesn’t have to care about concurrency issues all the time. This job is concentrated -to the system designer in a very flexible way. What does <span -class="ecbx-1000">run to completion </span>mean: -RTC means that an actor, which is processing a message, can not receive the next -message as long as the processing of the current message has been finished. -Receiving of the next message will be queued from the underlying run time +class="ecbx-1000">Run to completion </span>(RTC) is a very central concept of ROOM. It enables the developer to +concentrate on the functional aspects of the system. The developer doesn’t have to care about +concurrency issues all the time. This job is concentrated to the system designer in a very flexible +way. What does <span +class="ecbx-1000">run to completion </span>mean: RTC means that an actor, which is processing a +message, can not receive the next message as long as the processing of the current message has +been finished. Receiving of the next message will be queued from the underlying run time system. -</p><!--l. 157--><p class="noindent" >Note: It is very important not to confuse run to completion and preemption. Run to -completion means that an actor will finish the processing of a message before he can -receive a new one (regardless of its priority). That does not mean that an actor -cannot be preempted from an higher priority thread of control. But even a message -from this higher prior thread of control will be queued until the current processing -has been finished. -</p><!--l. 159--><p class="noindent" >With this mechanism all actor internal attributes and data structures are protected. -Due to the fact that multiple actors share one thread of control, all objects are -protected which are accessed from one thread of control but multiple actors. This -provides the possibility to decompose complex functionality to several actors without -the risk to produce access violations or dead locks. - - - +</p><!--l. 157--><p class="noindent" >Note: It is very important not to confuse run to completion and preemption. Run to completion means +that an actor will finish the processing of a message before he can receive a new one (regardless of its +priority). That does not mean that an actor cannot be preempted from an higher priority thread of +control. But even a message from this higher prior thread of control will be queued until the current +processing has been finished. +</p><!--l. 159--><p class="noindent" >With this mechanism all actor internal attributes and data structures are protected. Due to the fact +that multiple actors share one thread of control, all objects are protected which are accessed +from one thread of control but multiple actors. This provides the possibility to decompose +complex functionality to several actors without the risk to produce access violations or dead +locks. + + </p> <!--l. 161--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse5.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse40.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse40.html index 49dfcd782..6ec47dd4f 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse40.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse40.html @@ -4,417 +4,39 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Ports</title> +<head><title>Build and run the model</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 136--><div class="crosslinks"><p class="noindent">[<a +<!--l. 155--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse41.html" >next</a>] [<a href="etrice-docse39.html" >prev</a>] [<a href="etrice-docse39.html#tailetrice-docse39.html" >prev-tail</a>] [<a href="#tailetrice-docse40.html">tail</a>] [<a href="etrice-docch10.html#etrice-docse40.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.3 </span> <a - id="x52-7800010.3"></a>Ports</h3> -<!--l. 138--><p class="noindent" > +<h3 class="sectionHead"><span class="titlemark">10.7 </span> <a + id="x52-6800010.7"></a>Build and run the model</h3> +<!--l. 157--><p class="noindent" >Now you can build the application. Click the build button to build the application. Run the application +as <span +class="ecti-1000">Local C/C++ Application</span>. Verify the output. +</p><!--l. 161--><p class="noindent" ><img +src="images/034-HelloWorldC16.png" alt="PIC" + /> + + </p> -<h4 class="subsectionHead"><span class="titlemark">10.3.1 </span> <a - id="x52-7900010.3.1"></a>Description</h4> -<!--l. 140--><p class="noindent" >Ports are the only interfaces of actors. A port has always a protocol assigned. Service -Access Points (SAP) and Service Provision Points (SPP) are specialized ports that -are used to define layering. -</p><!--l. 143--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.3.2 </span> <a - id="x52-8000010.3.2"></a>Motivation</h4> - <ul class="itemize1"> - <li class="itemize">Ports decouple interface definition (Protocols) from interface usage - </li> - <li class="itemize">Ports decouple the logical interface from the transport</li></ul> -<!--l. 150--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.3.3 </span> <a - id="x52-8100010.3.3"></a>Notation</h4> -<!--l. 152--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x52-8200010.3.3"></a>Class Ports</h5> -<!--l. 154--><p class="noindent" >These symbols can only appear on the border of an actor class symbol. - - - -</p><!--l. 156--><p class="noindent" >Ports that define an external interface of the ActorClass, are defined in the <span -class="ecti-1000">Interface</span>. -Ports that define an internal interface are defined in the <span -class="ecti-1000">Structure </span>(e.g. internal -ports). </p> - <ul class="itemize1"> - <li class="itemize"><span -class="ecbx-1000">External End Ports </span>are defined in the Interface and the Structure - </li> - <li class="itemize"><span -class="ecbx-1000">Internal End Ports </span>are only defined in the Structure - </li> - <li class="itemize"><span -class="ecbx-1000">Relay Ports </span>are only defined in the Interface - </li> - <li class="itemize"><span -class="ecbx-1000">End Ports </span>are always connected to the internal behavior of the - ActorClass - </li> - <li class="itemize"><span -class="ecbx-1000">Replicated Ports </span>can be defined with a fixed replication factor ( e.g. - <span -class="ecti-1000">Port port18 [ 5 ]: ProtocolClass1 </span>) or a variable replication factor (e.g. - <span -class="ecti-1000">Port port18[ * ]: ProtocolClass1 </span>)</li></ul> -<div class="table"> -<!--l. 165--><p class="noindent" ><a - id="x52-820013"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.3: </span><span -class="content">Class Port Notation</span></div><!--tex4ht:label?: x52-820013 --> -<a - id="x52-82002r4"></a><!--l. 168--><div class="longtable"> <table id="TBL-5" class="longtable" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-5-1g"><col -id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col -id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col -id="TBL-5-3" /></colgroup> -<tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-1-1" -class="td11"> <!--l. 168--><p class="noindent" ><span -class="ecbx-1000">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-1-3" -class="td11"> <!--l. 168--><p class="noindent" ><span -class="ecbx-1000">Textual Notation</span> </p></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-2-1" -class="td11"> <!--l. 169--><p class="noindent" >Class - End - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2" -class="td11"> <img -src="images/040-ClassEndPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-2-3" -class="td11"> <div class="tabular"> <table id="TBL-6" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-6-1g"><col -id="TBL-6-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-1-1" -class="td11"><span -class="ecbx-1000">External Class End Port:</span></td></tr><tr - style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-2-1" -class="td11"> <img -src="images/040-ClassEndPortTextual.png" alt="PIC" - /></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-3-1" -class="td11"> <span -class="ecbx-1000">Internal Class End Port: </span></td></tr><tr - style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-4-1" -class="td11"> <img -src="images/040-ClassEndPortInternalTextual.png" alt="PIC" - /></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-5-1" -class="td11"> </td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-3-1" -class="td11"> <!--l. 170--><p class="noindent" >Conjugated - Class - End - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2" -class="td11"> <img -src="images/040-ConjugatedClassEndPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-3-3" -class="td11"> <div class="tabular"> <table id="TBL-7" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-7-1g"><col -id="TBL-7-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-1-1" -class="td11"><!--l. 170--><p class="noindent" ><span -class="ecbx-1000">External Conjugated Class End</span> -<span -class="ecbx-1000">Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-2-1" -class="td11"><!--l. 170--><p class="noindent" ><img -src="images/040-ConjugatedClassEndPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-3-1" -class="td11"><!--l. 170--><p class="noindent" ><span -class="ecbx-1000">Internal Conjugated Class End</span> -<span -class="ecbx-1000">Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-4-1" -class="td11"><!--l. 170--><p class="noindent" ><img -src="images/040-ConjugatedClassEndPortInternalTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-5-1" -class="td11"> </td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-4-1" -class="td11"> <!--l. 171--><p class="noindent" >Class - Relay - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2" -class="td11"> <img -src="images/040-ClassRelayPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-4-3" -class="td11"> <!--l. 171--><p class="noindent" ><img -src="images/040-ClassRelayPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-5-1" -class="td11"> <!--l. 172--><p class="noindent" >Conjugated - Class - Relay - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2" -class="td11"> <img -src="images/040-ConjugatedClassRelayPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-5-3" -class="td11"> <!--l. 172--><p class="noindent" ><img -src="images/040-ConjugatedClassRelayPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-6-1" -class="td11"> <!--l. 173--><p class="noindent" >Replicated - Class - End - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2" -class="td11"> <img -src="images/040-ReplicatedClassEndPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-6-3" -class="td11"> <div class="tabular"> <table id="TBL-8" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-8-1g"><col -id="TBL-8-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1" -class="td11"><!--l. 173--><p class="noindent" ><span -class="ecbx-1000">External Replicated Class End</span> -<span -class="ecbx-1000">Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1" -class="td11"><!--l. 173--><p class="noindent" ><img -src="images/040-ReplicatedClassEndPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1" -class="td11"><!--l. 173--><p class="noindent" ><span -class="ecbx-1000">Internal Replicated Class End</span> -<span -class="ecbx-1000">Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1" -class="td11"><!--l. 173--><p class="noindent" ><img -src="images/040-ReplicatedClassEndPortInternalTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1" -class="td11"> </td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-7-1" -class="td11"> <!--l. 174--><p class="noindent" >Conjugated - Replicated - Class - End - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2" -class="td11"> <img -src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-7-3" -class="td11"> <div class="tabular"> <table id="TBL-9" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-9-1g"><col -id="TBL-9-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1" -class="td11"><!--l. 174--><p class="noindent" ><span -class="ecbx-1000">External Conjugated</span> -<span -class="ecbx-1000">Replicated Class End Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1" -class="td11"><!--l. 174--><p class="noindent" ><img -src="images/040-ConjugatedReplicatedClassEndPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1" -class="td11"><!--l. 174--><p class="noindent" ><span -class="ecbx-1000">Internal Conjugated Replicated</span> -<span -class="ecbx-1000">Class End Port:</span> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1" -class="td11"><!--l. 174--><p class="noindent" ><img -src="images/040-ConjugatedReplicatedClassEndPortInternalTextual.png" alt="PIC" - /> </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1" -class="td11"> </td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-8-1" -class="td11"> <!--l. 175--><p class="noindent" >Replicated - Class - Relay - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2" -class="td11"> <img -src="images/040-ReplicatedClassRelayPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-8-3" -class="td11"> <!--l. 175--><p class="noindent" ><img -src="images/040-ReplicatedClassRelayPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-9-1" -class="td11"> <!--l. 176--><p class="noindent" >Conjugated - Replicated - Class - Relay - Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2" -class="td11"> <img -src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-9-3" -class="td11"> <!--l. 176--><p class="noindent" ><img -src="images/040-ConjugatedReplicatedClassRelayPortTextual.png" alt="PIC" - /> </p></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-10-1" -class="td11"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-11-1" -class="td11"> </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-12-1" -class="td11"> <!--l. 177--><p class="noindent" > </p></td> - - - -</tr><tr - style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-13-1" -class="td11"> <!--l. 177--><p class="noindent" > </p></td> -</tr><tr - style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-14-1" -class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-14-2" -class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-14-3" -class="td11"></td></tr> -</table></div> - - - -</div><hr class="endfloat" /> -</div> -<h5 class="subsubsectionHead"><a - id="x52-8300010.3.3"></a>Reference Ports</h5> -<!--l. 258--><p class="noindent" >These symbols can only appear on the border of an ActorReference symbol. Since the -type of port is defined in the ActorClass, no textual notation for the Reference Ports -exists. -</p> -<div class="table"> - - - -<!--l. 261--><p class="noindent" ><a - id="x52-830015"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.5: </span><span -class="content">Title</span></div><!--tex4ht:label?: x52-830015 --> -<div class="tabular"> <table id="TBL-10" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-10-1g"><col -id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col -id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col -id="TBL-10-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1" -class="td11"> <span -class="ecbx-1000">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1" -class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2" -class="td11"> <img -src="images/040-ReferencePort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3" -class="td11"> <span -class="ecti-1000">implicit </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1" -class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2" -class="td11"> <img -src="images/040-ConjugatedReferencePort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3" -class="td11"> <span -class="ecti-1000">implicit </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1" -class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2" -class="td11"> <img -src="images/040-ReplicatedReferencePort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3" -class="td11"> <span -class="ecti-1000">implicit </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1" -class="td11"> Conjugated Replicated </td> -</tr><tr - style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1" -class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2" -class="td11"> <img -src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3" -class="td11"> <span -class="ecti-1000">implicit </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1" -class="td11"> </td></tr></table></div> - - - -</div><hr class="endfloat" /> -</div> - - - -<!--l. 301--><div class="crosslinks"><p class="noindent">[<a +<!--l. 164--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse41.html" >next</a>] [<a href="etrice-docse39.html" >prev</a>] [<a href="etrice-docse39.html#tailetrice-docse39.html" >prev-tail</a>] [<a href="etrice-docse40.html" >front</a>] [<a href="etrice-docch10.html#etrice-docse40.html" >up</a>] </p></div> -<!--l. 301--><p class="noindent" ><a - id="tailetrice-docse40.html"></a> </p> +<!--l. 164--><p class="noindent" ><a + id="tailetrice-docse40.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse41.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse41.html index 9b0eaf780..57c7292cc 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse41.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse41.html @@ -4,54 +4,41 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>DataClass</title> +<head><title>Summary</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 301--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse42.html" >next</a>] [<a +<!--l. 164--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch11.html" >next</a>] [<a href="etrice-docse40.html" >prev</a>] [<a href="etrice-docse40.html#tailetrice-docse40.html" >prev-tail</a>] [<a href="#tailetrice-docse41.html">tail</a>] [<a href="etrice-docch10.html#etrice-docse41.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.4 </span> <a - id="x53-8400010.4"></a>DataClass</h3> -<!--l. 303--><p class="noindent" > +<h3 class="sectionHead"><span class="titlemark">10.8 </span> <a + id="x53-6900010.8"></a>Summary</h3> +<!--l. 166--><p class="noindent" >You are now familiar with all necessary steps to create, build and run an eTrice C model from scratch. +You are able to create a launch configuration to start the code generator and to perform all necessary +settings to compile and link the application. +</p><!--l. 168--><p class="noindent" >The next tutorial provides an exercise to get more familiar with these working steps. + + + + + + </p> -<h4 class="subsectionHead"><span class="titlemark">10.4.1 </span> <a - id="x53-8500010.4.1"></a>Description</h4> -<!--l. 305--><p class="noindent" >The DataClass enables the modeling of hierarchical complex datatypes and -operations on them. The DataClass is the equivalent to a Class in languages like Java -or C++, but has less features. The content of a DataClass can always be sent via -message between actors (defined as message data in ProtocolClass). -</p><!--l. 307--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.4.2 </span> <a - id="x53-8600010.4.2"></a>Notation</h4> -<!--l. 309--><p class="noindent" >Example: DataClass using PrimitiveTypes -</p><!--l. 311--><p class="noindent" ><img -src="images/040-DataClass1.png" alt="PIC" - /> -</p><!--l. 314--><p class="noindent" >Example: DataClass using other DataClasses: -</p><!--l. 316--><p class="noindent" ><img -src="images/040-DataClass2.png" alt="PIC" - /> - - - -</p> -<!--l. 319--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse42.html" >next</a>] [<a +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch11.html" >next</a>] [<a href="etrice-docse40.html" >prev</a>] [<a href="etrice-docse40.html#tailetrice-docse40.html" >prev-tail</a>] [<a href="etrice-docse41.html" >front</a>] [<a href="etrice-docch10.html#etrice-docse41.html" >up</a>] </p></div> -<!--l. 319--><p class="noindent" ><a +<!--l. 1--><p class="noindent" ><a id="tailetrice-docse41.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse42.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse42.html index 75834bf71..66579c9c7 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse42.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse42.html @@ -4,169 +4,58 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Layering</title> +<head><title>Scope</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 319--><div class="crosslinks"><p class="noindent">[<a +<!--l. 3--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse43.html" >next</a>] [<a -href="etrice-docse41.html" >prev</a>] [<a -href="etrice-docse41.html#tailetrice-docse41.html" >prev-tail</a>] [<a +href="etrice-docch11.html" >prev</a>] [<a +href="etrice-docch11.html#tailetrice-docch11.html" >prev-tail</a>] [<a href="#tailetrice-docse42.html">tail</a>] [<a -href="etrice-docch10.html#etrice-docse42.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.5 </span> <a - id="x54-8700010.5"></a>Layering</h3> -<!--l. 321--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.5.1 </span> <a - id="x54-8800010.5.1"></a>Description</h4> -<!--l. 323--><p class="noindent" >In addition to the Actor containment hierarchies, Layering provides another -method to hierarchically structure a software system. Layering and actor -hierarchies with port to port connections can be mixed on every level of -granularity. +href="etrice-docch11.html#etrice-docse42.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">11.1 </span> <a + id="x55-7100011.1"></a>Scope</h3> +<!--l. 5--><p class="noindent" >In this tutorial you will create a more complex model. The model implements a simple parser that +removes comments (block comments and line comments) from a C source file. Therefore we will create +two actors. One actor is responsible to perform the file operations, while the second actor implements the +parser. +</p><!--l. 7--><p class="noindent" >You will perform the following steps: +</p><!--l. 9--><p class="noindent" > </p><ol class="enumerate1" > <li - class="enumerate" id="x54-88002x1">an ActorClass can define a Service Provision Point (SPP) to publish a - specific service, defined by a ProtocolClass + class="enumerate" id="x55-71002x1">create a new model from scratch for C + </li> + <li + class="enumerate" id="x55-71004x2">define a protocol + </li> + <li + class="enumerate" id="x55-71006x3">define your own data type </li> <li - class="enumerate" id="x54-88004x2">an ActorClass can define a Service Access Point (SAP) if it needs a service, - defined by a ProtocolClass + class="enumerate" id="x55-71008x4">create the structure and the behavior by yourself </li> <li - class="enumerate" id="x54-88006x3">for a given Actor hierarchy, a LayerConnection defines which SAP will be - satisfied by (connected to) which SPP</li></ol> -<!--l. 330--><p class="noindent" > + class="enumerate" id="x55-71010x5">generate, build and run the model</li></ol> +<!--l. 17--><p class="noindent" >Make sure that you have set up the workspace as described in <span +class="ecti-1000">Setting up the Workspace for C</span> +<span +class="ecti-1000">Projects</span>. + + </p> -<h4 class="subsectionHead"><span class="titlemark">10.5.2 </span> <a - id="x54-8900010.5.2"></a>Notation</h4> -<div class="table"> - - - -<!--l. 333--><p class="noindent" ></p><hr class="float" /><div class="float" -> - - - -<div class="tabular"> <table id="TBL-11" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-11-1g"><col -id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col -id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col -id="TBL-11-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1" -class="td11"> <!--l. 335--><p class="noindent" ><span -class="ecbx-1000">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-3" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1" -class="td11"> - <div class="flushleft" -> - <!--l. 336--><p class="noindent" > - The Layer - Connections in this - model define which - services are - provided by the - <span -class="ecti-1000">ServiceLayer</span> - (<span -class="ecti-1000">digitalIO </span>and - <span -class="ecti-1000">timer</span>)</p></div> - <!--l. 336--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2" -class="td11"> <img -src="images/040-LayeringModel.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-3" -class="td11"> <img -src="images/040-LayeringModelTextual.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1" -class="td11"> - <div class="flushleft" -> - <!--l. 337--><p class="noindent" > - The - implementation of - the services (SPPs) - can be delegated to - sub actors. In this - case the actor - <span -class="ecti-1000">ServiceLayer </span>relays - (delegates) the - implementation - services <span -class="ecti-1000">digitalIO</span> - and <span -class="ecti-1000">timer </span>to sub - actors</p></div> - <!--l. 337--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2" -class="td11"> <img -src="images/040-LayeringServiceLayer.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-3" -class="td11"> <img -src="images/040-LayeringServiceLayerTextual.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1" -class="td11"> - <div class="flushleft" -> - <!--l. 338--><p class="noindent" > - Every Actor inside - the - <span -class="ecti-1000">ApplicationLayer</span> - that contains an - SAP with the same - Protocol as <span -class="ecti-1000">timer</span> - or <span -class="ecti-1000">digitalIO </span>will be - connected to the - specified SPP</p></div> - <!--l. 338--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2" -class="td11"> <img -src="images/040-LayeringApplicationLayer.png" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-3" -class="td11"> <img -src="images/040-LayeringApplicationLayerTextual.png" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1" -class="td11"> </td></tr></table></div> - - - -</div><hr class="endfloat" /> -</div> - - - -<!--l. 365--><div class="crosslinks"><p class="noindent">[<a +<!--l. 19--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse43.html" >next</a>] [<a -href="etrice-docse41.html" >prev</a>] [<a -href="etrice-docse41.html#tailetrice-docse41.html" >prev-tail</a>] [<a +href="etrice-docch11.html" >prev</a>] [<a +href="etrice-docch11.html#tailetrice-docch11.html" >prev-tail</a>] [<a href="etrice-docse42.html" >front</a>] [<a -href="etrice-docch10.html#etrice-docse42.html" >up</a>] </p></div> -<!--l. 365--><p class="noindent" ><a +href="etrice-docch11.html#etrice-docse42.html" >up</a>] </p></div> +<!--l. 19--><p class="noindent" ><a id="tailetrice-docse42.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse43.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse43.html index 80118438c..5b4766d84 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse43.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse43.html @@ -4,301 +4,70 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Finite State Machines</title> +<head><title>Create a new model from scratch</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 365--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch11.html" >next</a>] [<a +<!--l. 19--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse44.html" >next</a>] [<a href="etrice-docse42.html" >prev</a>] [<a href="etrice-docse42.html#tailetrice-docse42.html" >prev-tail</a>] [<a href="#tailetrice-docse43.html">tail</a>] [<a -href="etrice-docch10.html#etrice-docse43.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">10.6 </span> <a - id="x55-9000010.6"></a>Finite State Machines</h3> -<!--l. 367--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.6.1 </span> <a - id="x55-9100010.6.1"></a>Description</h4> -<!--l. 369--><p class="noindent" >Definition from <a -href="http://en.wikipedia.org/wiki/Finite-state_machine" >Wikipedia</a>: -</p><!--l. 371--><p class="noindent" > - </p><div class="quote"> - <!--l. 372--><p class="noindent" >A finite-state machine (FSM) or finite-state automaton (plural: - automata), or simply a state machine, is a mathematical model used - to design computer programs and digital logic circuits. It is conceived - as an abstract machine that can be in one of a finite number of - states. The machine is in only one state at a time; the state it is in - at any given time is called the current state. It can change from one - state to another when initiated by a triggering event or condition, - this is called a transition. A particular FSM is defined by a list of the - possible states it can transition to from each state, and the triggering - condition for each transition. - </p><!--l. 374--><p class="noindent" >In ROOM each actor class can implement its behavior using a state - machine. Events occurring at the end ports of an actor will be - forwarded to and processed by the state machine. Events possibly - trigger state transitions.</p></div> -<!--l. 377--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.6.2 </span> <a - id="x55-9200010.6.2"></a>Motivation</h4> -<!--l. 379--><p class="noindent" >For event driven systems a finite state machine is ideal for processing the stream of -events. Typically during processing new events are produced which are sent to peer -actors. -</p><!--l. 381--><p class="noindent" >We distinguish flat and hierarchical state machines. - - - -</p><!--l. 383--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">10.6.3 </span> <a - id="x55-9300010.6.3"></a>Notation</h4> -<!--l. 385--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x55-9400010.6.3"></a>Flat Finite State Machine</h5> -<!--l. 387--><p class="noindent" >The simpler flat finite state machines are composed of the following elements: -</p> -<div class="table"> - - - -<!--l. 390--><p class="noindent" ><a - id="x55-940016"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.6: </span><span -class="content">Title</span></div><!--tex4ht:label?: x55-940016 --> -<div class="tabular"> <table id="TBL-12" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-12-1g"><col -id="TBL-12-1" /></colgroup><colgroup id="TBL-12-2g"><col -id="TBL-12-2" /></colgroup><colgroup id="TBL-12-3g"><col -id="TBL-12-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-1" -class="td11"> <span -class="ecbx-1000">Description </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-3" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-1" -class="td11"> State </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-2" -class="td11"> <img -src="images/040-State.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-3" -class="td11"> <img -src="images/040-StateTextual.jpg" alt="PIC" - /> </td></tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-1" -class="td11"> InitialPoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-2" -class="td11"> <img -src="images/040-InitialPoint.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-3" -class="td11"> <span -class="ecti-1000">implicit</span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-1" -class="td11"> TransitionPoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-2" -class="td11"> <img -src="images/040-TransitionPoint.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-3" -class="td11"> <img -src="images/040-TransitionPointTextual.jpg" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-1" -class="td11"> ChoicePoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-2" -class="td11"> <img -src="images/040-ChoicePoint.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-3" -class="td11"> <img -src="images/040-ChoicePointTextual.jpg" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-1" -class="td11"> Initial Transition </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-2" -class="td11"> <img -src="images/040-InitialTransition.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-3" -class="td11"> <img -src="images/040-InitialTransitionTextual.jpg" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-1" -class="td11"> Triggered Transition </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-2" -class="td11"> <img -src="images/040-TriggeredTransition.jpg" alt="PIC" - /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-3" -class="td11"> <img -src="images/040-TriggeredTransitionTextual.jpg" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-8-1" -class="td11"> </td></tr></table></div> - - - -</div><hr class="endfloat" /> -</div> -<h5 class="subsubsectionHead"><a - id="x55-9500010.6.3"></a>Hierarchical Finite State Machine</h5> -<!--l. 443--><p class="noindent" >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> -<div class="table"> - - - -<!--l. 447--><p class="noindent" ><a - id="x55-950017"></a></p><hr class="float" /><div class="float" -> - - - - <div class="caption" -><span class="id">Table 10.7: </span><span -class="content">Title</span></div><!--tex4ht:label?: x55-950017 --> -<div class="tabular"> <table id="TBL-13" class="tabular" -cellspacing="0" cellpadding="0" rules="groups" -><colgroup id="TBL-13-1g"><col -id="TBL-13-1" /></colgroup><colgroup id="TBL-13-2g"><col -id="TBL-13-2" /></colgroup><colgroup id="TBL-13-3g"><col -id="TBL-13-3" /></colgroup><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-1-1" -class="td11"> <!--l. 450--><p class="noindent" ><span -class="ecbx-1000">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-2" -class="td11"> <span -class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-3" -class="td11"> <span -class="ecbx-1000">Textual Notation </span></td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-2-1" -class="td11"> <!--l. 451--><p class="noindent" >State with sub state - machine </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-2" -class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-14-1g"><col -id="TBL-14-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-1-1" -class="td00">Parent State</td></tr><tr - style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-2-1" -class="td00"> <img -src="images/040-StateWithSubFSM.jpg" alt="PIC" - /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-3" -class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-15" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-15-1g"><col -id="TBL-15-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-15-1-1" -class="td00">Sub state machine</td></tr><tr - style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-15-2-1" -class="td00"> <img -src="images/040-StateWithSubFSMTextual.jpg" alt="PIC" - /></td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-3-1" -class="td11"> <!--l. 452--><p class="noindent" >Entry Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-2" -class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-16-1g"><col -id="TBL-16-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-1-1" -class="td00">In sub state machine</td></tr><tr - style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-2-1" -class="td00"> <img -src="images/040-EntryPoint.jpg" alt="PIC" - /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-3" -class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-17" class="tabular" -cellspacing="0" cellpadding="0" -><colgroup id="TBL-17-1g"><col -id="TBL-17-1" /></colgroup><tr - style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-17-1-1" -class="td00"> </td></tr><tr - style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-17-2-1" -class="td00"><img -src="images/040-EntryPointTextual.jpg" alt="PIC" - /></td></tr></table> </div> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-4-1" -class="td11"> <!--l. 453--><p class="noindent" >Exit Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-2" -class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-3" -class="td11"> <img -src="images/040-ExitPointTextual.jpg" alt="PIC" - /> </td> -</tr><tr -class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr - style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-5-1" -class="td11"> </td></tr></table> -</div> - - - -</div><hr class="endfloat" /> -</div> -<h4 class="subsectionHead"><span class="titlemark">10.6.4 </span> <a - id="x55-9600010.6.4"></a>Examples</h4> -<!--l. 492--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x55-9700010.6.4"></a>Example of a flat finite state machine:</h5> -<!--l. 495--><p class="noindent" ><img -src="images/040-FlatFSM.jpg" alt="PIC" - /> -</p><!--l. 497--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x55-9800010.6.4"></a>Example of a hierarchical finite state machine:</h5> -<!--l. 499--><p class="noindent" >Top level -</p><!--l. 502--><p class="noindent" ><img -src="images/040-HierarchicalFSMTop.jpg" alt="PIC" - /> -</p><!--l. 504--><p class="noindent" >Sub state machine of Initializing -</p><!--l. 507--><p class="noindent" ><img -src="images/040-HierarchicalFSMInitializing.jpg" alt="PIC" +href="etrice-docch11.html#etrice-docse43.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">11.2 </span> <a + id="x56-7200011.2"></a>Create a new model from scratch</h3> +<!--l. 21--><p class="noindent" >Remember the following steps from the previous tutorials: </p> + <ul class="itemize1"> + <li class="itemize">select the <span +class="ecti-1000">C/C++ </span>perspective + </li> + <li class="itemize">From the main menue select <span +class="ecti-1000">File->New->C Project</span> + </li> + <li class="itemize">Name the project <span +class="ecti-1000">RemoveComment</span> + </li> + <li class="itemize">Project type is <span +class="ecti-1000">Executable / Empty C Project</span> + </li> + <li class="itemize">Toolchain is <span +class="ecti-1000">MinGW</span> + </li> + <li class="itemize">Add the folder <span +class="ecti-1000">model</span> + </li> + <li class="itemize">Add the model file and name it <span +class="ecti-1000">RemoveComment.room</span> + </li> + <li class="itemize">Add the Xtext nature.</li></ul> +<!--l. 33--><p class="noindent" >The workspace should look like this: +</p><!--l. 35--><p class="noindent" ><img +src="images/036-RemoveCommentC01.png" alt="PIC" /> -</p><!--l. 509--><p class="noindent" >Sub state machine of Running -</p><!--l. 512--><p class="noindent" ><img -src="images/040-HierarchicalFSMRunning.jpg" alt="PIC" +</p><!--l. 38--><p class="noindent" >Create a launch configuration for the C generator and add the include path and library as described in +<span +class="ecti-1000">HelloWorldC</span>. +</p><!--l. 40--><p class="noindent" >The workspace should look like this: +</p><!--l. 42--><p class="noindent" ><img +src="images/036-RemoveCommentC02.png" alt="PIC" /> - - - - - - - - - +</p><!--l. 45--><p class="noindent" >Now the model is created and all settings for the code generator, compiler and linker are +done. + + </p> -<!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch11.html" >next</a>] [<a +<!--l. 48--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse44.html" >next</a>] [<a href="etrice-docse42.html" >prev</a>] [<a href="etrice-docse42.html#tailetrice-docse42.html" >prev-tail</a>] [<a href="etrice-docse43.html" >front</a>] [<a -href="etrice-docch10.html#etrice-docse43.html" >up</a>] </p></div> -<!--l. 1--><p class="noindent" ><a - id="tailetrice-docse43.html"></a> </p> +href="etrice-docch11.html#etrice-docse43.html" >up</a>] </p></div> +<!--l. 48--><p class="noindent" ><a + id="tailetrice-docse43.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse44.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse44.html index 78f216b18..0baabfd7b 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse44.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse44.html @@ -4,55 +4,71 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Overview</title> +<head><title>Create your own data type</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +<!--l. 48--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse45.html" >next</a>] [<a -href="etrice-docch11.html" >prev</a>] [<a -href="etrice-docch11.html#tailetrice-docch11.html" >prev-tail</a>] [<a +href="etrice-docse43.html" >prev</a>] [<a +href="etrice-docse43.html#tailetrice-docse43.html" >prev-tail</a>] [<a href="#tailetrice-docse44.html">tail</a>] [<a href="etrice-docch11.html#etrice-docse44.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.1 </span> <a - id="x57-10000011.1"></a>Overview</h3> -<!--l. 5--><p class="noindent" >eTrice now provides a new feature of automatic layout of the ROOM diagrams in its -graphical editors. This helps in improving the pragmatics of the diagrams and -frees the user from the burden of manually lay-outing the diagrams on the -canvas. -</p><!--l. 7--><p class="noindent" >The automatic lay-outing has been provided with the help of the well known -KIELER framework, which focuses on the pragmatics of model-based system design, -which can improve comprehensibility of diagrams, improve development and -maintenance time, and improve the analysis of dynamic behavior. -</p><!--l. 9--><p class="noindent" >This chapter will answer the following questions </p> - <ul class="itemize1"> - <li class="itemize"><a -href="etrice-docse45.html#x58-10100011.2">”How to perform automatic layout in the graphical editors of eTrice?”</a> - </li> - <li class="itemize"><a -href="etrice-docse46.html#x59-10200011.3">”What are layout options?”</a> - </li> - <li class="itemize"><a -href="etrice-docse47.html#x60-10300011.4">”How to configure the layout options to alter the diagram layout as - desired?”</a></li></ul> -<!--l. 16--><p class="noindent" >Moreover, some <a -href="etrice-docse48.html#x61-10800011.5">”special layout options”</a> will also be discussed. - - - +<h3 class="sectionHead"><span class="titlemark">11.3 </span> <a + id="x57-7300011.3"></a>Create your own data type</h3> +<!--l. 50--><p class="noindent" >The planed application should read a C source file and remove the comments. Therefore we need +a file descriptor which is not part of the basic C types. The type for the file descriptor for +MinGW is <span +class="ecti-1000">FILE</span>. To make this type available on the model level, you have to declare the +type. +</p><!--l. 52--><p class="noindent" >Open the file <span +class="ecti-1000">Types.room </span>from <span +class="ecti-1000">org.eclipse.modellib.c </span>and take a look at the declaration of <span +class="ecti-1000">string </span>(last +line) which is not a basic C type. +</p><!--l. 54--><p class="noindent" ><span +class="ecti-1000">PrimitiveType string:ptCharacter -> charPtr default "0"</span> +</p><!--l. 56--><p class="noindent" >With this declaration, you make the <span +class="ecti-1000">string </span>keyword available on model level as a primitive type. This +type will be translated to <span +class="ecti-1000">charPtr </span>in your C sources. <span +class="ecti-1000">charPtr </span>is defined in <span +class="ecti-1000">etDatatypes.h</span>. This header file +is platform specific (<span +class="ecti-1000">generic</span>). With this mechanism you can define your own type system on model level +and map the model types to specific target/platform types. +</p><!--l. 58--><p class="noindent" >To not interfere with other models, we will declare the type direct in the model. Add the following line to +your model: + + </p> -<!--l. 18--><div class="crosslinks"><p class="noindent">[<a +<div class="verbatim" id="verbatim-20"> +RoomModel RemoveComment { + <br />import room.basic.types.* from + <br />"../../../org.eclipse.etrice.modellib.c/model/Types.room" + <br /> + <br />PrimitiveType file:ptInteger -> FILE default "0" +</div> +<!--l. 68--><p class="nopar" > +</p><!--l. 71--><p class="noindent" ><span +class="ecti-1000">FILE </span>is the native type for MinGW. Therefore you don’t need a mapping within <span +class="ecti-1000">etDatatypes.h</span>. If your +model should be portable across different platforms you should not take this shortcut. + + +</p> +<!--l. 73--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse45.html" >next</a>] [<a -href="etrice-docch11.html" >prev</a>] [<a -href="etrice-docch11.html#tailetrice-docch11.html" >prev-tail</a>] [<a +href="etrice-docse43.html" >prev</a>] [<a +href="etrice-docse43.html#tailetrice-docse43.html" >prev-tail</a>] [<a href="etrice-docse44.html" >front</a>] [<a href="etrice-docch11.html#etrice-docse44.html" >up</a>] </p></div> -<!--l. 18--><p class="noindent" ><a +<!--l. 73--><p class="noindent" ><a id="tailetrice-docse44.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse45.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse45.html index 1c565b711..ca8d28809 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse45.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse45.html @@ -4,44 +4,82 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Performing Automatic Layout</title> +<head><title>Create the model</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 18--><div class="crosslinks"><p class="noindent">[<a +<!--l. 73--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse46.html" >next</a>] [<a href="etrice-docse44.html" >prev</a>] [<a href="etrice-docse44.html#tailetrice-docse44.html" >prev-tail</a>] [<a href="#tailetrice-docse45.html">tail</a>] [<a href="etrice-docch11.html#etrice-docse45.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.2 </span> <a - id="x58-10100011.2"></a>Performing Automatic Layout</h3> -<!--l. 21--><p class="noindent" >Automatic layout could be performed in eTrice graphical editors using the command -to layout the current diagram. -</p><!--l. 23--><p class="noindent" >This command is available in </p> +<h3 class="sectionHead"><span class="titlemark">11.4 </span> <a + id="x58-7400011.4"></a>Create the model</h3> +<!--l. 75--><p class="noindent" >Due to the former tutorials you should be familiar with the steps to create the model with protocols, +actors and state machines. +</p><!--l. 77--><p class="noindent" >The basic idea of the exercise is to create a file reader actor, which is responsible to open, close and read +characters from the source file. Another actor receives the characters and filters the comments (parser). +The remaining characters (pure source code) should be print out. +</p><!--l. 79--><p class="noindent" >Remember the logical steps: </p> <ul class="itemize1"> - <li class="itemize">The context menu of the diagrams + <li class="itemize">create the model by the help of content assist (CTRL Space) </li> - <li class="itemize">Using the <span -class="ecti-1000">Ctrl+R L </span>shortcut.</li></ul> -<!--l. 29--><p class="noindent" >Additionally, an entry in the context menu allows to layout only a selected part of -the diagram. - - - + <li class="itemize">name the model, subsystem and top level actor + </li> + <li class="itemize">define the protocol (in this case it should be able to send a char, and to request the next char + from the file reader) + </li> + <li class="itemize">create the structure (file reader and parser with an appropriate port, create the references + and connect the ports) + </li> + <li class="itemize">create the state machines</li></ul> +<!--l. 88--><p class="noindent" >Try to create the model by yourself and take the following solution as an example. +</p><!--l. 90--><p class="noindent" >Structure: +</p><!--l. 92--><p class="noindent" ><img +src="images/036-RemoveCommentC04.png" alt="PIC" + /> +</p><!--l. 95--><p class="noindent" >File reader FSM: +</p><!--l. 97--><p class="noindent" ><img +src="images/036-RemoveCommentC05.png" alt="PIC" + /> +</p><!--l. 100--><p class="noindent" >Parser FSM: +</p><!--l. 102--><p class="noindent" ><img +src="images/036-RemoveCommentC06.png" alt="PIC" + /> +</p><!--l. 105--><p class="noindent" >The complete model can be found in <span +class="ecti-1000">org.eclipse.etrice.tutorials.c</span> +</p><!--l. 107--><p class="noindent" >Take a look at the file attribute of the file reader. + + +</p> +<div class="verbatim" id="verbatim-21"> +Attribute f:file ref +</div> +<!--l. 111--><p class="nopar" > +</p><!--l. 113--><p class="noindent" ><span +class="ecti-1000">fopen </span>expects a <span +class="ecti-1000">FILE *</span>. <span +class="ecti-1000">f:file ref </span>declares a variable <span +class="ecti-1000">f </span>from type reference to <span +class="ecti-1000">file</span>, which is a pointer to +<span +class="ecti-1000">FILE</span>. + + </p> -<!--l. 31--><div class="crosslinks"><p class="noindent">[<a +<!--l. 116--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse46.html" >next</a>] [<a href="etrice-docse44.html" >prev</a>] [<a href="etrice-docse44.html#tailetrice-docse44.html" >prev-tail</a>] [<a href="etrice-docse45.html" >front</a>] [<a href="etrice-docch11.html#etrice-docse45.html" >up</a>] </p></div> -<!--l. 31--><p class="noindent" ><a +<!--l. 116--><p class="noindent" ><a id="tailetrice-docse45.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse46.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse46.html index f970bcd3d..4cb36b5be 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse46.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse46.html @@ -4,48 +4,44 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Layout Options</title> +<head><title>Generate, build and run the model</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 31--><div class="crosslinks"><p class="noindent">[<a +<!--l. 116--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse47.html" >next</a>] [<a href="etrice-docse45.html" >prev</a>] [<a href="etrice-docse45.html#tailetrice-docse45.html" >prev-tail</a>] [<a href="#tailetrice-docse46.html">tail</a>] [<a href="etrice-docch11.html#etrice-docse46.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.3 </span> <a - id="x59-10200011.3"></a>Layout Options</h3> -<!--l. 34--><p class="noindent" >A layout option is a customization point for the layout algorithms, with a specific -data type and optionally a default value, used to affect how the active layout -algorithm computes concrete coordinates for the graph elements. -</p><!--l. 36--><p class="noindent" >User-configurable layout options for a particular diagram object can be viewed and -configured through the Layout View.The Layout View can be opened from the -context menu of a selected diagram object by clicking the <span -class="ecti-1000">Show Layout View</span> -entry. -</p><!--l. 38--><p class="noindent" >On opening the layout view, and selecting any layout option, a description of -the layout option is available in the footer of eclipse SDK. This is shown -below: -</p><!--l. 40--><p class="noindent" ><img -src="images/043-LayoutOptionDescription.png" alt="PIC" +<h3 class="sectionHead"><span class="titlemark">11.5 </span> <a + id="x59-7500011.5"></a>Generate, build and run the model</h3> +<!--l. 118--><p class="noindent" >Before you can run the model you should copy one of the generated C source files into the project folder +and name it <span +class="ecti-1000">test.txt</span>. +</p><!--l. 120--><p class="noindent" ><img +src="images/036-RemoveCommentC07.png" alt="PIC" /> - - - +</p><!--l. 123--><p class="noindent" >Generate, build and run the model. +</p><!--l. 125--><p class="noindent" >Your output should start like this: +</p><!--l. 127--><p class="noindent" ><img +src="images/036-RemoveCommentC08.png" alt="PIC" + /> + + </p> -<!--l. 43--><div class="crosslinks"><p class="noindent">[<a +<!--l. 131--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse47.html" >next</a>] [<a href="etrice-docse45.html" >prev</a>] [<a href="etrice-docse45.html#tailetrice-docse45.html" >prev-tail</a>] [<a href="etrice-docse46.html" >front</a>] [<a href="etrice-docch11.html#etrice-docse46.html" >up</a>] </p></div> -<!--l. 43--><p class="noindent" ><a +<!--l. 131--><p class="noindent" ><a id="tailetrice-docse46.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse47.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse47.html index 682ad5505..2510c1b4e 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse47.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse47.html @@ -4,198 +4,41 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Configuring Layout Options</title> +<head><title>Summary</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 43--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse48.html" >next</a>] [<a +<!--l. 131--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch12.html" >next</a>] [<a href="etrice-docse46.html" >prev</a>] [<a href="etrice-docse46.html#tailetrice-docse46.html" >prev-tail</a>] [<a href="#tailetrice-docse47.html">tail</a>] [<a href="etrice-docch11.html#etrice-docse47.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.4 </span> <a - id="x60-10300011.4"></a>Configuring Layout Options</h3> -<!--l. 46--><p class="noindent" >The values of the layout options for a particular diagram object (in the visible -diagram) can be changed using the Layout View of that diagram object. The initial -values are the predefined *default* values. These defaults can be changed using the -context menu in Layout View as well as the Layout preference pages provided by -eTrice. -</p><!--l. 48--><p class="noindent" > +<h3 class="sectionHead"><span class="titlemark">11.6 </span> <a + id="x60-7600011.6"></a>Summary</h3> +<!--l. 133--><p class="noindent" >This tutorial should help you to train the necessary steps to create a C model. By the way you have seen +how to create your own type system for a real embedded project. An additional aspect was to show how +simple it is to separate different aspects of the required functionality by the use of actors and protocols +and make them reusable. + + + + + + </p> -<h4 class="subsectionHead"><span class="titlemark">11.4.1 </span> <a - id="x60-10400011.4.1"></a>The Layout View</h4> -<!--l. 51--><p class="noindent" ><img -src="images/043-LayoutView.png" alt="PIC" - /> -</p><!--l. 54--><p class="noindent" >The Layout view allows flexible customization of layout options for the selected -objects in the eTrice diagram. If no object is selected, the view shows the options for -the top-level container of the diagram. Options are stored persistently in diagram file -(*.structure file / *.behavior file) of the eTrice diagram, so that they are still -available after the next Eclipse restart. Of course this requires the diagram to be -saved after an option was changed. -</p><!--l. 56--><p class="noindent" >The options are grouped according to the function of the selected objects. The group -Nodes (respectively Edges, Ports, or Labels) contains options related to the object -itself, such as its size or priority, while the group Parents contains options for the -elements contained in the selected objects, such as the applied layout algorithm or -the spacing between elements. Which layout options are displayed depends on -the types of selected objects and the active layout algorithm, since each -algorithm supports only a subset of the available options. Furthermore, some -options are only visible if the <span -class="ecti-1000">Show Advanced Properties </span>button in the view -toolbar is activated. The group types can be hidden using the Show Categories -button. -</p><!--l. 58--><p class="noindent" >An option can be changed by selecting or entering a new value in the corresponding -cell of the Value column. -</p><!--l. 60--><p class="noindent" >The most important option is Layout Algorithm, which is used to determine the -layout algorithm for the contents of the selected element. Here either a specific layout -algorithm or a layout type can be chosen; in the latter case, the most suitable layout -algorithm of the given type is taken. By changing the active layout algorithm, the -content of the layout view is updated to display only those options that are -supported by the new layout algorithm. - - - -</p><!--l. 62--><p class="noindent" >Selecting Restore Default Value in the context menu or the view toolbar removes any -value for the currently selected option that is stored in the current model file, thus -resetting the option to its default value. The view menu has an entry Remove all -Layout Options which resets all options of the current model by removing persistent -data in the model file. -</p><!--l. 64--><p class="noindent" ><img -src="images/043-ContextMenu.png" alt="PIC" - /> -</p><!--l. 67--><p class="noindent" >The context menu for a specific layout option has different alternatives to set the -currently active value as <span -class="ecbx-1000">default </span>value: </p> - <ul class="itemize1"> - <li class="itemize"><span -class="ecti-1000">Set as Default for this Diagram</span>: Changes the open diagram file so that the - same value is applied to all similar objects (edit parts) of that diagram. - </li> - <li class="itemize"><span -class="ecti-1000">Set as Default for ... in this Context</span>: Applies the value to all similar - objects that are displayed with the any of the eTrice editors (the option - is linked to the edit part class of the selected object). - </li> - <li class="itemize"><span -class="ecti-1000">Set as Default for all ...</span>: Links the option value with the domain model - element or the diagram type of the selected object (see the context menu - depicted above).</li></ul> -<!--l. 76--><p class="noindent" >These four alternatives have different priorities: if present, the default value for the -current diagram is taken first, then the default value for the edit part is checked, then -the default value for the domain model element, and then the default value for the -diagram type. -</p><!--l. 78--><p class="noindent" >Tips: </p> - <ul class="itemize1"> - <li class="itemize">The information button of the view toolbar can be used to display some - useful details on the current selection, such as the edit part and domain - model classes. - </li> - <li class="itemize">Default values for layout options can most easily be manipulated based - on the eTrice domain model elements.</li></ul> -<!--l. 84--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">11.4.2 </span> <a - id="x60-10500011.4.2"></a>Preference Page</h4> -<!--l. 87--><p class="noindent" >The user-defined *default* values for layout options can also be set using the -preference pages provided in eTrice. Three preference pages have been provided for -this purpose </p> - <ul class="itemize1"> - <li class="itemize"><span -class="ecti-1000">Layout</span>: for general preferences regarding layout - - - - </li> - <li class="itemize"><span -class="ecti-1000">Behavior</span>: for setting default values of layout options for eTrice behavior - diagrams - </li> - <li class="itemize"><span -class="ecti-1000">Structure</span>: for setting default values of layout options for eTrice structure - diagrams</li></ul> -<!--l. 94--><p class="noindent" >These preference pages can be accessed via <span -class="ecti-1000">Windows > Preferences > eTrice ></span> -<span -class="ecti-1000">Layout</span>. -</p><!--l. 96--><p class="noindent" >Note that the contents of these preference pages are in sync with the <span -class="ecti-1000">KIELER ></span> -<span -class="ecti-1000">Layout </span>preference page provided by the KIELER. Relevant entries in the <span -class="ecti-1000">KIELER ></span> -<span -class="ecti-1000">Layout </span>page are shown in the above preference pages. -</p><!--l. 98--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x60-10600011.4.2"></a><span -class="ecti-1000">Layout </span>Preference Page</h5> -<!--l. 101--><p class="noindent" >The <span -class="ecti-1000">Layout </span>preference page is meant to configure general options regarding the -layout. -</p><!--l. 103--><p class="noindent" >If <span -class="ecti-1000">Set routing style of all edges to oblique </span>is active, all routing styles and smoothness -settings of edges are removed when automatic layout is performed. Since most -layouters compute the routing of edges as part of their algorithm, these styles usually -do not yield the expected results. -</p><!--l. 105--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x60-10700011.4.2"></a><span -class="ecti-1000">Behavior </span>and <span -class="ecti-1000">Structure </span>Preference Page</h5> -<!--l. 108--><p class="noindent" >The <span -class="ecti-1000">Behavior </span>and <span -class="ecti-1000">Structure </span>sub-preference pages help in setting up the default -values of layout options in behavior and structure diagrams respectively. -</p><!--l. 110--><p class="noindent" >The <span -class="ecti-1000">Default Layout Option Values </span>table is used to manage the default setting for -layout options, which can also be modified with the context menu of the -layout view (see above). All user-defined settings are displayed here, and the -buttons on the right of the table serve to create, edit, and remove entries. The -Type column shows the type of element the option is linked with: either edit -part, model element, or diagram type. The Element column shows the class -name for options that relate to edit parts or domain model elements, and -the diagram type name for options that relate to diagram types. Option is -the name of the layout option, and Value is the currently set value of the -option. -</p><!--l. 112--><p class="noindent" >Creating a new entry requires the selection of the type of related element and -entering its class name or identifier. Class names of edit parts can be explored using -the information button of the layout view, while the class names for the -domain model elements and the diagram type identifiers for the diagram -types can be selected with the Browse button. After that, a layout option - - - -has to be selected from the list using the corresponding Browse button. -Hitting OK creates an entry, and its value can then be set using the Edit -button. -</p><!--l. 114--><p class="noindent" ><img -src="images/043-PreferencePage.png" alt="PIC" - /> -</p><!--l. 117--><p class="noindent" >Note that the <span -class="ecti-1000">Behavior </span>preference page will show only those entries which hold for -the behavior diagrams. Moreover, it will allow setting default values of layout options -for only those domain model elements and diagram types which could be present in -the behavior editor diagrams. Similar thing holds for the <span -class="ecti-1000">Structure </span>preference -page. - - - -</p> -<!--l. 119--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse48.html" >next</a>] [<a +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch12.html" >next</a>] [<a href="etrice-docse46.html" >prev</a>] [<a href="etrice-docse46.html#tailetrice-docse46.html" >prev-tail</a>] [<a href="etrice-docse47.html" >front</a>] [<a href="etrice-docch11.html#etrice-docse47.html" >up</a>] </p></div> -<!--l. 119--><p class="noindent" ><a - id="tailetrice-docse47.html"></a> </p> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse47.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse48.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse48.html index b04bca251..d29c0b764 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse48.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse48.html @@ -4,83 +4,226 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Special Layout Options</title> +<head><title>Actors</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 119--><div class="crosslinks"><p class="noindent">[<a +<!--l. 6--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse49.html" >next</a>] [<a -href="etrice-docse47.html" >prev</a>] [<a -href="etrice-docse47.html#tailetrice-docse47.html" >prev-tail</a>] [<a +href="etrice-docch12.html" >prev</a>] [<a +href="etrice-docch12.html#tailetrice-docch12.html" >prev-tail</a>] [<a href="#tailetrice-docse48.html">tail</a>] [<a -href="etrice-docch11.html#etrice-docse48.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.5 </span> <a - id="x61-10800011.5"></a>Special Layout Options</h3> -<!--l. 122--><p class="noindent" >While most layout options are used to affect how the active layout algorithm -computes concrete coordinates for the graph elements, there are some layout options -that have a special role. -</p><!--l. 124--><p class="noindent" > +href="etrice-docch12.html#etrice-docse48.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">12.1 </span> <a + id="x62-7800012.1"></a>Actors</h3> +<!--l. 8--><p class="noindent" > </p> -<h4 class="subsectionHead"><span class="titlemark">11.5.1 </span> <a - id="x61-10900011.5.1"></a>Layout Algorithm</h4> -<!--l. 127--><p class="noindent" >The option with identifier de.cau.cs.kieler.algorithm specifies which layout algorithm -to use for the content of a composite node. The value can be either the identifier of a -layout algorithm or the identifier of a layout type. In the latter case the algorithm -with highest priority of that type is applied. -</p><!--l. 129--><p class="noindent" >For the purpose of automatic diagram layout in eTrice, we use the <span -class="ecti-1000">Layered</span> -algorithms which are meant for lay-outing hierarchical diagrams and are best suited -for behavior and structure diagrams in eTrice. For the behavior diagrams we have -used the <span -class="ecti-1000">Graphviz Dot </span>algorithm whereas for the structure diagrams we have used -the <span -class="ecti-1000">KLay Layered </span>algorithm. Though the layout algorithm being used for -performing layout can be changed at ones own will, it is recommended to use the -defaults. -</p><!--l. 131--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">12.1.1 </span> <a + id="x62-7900012.1.1"></a>Description</h4> + + +<!--l. 10--><p class="noindent" >The actor is the basic structural building block for building systems with ROOM. An actor can be refined +hierarchically and thus can be of arbitrarily large scope. Ports define the interface of an actor. An Actor +can also have a behavior usually defined by a finite state machine. +</p><!--l. 12--><p class="noindent" > </p> -<h4 class="subsectionHead"><span class="titlemark">11.5.2 </span> <a - id="x61-11000011.5.2"></a>Diagram Type</h4> -<!--l. 134--><p class="noindent" >Diagram types are used to classify graphical diagrams for setting default layout -option values for a set of similar diagrams. The diagram type of an element is -specified with the layout option de.cau.cs.kieler.diagramType. Thus, these help -in -</p><!--l. 136--><p class="noindent" >The following diagram types have been defined and used in eTrice: </p> +<h4 class="subsectionHead"><span class="titlemark">12.1.2 </span> <a + id="x62-8000012.1.2"></a>Motivation</h4> <ul class="itemize1"> + <li class="itemize">Actors enable the construction of hierarchical structures by composition and layering + </li> + <li class="itemize">Actors have their own logical thread of execution + </li> + <li class="itemize">Actors can be freely deployed + </li> + <li class="itemize">Actors define potentially reusable blocks</li></ul> +<!--l. 21--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.1.3 </span> <a + id="x62-8100012.1.3"></a>Notation</h4> +<div class="table"> + + +<!--l. 25--><p class="noindent" ><a + id="x62-810011"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.1: </span><span +class="content">Actor Class Notation</span></div><!--tex4ht:label?: x62-810011 --> +<div class="tabular"> <table id="TBL-3" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-3-1g"><col +id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col +id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col +id="TBL-3-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1" +class="td11"> <span +class="ecbx-1000">Element </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1" +class="td11"> ActorClass </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2" +class="td11"> <img +src="images/040-ActorClassNotation.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3" +class="td11"> <img +src="images/040-ActorClassTextualNotation.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1" +class="td11"> ActorRef </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2" +class="td11"> <img +src="images/040-ActorReferenceNotation.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3" +class="td11"> <img +src="images/040-ActorReferenceTextualNotation.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1" +class="td11"> </td></tr></table></div> + + +</div><hr class="endfloat" /> +</div> +<h4 class="subsectionHead"><span class="titlemark">12.1.4 </span> <a + id="x62-8200012.1.4"></a>Details</h4> +<!--l. 55--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x62-8300012.1.4"></a>Actor Classes, Actor References, Ports and Bindings</h5> +<!--l. 57--><p class="noindent" >An <span +class="ecbx-1000">ActorClass </span>defines the type (or blueprint) of an actor. Hierarchies are built by ActorClasses that +contain <span +class="ecbx-1000">ActorReferences </span>which have another ActorClass as type. The interface of an ActorClass is +always defined by Ports. The ActorClass can also contain Attributes, Operations and a finite state +machine. +</p><!--l. 59--><p class="noindent" ><span +class="ecbx-1000">External Ports </span>define the external interface of an actor and are defined in the *Interface* section of the +ActorClass. +</p><!--l. 61--><p class="noindent" ><span +class="ecbx-1000">Internal Ports </span>define the internal interface of an actor and are defined in the *Structure* section of the +ActorClass. +</p><!--l. 63--><p class="noindent" ><span +class="ecbx-1000">Bindings </span>connect Ports inside an ActorClass. +</p><!--l. 65--><p class="noindent" >Example: +</p> +<div class="table"> + + +<!--l. 68--><p class="noindent" ><a + id="x62-830012"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.2: </span><span +class="content">Actor Class Example</span></div><!--tex4ht:label?: x62-830012 --> +<div class="tabular"> <table id="TBL-4" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-4-1g"><col +id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col +id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col +id="TBL-4-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1" +class="td11"> <img +src="images/040-ActorClass.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2" +class="td11"> <img +src="images/040-ActorClassExampleTextualNotation.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1" +class="td11"> </td></tr></table> +</div> + + +</div><hr class="endfloat" /> +</div> + <ul class="itemize1"> + <li class="itemize"><span +class="ecbx-1000">ActorClass1 </span>contains two ActorReferences (of ActorClass2 and ActorClass3) + </li> + <li class="itemize"><span +class="ecti-1000">port1 </span>is a <span +class="ecbx-1000">External End Port</span>. Since it connects external Actors with the behavior of + the ActorClass, it is defined in the <span +class="ecbx-1000">Interface </span>section and the <span +class="ecbx-1000">Structure </span>section of the + ActorClass. + </li> + <li class="itemize"><span +class="ecti-1000">port2 </span>and <span +class="ecti-1000">port3 </span>are <span +class="ecbx-1000">Internal End Ports </span>and can only be connected to the ports of contained + ActorReferences. Internal End Ports connect the Behavior of an ActorClass with its contained + ActorReferences. + </li> <li class="itemize"><span -class="ecti-1000">General </span>- This type is automatically assigned to all diagrams for which - no specific type is declared. (Predefined in KIELER) - - - +class="ecti-1000">port4 </span>is a relay port and connects external Actors to contained ActorReferences. This port + can not be accessed by the behavior of the ActorClass. </li> <li class="itemize"><span -class="ecti-1000">eTrice Behavior Diagrams </span>- This type has been assigned to the diagram - objects in eTrice Behavior Diagrams. +class="ecti-1000">port5 </span>through <span +class="ecti-1000">port9 </span>are Ports of contained ActorReferences. <span +class="ecti-1000">port8 </span>and <span +class="ecti-1000">port9 </span>can + communicate without interference with the containing ActorClass. </li> <li class="itemize"><span -class="ecti-1000">eTrice Structure Diagrams </span>- This type has been assigned to the diagram - objects in eTrice Structurer Diagrams.</li></ul> -<!--l. 142--><p class="noindent" >Note that not all diagrams objects in the behavior and structure diagrams are -assigned the last two diagram types. Only the top-level container and the -visible bounding box has been assigned these diagram types in respective -editors. - - - +class="ecbx-1000">Bindings </span>can connect ports of the ActorClass and its contained ActorReferences.</li></ul> +<h5 class="subsubsectionHead"><a + id="x62-8400012.1.4"></a>Attributes</h5> +<!--l. 98--><p class="noindent" >Attributes are part of the Structure of an ActorClass. They can be of a PrimitiveType or a +DataClass. +</p><!--l. 100--><p class="noindent" >Example: +</p><!--l. 102--><p class="noindent" ><img +src="images/040-ActorClassAttributes.png" alt="PIC" + /> +</p><!--l. 105--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x62-8500012.1.4"></a>Operations</h5> +<!--l. 107--><p class="noindent" >Operations are part of the Behavior of an ActorClass. Arguments and return values can be of a +PrimitiveType or a DataClass. DataClasses can be passed by value (implicit) or by reference (keyword +<span +class="ecbx-1000">ref</span>). +</p><!--l. 109--><p class="noindent" >Example: +</p><!--l. 111--><p class="noindent" ><img +src="images/040-ActorClassOperations.png" alt="PIC" + /> + + </p> -<!--l. 144--><div class="crosslinks"><p class="noindent">[<a +<!--l. 114--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse49.html" >next</a>] [<a -href="etrice-docse47.html" >prev</a>] [<a -href="etrice-docse47.html#tailetrice-docse47.html" >prev-tail</a>] [<a +href="etrice-docch12.html" >prev</a>] [<a +href="etrice-docch12.html#tailetrice-docch12.html" >prev-tail</a>] [<a href="etrice-docse48.html" >front</a>] [<a -href="etrice-docch11.html#etrice-docse48.html" >up</a>] </p></div> -<!--l. 144--><p class="noindent" ><a - id="tailetrice-docse48.html"></a> </p> +href="etrice-docch12.html#etrice-docse48.html" >up</a>] </p></div> +<!--l. 114--><p class="noindent" ><a + id="tailetrice-docse48.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse49.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse49.html index b13e1ddfa..392537f9c 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse49.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse49.html @@ -4,47 +4,57 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Further References</title> +<head><title>Protocols</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 144--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch12.html" >next</a>] [<a +<!--l. 114--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse50.html" >next</a>] [<a href="etrice-docse48.html" >prev</a>] [<a href="etrice-docse48.html#tailetrice-docse48.html" >prev-tail</a>] [<a href="#tailetrice-docse49.html">tail</a>] [<a -href="etrice-docch11.html#etrice-docse49.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">11.6 </span> <a - id="x62-11100011.6"></a>Further References</h3> -<!--l. 147--><p class="noindent" >Most parts of the above documentation have been taken from the "KIML -wiki":http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078 -and have been modified for automatic layout in eTrice. A more detailed description -about the layout algorithms, predefined diagram types and the internal structure of -KIELER Infrastructure for Meta-Layout(KIML) can be found at the "KIML -wiki":http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078 -. - - - - - - - - - +href="etrice-docch12.html#etrice-docse49.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">12.2 </span> <a + id="x63-8600012.2"></a>Protocols</h3> +<!--l. 116--><p class="noindent" > </p> -<!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch12.html" >next</a>] [<a +<h4 class="subsectionHead"><span class="titlemark">12.2.1 </span> <a + id="x63-8700012.2.1"></a>Description</h4> +<!--l. 118--><p class="noindent" >A ProtocolClass defines a set of incoming and outgoing messages that can be exchanged between two +ports. The exact semantics of a message is defined by the execution model. +</p><!--l. 121--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.2.2 </span> <a + id="x63-8800012.2.2"></a>Motivation</h4> + <ul class="itemize1"> + <li class="itemize">ProtocolClasses provide a reusable interface specification for ports + </li> + <li class="itemize">ProtocolClasses can optionally specify valid message exchange sequences</li></ul> +<!--l. 128--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.2.3 </span> <a + id="x63-8900012.2.3"></a>Notation</h4> +<!--l. 130--><p class="noindent" >ProtocolClasses have only textual notation. The example defines a ProtocolClass with 2 incoming and +two outgoing messages. Messages can have data attached. The data can be of a primitive type (e.g. int32, +float64, ...) or a DataClass. +</p><!--l. 133--><p class="noindent" ><img +src="images/040-ProtocolClassTextualNotation.png" alt="PIC" + /> + + +</p> +<!--l. 136--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse50.html" >next</a>] [<a href="etrice-docse48.html" >prev</a>] [<a href="etrice-docse48.html#tailetrice-docse48.html" >prev-tail</a>] [<a href="etrice-docse49.html" >front</a>] [<a -href="etrice-docch11.html#etrice-docse49.html" >up</a>] </p></div> -<!--l. 1--><p class="noindent" ><a +href="etrice-docch12.html#etrice-docse49.html" >up</a>] </p></div> +<!--l. 136--><p class="noindent" ><a id="tailetrice-docse49.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html index 7d3f35efd..3bf3e4771 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse5.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,103 +22,91 @@ href="#tailetrice-docse5.html">tail</a>] [<a href="etrice-docch2.html#etrice-docse5.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">2.3 </span> <a id="x9-170002.3"></a>Execution Models</h3> -<!--l. 163--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define -the way the actors are executed and communicate with each other. The combination -of communication and execution is called the Execution Model. Currently the eTrice -tooling only supports the <span -class="ecbx-1000">message driven </span>and parts of the <span -class="ecbx-1000">data driven </span>execution -model. In future releases more execution models will be supported, depending on the -requirements of the community. +<!--l. 163--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define the way the actors +are executed and communicate with each other. The combination of communication and execution is +called the Execution Model. Currently the eTrice tooling only supports the <span +class="ecbx-1000">message driven </span>and parts of +the <span +class="ecbx-1000">data driven </span>execution model. In future releases more execution models will be supported, depending +on the requirements of the community. </p><!--l. 166--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.3.1 </span> <a id="x9-180002.3.1"></a>Communication Methods</h4> <ul class="itemize1"> <li class="itemize"><span -class="ecbx-1000">message driven </span>(asynchronous, non blocking, no return value): Usually - the message driven communication is implemented with message queues. - Message queues are inherently asynchronous and enable a very good - decoupling of the communicating parties. +class="ecbx-1000">message driven </span>(asynchronous, non blocking, no return value): Usually the message + driven communication is implemented with message queues. Message queues are inherently + asynchronous and enable a very good decoupling of the communicating parties. </li> <li class="itemize"><span -class="ecbx-1000">data driven </span>(asynchronous, non blocking, no return value): In data driven - communication sender and receiver often have a shared block of data. The - sender writes the data and the receiver polls the data. +class="ecbx-1000">data driven </span>(asynchronous, non blocking, no return value): In data driven communication + sender and receiver often have a shared block of data. The sender writes the data and the + receiver polls the data. </li> <li class="itemize"><span -class="ecbx-1000">function call </span>(synchronous, blocking, return value): Regular function call - as known in most programming languages.</li></ul> +class="ecbx-1000">function call </span>(synchronous, blocking, return value): Regular function call as known in most + programming languages.</li></ul> <!--l. 174--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.3.2 </span> <a id="x9-190002.3.2"></a>Execution Methods</h4> - - - <ul class="itemize1"> <li class="itemize"><span -class="ecbx-1000">execution by receive event</span>: The message queue or the event dispatcher - calls a <span -class="ecbx-1000">receive event </span>function of the message receiver an thereby executes - the processing of the event. +class="ecbx-1000">execution by receive event</span>: The message queue or the event dispatcher calls a <span +class="ecbx-1000">receive</span> + <span +class="ecbx-1000">event </span>function of the message receiver an thereby executes the processing of the event. </li> <li class="itemize"><span class="ecbx-1000">polled execution</span>: The objects are processed by a cyclic <span class="ecbx-1000">execute </span>call </li> <li class="itemize"><span -class="ecbx-1000">execution by function call</span>: The caller executes the called object via - function call</li></ul> +class="ecbx-1000">execution by function call</span>: The caller executes the called object via function call</li></ul> + + <!--l. 182--><p class="noindent" > </p> <h4 class="subsectionHead"><span class="titlemark">2.3.3 </span> <a id="x9-200002.3.3"></a>Execution Models</h4> -<!--l. 184--><p class="noindent" >In todays embedded systems in most cases one or several of the following execution -models are used: +<!--l. 184--><p class="noindent" >In todays embedded systems in most cases one or several of the following execution models are +used: </p><!--l. 186--><p class="noindent" > </p> <h5 class="subsubsectionHead"><a id="x9-210002.3.3"></a>message driven</h5> -<!--l. 188--><p class="noindent" >The message driven execution model is a combination of message driven -communication and execution by receive event. This model allows for distributed -systems with a very high throughput. It can be deterministic but the determinism is -hard to proof. This execution model is often found in telecommunication systems and -high performance automation control systems. +<!--l. 188--><p class="noindent" >The message driven execution model is a combination of message driven communication and execution by +receive event. This model allows for distributed systems with a very high throughput. It can be +deterministic but the determinism is hard to proof. This execution model is often found in +telecommunication systems and high performance automation control systems. </p><!--l. 193--><p class="noindent" > </p> <h5 class="subsubsectionHead"><a id="x9-220002.3.3"></a>data driven</h5> -<!--l. 195--><p class="noindent" >The data driven execution model is a combination of data driven communication and -polled execution. This model is highly deterministic and very robust, but the polling -creates a huge performance overhead. The determinism is easy to proof (simple -mathematics). The execution model is also compatible with the execution model of -control software generated by Tools like Matlab(TM) and LabView(TM). This model -is usually used for systems with requirements for safety, such as automotive and -avionic systems. - - - +<!--l. 195--><p class="noindent" >The data driven execution model is a combination of data driven communication and polled execution. +This model is highly deterministic and very robust, but the polling creates a huge performance overhead. +The determinism is easy to proof (simple mathematics). The execution model is also compatible with the +execution model of control software generated by Tools like Matlab(TM) and LabView(TM). This +model is usually used for systems with requirements for safety, such as automotive and avionic +systems. </p><!--l. 201--><p class="noindent" > </p> <h5 class="subsubsectionHead"><a id="x9-230002.3.3"></a>synchronous</h5> <!--l. 203--><p class="noindent" >The synchronous execution model could also be called <span -class="ecbx-1000">simple function calls</span>. This -model is in general not very well suited to support the <span -class="ecbx-1000">run to completion </span>semantic -typical for ROOM models, but could also be generated from ROOM models. With -this execution model also lower levels of a software system, such as device drivers, -could be generated from ROOM models. - - - - - - - - - +class="ecbx-1000">simple function calls</span>. This model is in +general not very well suited to support the <span +class="ecbx-1000">run to completion </span>semantic typical for ROOM +models, but could also be generated from ROOM models. With this execution model also +lower levels of a software system, such as device drivers, could be generated from ROOM +models. + + + + + + </p> <!--l. 1--><div class="crosslinks"><p class="noindent">[<a href="etrice-docch3.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse50.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse50.html index 7df9711c1..fdcdd45c2 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse50.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse50.html @@ -4,51 +4,404 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Codegenerators</title> +<head><title>Ports</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 3--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch13.html" >next</a>] [<a -href="etrice-docch12.html" >prev</a>] [<a -href="etrice-docch12.html#tailetrice-docch12.html" >prev-tail</a>] [<a +<!--l. 136--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse51.html" >next</a>] [<a +href="etrice-docse49.html" >prev</a>] [<a +href="etrice-docse49.html#tailetrice-docse49.html" >prev-tail</a>] [<a href="#tailetrice-docse50.html">tail</a>] [<a href="etrice-docch12.html#etrice-docse50.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">12.1 </span> <a - id="x64-11300012.1"></a>Codegenerators</h3> -<!--l. 5--><p class="noindent" > +<h3 class="sectionHead"><span class="titlemark">12.3 </span> <a + id="x64-9000012.3"></a>Ports</h3> +<!--l. 138--><p class="noindent" > </p> -<h4 class="subsectionHead"><span class="titlemark">12.1.1 </span> <a - id="x64-11400012.1.1"></a>Java Generator</h4> -<!--l. 7--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">12.3.1 </span> <a + id="x64-9100012.3.1"></a>Description</h4> +<!--l. 140--><p class="noindent" >Ports are the only interfaces of actors. A port has always a protocol assigned. Service Access +Points (SAP) and Service Provision Points (SPP) are specialized ports that are used to define +layering. +</p><!--l. 143--><p class="noindent" > </p> -<h4 class="subsectionHead"><span class="titlemark">12.1.2 </span> <a - id="x64-11500012.1.2"></a>C++ Generator</h4> -<!--l. 9--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">12.3.2 </span> <a + id="x64-9200012.3.2"></a>Motivation</h4> + <ul class="itemize1"> + <li class="itemize">Ports decouple interface definition (Protocols) from interface usage + </li> + <li class="itemize">Ports decouple the logical interface from the transport</li></ul> +<!--l. 150--><p class="noindent" > </p> -<h4 class="subsectionHead"><span class="titlemark">12.1.3 </span> <a - id="x64-11600012.1.3"></a>C Generator</h4> - - - - - - - - - -<!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch13.html" >next</a>] [<a -href="etrice-docch12.html" >prev</a>] [<a -href="etrice-docch12.html#tailetrice-docch12.html" >prev-tail</a>] [<a +<h4 class="subsectionHead"><span class="titlemark">12.3.3 </span> <a + id="x64-9300012.3.3"></a>Notation</h4> +<!--l. 152--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x64-9400012.3.3"></a>Class Ports</h5> +<!--l. 154--><p class="noindent" >These symbols can only appear on the border of an actor class symbol. +</p><!--l. 156--><p class="noindent" >Ports that define an external interface of the ActorClass, are defined in the <span +class="ecti-1000">Interface</span>. Ports that define an +internal interface are defined in the <span +class="ecti-1000">Structure </span>(e.g. internal ports). </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ecbx-1000">External End Ports </span>are defined in the Interface and the Structure + </li> + <li class="itemize"><span +class="ecbx-1000">Internal End Ports </span>are only defined in the Structure + + + </li> + <li class="itemize"><span +class="ecbx-1000">Relay Ports </span>are only defined in the Interface + </li> + <li class="itemize"><span +class="ecbx-1000">End Ports </span>are always connected to the internal behavior of the ActorClass + </li> + <li class="itemize"><span +class="ecbx-1000">Replicated Ports </span>can be defined with a fixed replication factor ( e.g. <span +class="ecti-1000">Port port18 [ 5 ]:</span> + <span +class="ecti-1000">ProtocolClass1 </span>) or a variable replication factor (e.g. <span +class="ecti-1000">Port port18[ * ]: ProtocolClass1 </span>)</li></ul> +<div class="table"> +<!--l. 165--><p class="noindent" ><a + id="x64-940013"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.3: </span><span +class="content">Class Port Notation</span></div><!--tex4ht:label?: x64-940013 --> +<a + id="x64-94002r4"></a><!--l. 168--><div class="longtable"> <table id="TBL-5" class="longtable" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-5-1g"><col +id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col +id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col +id="TBL-5-3" /></colgroup> +<tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-1-1" +class="td11"> <!--l. 168--><p class="noindent" ><span +class="ecbx-1000">Element</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-1-3" +class="td11"> <!--l. 168--><p class="noindent" ><span +class="ecbx-1000">Textual Notation</span> </p></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-2-1" +class="td11"> <!--l. 169--><p class="noindent" >Class + End + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-2-2" +class="td11"> <img +src="images/040-ClassEndPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-2-3" +class="td11"> <div class="tabular"> <table id="TBL-6" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-6-1g"><col +id="TBL-6-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-1-1" +class="td11"><span +class="ecbx-1000">External Class End Port:</span></td></tr><tr + style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-2-1" +class="td11"> <img +src="images/040-ClassEndPortTextual.png" alt="PIC" + /></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-3-1" +class="td11"> <span +class="ecbx-1000">Internal Class End Port: </span></td></tr><tr + style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-4-1" +class="td11"> <img +src="images/040-ClassEndPortInternalTextual.png" alt="PIC" + /></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-6-5-1" +class="td11"> </td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-3-1" +class="td11"> <!--l. 170--><p class="noindent" >Conjugated + Class + End + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-3-2" +class="td11"> <img +src="images/040-ConjugatedClassEndPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-3-3" +class="td11"> <div class="tabular"> <table id="TBL-7" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-7-1g"><col +id="TBL-7-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-1-1" +class="td11"><!--l. 170--><p class="noindent" ><span +class="ecbx-1000">External Conjugated Class End</span> +<span +class="ecbx-1000">Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-2-1" +class="td11"><!--l. 170--><p class="noindent" ><img +src="images/040-ConjugatedClassEndPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-3-1" +class="td11"><!--l. 170--><p class="noindent" ><span +class="ecbx-1000">Internal Conjugated Class End</span> +<span +class="ecbx-1000">Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-4-1" +class="td11"><!--l. 170--><p class="noindent" ><img +src="images/040-ConjugatedClassEndPortInternalTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-7-5-1" +class="td11"> </td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-4-1" +class="td11"> <!--l. 171--><p class="noindent" >Class + Relay + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-4-2" +class="td11"> <img +src="images/040-ClassRelayPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-4-3" +class="td11"> <!--l. 171--><p class="noindent" ><img +src="images/040-ClassRelayPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-5-1" +class="td11"> <!--l. 172--><p class="noindent" >Conjugated + Class + Relay + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-5-2" +class="td11"> <img +src="images/040-ConjugatedClassRelayPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-5-3" +class="td11"> <!--l. 172--><p class="noindent" ><img +src="images/040-ConjugatedClassRelayPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-6-1" +class="td11"> <!--l. 173--><p class="noindent" >Replicated + Class + End + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-6-2" +class="td11"> <img +src="images/040-ReplicatedClassEndPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-6-3" +class="td11"> <div class="tabular"> <table id="TBL-8" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-8-1g"><col +id="TBL-8-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-1-1" +class="td11"><!--l. 173--><p class="noindent" ><span +class="ecbx-1000">External Replicated Class End</span> +<span +class="ecbx-1000">Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-2-1" +class="td11"><!--l. 173--><p class="noindent" ><img +src="images/040-ReplicatedClassEndPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-3-1" +class="td11"><!--l. 173--><p class="noindent" ><span +class="ecbx-1000">Internal Replicated Class End</span> +<span +class="ecbx-1000">Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-4-1" +class="td11"><!--l. 173--><p class="noindent" ><img +src="images/040-ReplicatedClassEndPortInternalTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-8-5-1" +class="td11"> </td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-7-1" +class="td11"> <!--l. 174--><p class="noindent" >Conjugated + Replicated + Class + End + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-7-2" +class="td11"> <img +src="images/040-ConjugatedReplicatedClassEndPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-7-3" +class="td11"> <div class="tabular"> <table id="TBL-9" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-9-1g"><col +id="TBL-9-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-1-1" +class="td11"><!--l. 174--><p class="noindent" ><span +class="ecbx-1000">External Conjugated</span> +<span +class="ecbx-1000">Replicated Class End Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-2-1" +class="td11"><!--l. 174--><p class="noindent" ><img +src="images/040-ConjugatedReplicatedClassEndPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-3-1" +class="td11"><!--l. 174--><p class="noindent" ><span +class="ecbx-1000">Internal Conjugated Replicated</span> +<span +class="ecbx-1000">Class End Port:</span> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-4-1" +class="td11"><!--l. 174--><p class="noindent" ><img +src="images/040-ConjugatedReplicatedClassEndPortInternalTextual.png" alt="PIC" + /> </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-9-5-1" +class="td11"> </td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-8-1" +class="td11"> <!--l. 175--><p class="noindent" >Replicated + Class + Relay + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-8-2" +class="td11"> <img +src="images/040-ReplicatedClassRelayPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-8-3" +class="td11"> <!--l. 175--><p class="noindent" ><img +src="images/040-ReplicatedClassRelayPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-9-1" +class="td11"> <!--l. 176--><p class="noindent" >Conjugated + Replicated + Class + Relay + Port </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-5-9-2" +class="td11"> <img +src="images/040-ConjugatedReplicatedClassRelayPort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-9-3" +class="td11"> <!--l. 176--><p class="noindent" ><img +src="images/040-ConjugatedReplicatedClassRelayPortTextual.png" alt="PIC" + /> </p></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-10-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-11-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-12-1" +class="td11"> <!--l. 177--><p class="noindent" > </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-13-1" +class="td11"> <!--l. 177--><p class="noindent" > </p></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-14-1" +class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-5-14-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-5-14-3" +class="td11"></td></tr> +</table></div> + + +</div><hr class="endfloat" /> +</div> +<h5 class="subsubsectionHead"><a + id="x64-9500012.3.3"></a>Reference Ports</h5> +<!--l. 258--><p class="noindent" >These symbols can only appear on the border of an ActorReference symbol. Since the type of port is +defined in the ActorClass, no textual notation for the Reference Ports exists. +</p> +<div class="table"> + + +<!--l. 261--><p class="noindent" ><a + id="x64-950015"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.5: </span><span +class="content">Title</span></div><!--tex4ht:label?: x64-950015 --> +<div class="tabular"> <table id="TBL-10" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-10-1g"><col +id="TBL-10-1" /></colgroup><colgroup id="TBL-10-2g"><col +id="TBL-10-2" /></colgroup><colgroup id="TBL-10-3g"><col +id="TBL-10-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-1" +class="td11"> <span +class="ecbx-1000">Element </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-10-1-3" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-1" +class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-2" +class="td11"> <img +src="images/040-ReferencePort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-2-3" +class="td11"> <span +class="ecti-1000">implicit </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-1" +class="td11"> Conjugated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-2" +class="td11"> <img +src="images/040-ConjugatedReferencePort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-3-3" +class="td11"> <span +class="ecti-1000">implicit </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-1" +class="td11"> Replicated Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-2" +class="td11"> <img +src="images/040-ReplicatedReferencePort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-4-3" +class="td11"> <span +class="ecti-1000">implicit </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-5-1" +class="td11"> Conjugated Replicated </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-1" +class="td11"> Reference Port </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-2" +class="td11"> <img +src="images/040-ConjugatedReplicatedReferencePort.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-10-6-3" +class="td11"> <span +class="ecti-1000">implicit </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-10-7-1" +class="td11"> </td></tr></table></div> + + +</div><hr class="endfloat" /> +</div> + + +<!--l. 301--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse51.html" >next</a>] [<a +href="etrice-docse49.html" >prev</a>] [<a +href="etrice-docse49.html#tailetrice-docse49.html" >prev-tail</a>] [<a href="etrice-docse50.html" >front</a>] [<a href="etrice-docch12.html#etrice-docse50.html" >up</a>] </p></div> -<!--l. 1--><p class="noindent" ><a - id="tailetrice-docse50.html"></a> </p> +<!--l. 301--><p class="noindent" ><a + id="tailetrice-docse50.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse51.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse51.html index 13e14f500..7d5aa8eba 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse51.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse51.html @@ -4,63 +4,53 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>The ROOM Model</title> +<head><title>DataClass</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 19--><div class="crosslinks"><p class="noindent">[<a +<!--l. 301--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse52.html" >next</a>] [<a -href="etrice-docch15.html" >prev</a>] [<a -href="etrice-docch15.html#tailetrice-docch15.html" >prev-tail</a>] [<a +href="etrice-docse50.html" >prev</a>] [<a +href="etrice-docse50.html#tailetrice-docse50.html" >prev-tail</a>] [<a href="#tailetrice-docse51.html">tail</a>] [<a -href="etrice-docch15.html#etrice-docse51.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">15.1 </span> <a - id="x68-12000015.1"></a>The ROOM Model</h3> -<!--l. 21--><p class="noindent" >The ROOM model defines classes for Data, Protocols, Actors, SubSystems and -LogicalSystems. Thereby the three latter form a hierarchy. The @LogicalSystem@ is -the top level element of the structure. It contains references to <span -class="ectt-1000">SubSystemClass</span> -elements. The <span -class="ectt-1000">SubSystemClass </span>in turn contain references to <span -class="ectt-1000">ActorClass </span>elements -which again contain (recursively) references to <span -class="ectt-1000">ActorClass </span>elements. The -complete structural hierarchy implies a tree which has the <span -class="ectt-1000">LogicalSystem </span>as -root and where each reference stands for a new node with possibly further -branches. - - - -</p><!--l. 24--><p class="noindent" >Let’s consider a simple example. It doesn’t implement any meaningful and completely -omits behavioral and other aspects. -</p><!--l. 26--><p class="noindent" ><img -src="images/080-room.jpg" alt="PIC" +href="etrice-docch12.html#etrice-docse51.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">12.4 </span> <a + id="x65-9600012.4"></a>DataClass</h3> +<!--l. 303--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.4.1 </span> <a + id="x65-9700012.4.1"></a>Description</h4> +<!--l. 305--><p class="noindent" >The DataClass enables the modeling of hierarchical complex datatypes and operations on them. The +DataClass is the equivalent to a Class in languages like Java or C++, but has less features. The content +of a DataClass can always be sent via message between actors (defined as message data in +ProtocolClass). +</p><!--l. 307--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.4.2 </span> <a + id="x65-9800012.4.2"></a>Notation</h4> +<!--l. 309--><p class="noindent" >Example: DataClass using PrimitiveTypes +</p><!--l. 311--><p class="noindent" ><img +src="images/040-DataClass1.png" alt="PIC" /> -</p><!--l. 29--><p class="noindent" >When a <span -class="ectt-1000">LogicalSstem </span>is instantiated then recursively all of the contained referenced -elements are instantiated as instances of the corresponding class. Thus the instance -tree of above example looks like this (the third line in the white boxes shows some -mapping information, s.b.): -</p><!--l. 31--><p class="noindent" ><img -src="images/080-instances.jpg" alt="PIC" +</p><!--l. 314--><p class="noindent" >Example: DataClass using other DataClasses: +</p><!--l. 316--><p class="noindent" ><img +src="images/040-DataClass2.png" alt="PIC" /> - - - + + </p> -<!--l. 35--><div class="crosslinks"><p class="noindent">[<a +<!--l. 319--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse52.html" >next</a>] [<a -href="etrice-docch15.html" >prev</a>] [<a -href="etrice-docch15.html#tailetrice-docch15.html" >prev-tail</a>] [<a +href="etrice-docse50.html" >prev</a>] [<a +href="etrice-docse50.html#tailetrice-docse50.html" >prev-tail</a>] [<a href="etrice-docse51.html" >front</a>] [<a -href="etrice-docch15.html#etrice-docse51.html" >up</a>] </p></div> -<!--l. 35--><p class="noindent" ><a +href="etrice-docch12.html#etrice-docse51.html" >up</a>] </p></div> +<!--l. 319--><p class="noindent" ><a id="tailetrice-docse51.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse52.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse52.html index c62f75652..d4a94920f 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse52.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse52.html @@ -4,41 +4,164 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>The Config Model</title> +<head><title>Layering</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 35--><div class="crosslinks"><p class="noindent">[<a +<!--l. 319--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse53.html" >next</a>] [<a href="etrice-docse51.html" >prev</a>] [<a href="etrice-docse51.html#tailetrice-docse51.html" >prev-tail</a>] [<a href="#tailetrice-docse52.html">tail</a>] [<a -href="etrice-docch15.html#etrice-docse52.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">15.2 </span> <a - id="x69-12100015.2"></a>The Config Model</h3> -<!--l. 37--><p class="noindent" >Once we have the ROOM class model we can configure values using the Config -model. This can be done on the class level and/or on the instance level. Values -defined for class attributes are used for all instances unless there is an instance value -configured for the same attribute. -</p><!--l. 39--><p class="noindent" ><img -src="images/080-config.jpg" alt="PIC" - /> - - - +href="etrice-docch12.html#etrice-docse52.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">12.5 </span> <a + id="x66-9900012.5"></a>Layering</h3> +<!--l. 321--><p class="noindent" > </p> -<!--l. 42--><div class="crosslinks"><p class="noindent">[<a +<h4 class="subsectionHead"><span class="titlemark">12.5.1 </span> <a + id="x66-10000012.5.1"></a>Description</h4> +<!--l. 323--><p class="noindent" >In addition to the Actor containment hierarchies, Layering provides another method to hierarchically +structure a software system. Layering and actor hierarchies with port to port connections can be mixed +on every level of granularity. + </p><ol class="enumerate1" > + <li + class="enumerate" id="x66-100002x1">an ActorClass can define a Service Provision Point (SPP) to publish a specific service, defined + by a ProtocolClass + </li> + <li + class="enumerate" id="x66-100004x2">an ActorClass can define a Service Access Point (SAP) if it needs a service, defined by a + ProtocolClass + </li> + <li + class="enumerate" id="x66-100006x3">for a given Actor hierarchy, a LayerConnection defines which SAP will be satisfied by + (connected to) which SPP</li></ol> +<!--l. 330--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.5.2 </span> <a + id="x66-10100012.5.2"></a>Notation</h4> +<div class="table"> + + +<!--l. 333--><p class="noindent" ></p><hr class="float" /><div class="float" +> + + +<div class="tabular"> <table id="TBL-11" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-11-1g"><col +id="TBL-11-1" /></colgroup><colgroup id="TBL-11-2g"><col +id="TBL-11-2" /></colgroup><colgroup id="TBL-11-3g"><col +id="TBL-11-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-1-1" +class="td11"> <!--l. 335--><p class="noindent" ><span +class="ecbx-1000">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-1-3" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-2-1" +class="td11"> + <div class="flushleft" +> + <!--l. 336--><p class="noindent" > + The Layer + Connections in this + model define which + services are + provided by the + <span +class="ecti-1000">ServiceLayer</span> + (<span +class="ecti-1000">digitalIO </span>and + <span +class="ecti-1000">timer</span>)</p></div> + <!--l. 336--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-2" +class="td11"> <img +src="images/040-LayeringModel.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-2-3" +class="td11"> <img +src="images/040-LayeringModelTextual.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-3-1" +class="td11"> + <div class="flushleft" +> + <!--l. 337--><p class="noindent" > + The + implementation of + the services (SPPs) + can be delegated to + sub actors. In this + case the actor + <span +class="ecti-1000">ServiceLayer </span>relays + (delegates) the + implementation + services <span +class="ecti-1000">digitalIO</span> + and <span +class="ecti-1000">timer </span>to sub + actors</p></div> + <!--l. 337--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-2" +class="td11"> <img +src="images/040-LayeringServiceLayer.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-3-3" +class="td11"> <img +src="images/040-LayeringServiceLayerTextual.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-4-1" +class="td11"> + <div class="flushleft" +> + <!--l. 338--><p class="noindent" > + Every Actor inside + the + <span +class="ecti-1000">ApplicationLayer</span> + that contains an + SAP with the same + Protocol as <span +class="ecti-1000">timer</span> + or <span +class="ecti-1000">digitalIO </span>will be + connected to the + specified SPP</p></div> + <!--l. 338--><p class="noindent" > </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-2" +class="td11"> <img +src="images/040-LayeringApplicationLayer.png" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-11-4-3" +class="td11"> <img +src="images/040-LayeringApplicationLayerTextual.png" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left; vertical-align:middle;" id="TBL-11-5-1" +class="td11"> </td></tr></table></div> + + +</div><hr class="endfloat" /> +</div> + + +<!--l. 365--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse53.html" >next</a>] [<a href="etrice-docse51.html" >prev</a>] [<a href="etrice-docse51.html#tailetrice-docse51.html" >prev-tail</a>] [<a href="etrice-docse52.html" >front</a>] [<a -href="etrice-docch15.html#etrice-docse52.html" >up</a>] </p></div> -<!--l. 42--><p class="noindent" ><a +href="etrice-docch12.html#etrice-docse52.html" >up</a>] </p></div> +<!--l. 365--><p class="noindent" ><a id="tailetrice-docse52.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse53.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse53.html index bef640c42..7a31b6b2b 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse53.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse53.html @@ -4,45 +4,287 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>The Physical Model</title> +<head><title>Finite State Machines</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 42--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse54.html" >next</a>] [<a +<!--l. 365--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch13.html" >next</a>] [<a href="etrice-docse52.html" >prev</a>] [<a href="etrice-docse52.html#tailetrice-docse52.html" >prev-tail</a>] [<a href="#tailetrice-docse53.html">tail</a>] [<a -href="etrice-docch15.html#etrice-docse53.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">15.3 </span> <a - id="x70-12200015.3"></a>The Physical Model</h3> -<!--l. 44--><p class="noindent" >The physical model defines the physical resources onto which the logical system will -be deployed. It is possible to define runtime classes which (currently) only defines the -overall execution model of the platform. -</p><!--l. 46--><p class="noindent" ><img -src="images/080-runtimes.jpg" alt="PIC" +href="etrice-docch12.html#etrice-docse53.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">12.6 </span> <a + id="x67-10200012.6"></a>Finite State Machines</h3> +<!--l. 367--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.6.1 </span> <a + id="x67-10300012.6.1"></a>Description</h4> +<!--l. 369--><p class="noindent" >Definition from <a +href="http://en.wikipedia.org/wiki/Finite-state_machine" >Wikipedia</a>: +</p><!--l. 371--><p class="noindent" > + </p><div class="quote"> + <!--l. 372--><p class="noindent" >A finite-state machine (FSM) or finite-state automaton (plural: automata), or simply a + state machine, is a mathematical model used to design computer programs and digital + logic circuits. It is conceived as an abstract machine that can be in one of a finite + number of states. The machine is in only one state at a time; the state it is in at any + given time is called the current state. It can change from one state to another when + initiated by a triggering event or condition, this is called a transition. A particular FSM + is defined by a list of the possible states it can transition to from each state, and the + triggering condition for each transition. + </p><!--l. 374--><p class="noindent" >In ROOM each actor class can implement its behavior using a state machine. Events + occurring at the end ports of an actor will be forwarded to and processed by the state + machine. Events possibly trigger state transitions.</p></div> +<!--l. 377--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.6.2 </span> <a + id="x67-10400012.6.2"></a>Motivation</h4> +<!--l. 379--><p class="noindent" >For event driven systems a finite state machine is ideal for processing the stream of events. Typically +during processing new events are produced which are sent to peer actors. +</p><!--l. 381--><p class="noindent" >We distinguish flat and hierarchical state machines. +</p><!--l. 383--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">12.6.3 </span> <a + id="x67-10500012.6.3"></a>Notation</h4> + + +<!--l. 385--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x67-10600012.6.3"></a>Flat Finite State Machine</h5> +<!--l. 387--><p class="noindent" >The simpler flat finite state machines are composed of the following elements: +</p> +<div class="table"> + + +<!--l. 390--><p class="noindent" ><a + id="x67-1060016"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.6: </span><span +class="content">Title</span></div><!--tex4ht:label?: x67-1060016 --> +<div class="tabular"> <table id="TBL-12" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-12-1g"><col +id="TBL-12-1" /></colgroup><colgroup id="TBL-12-2g"><col +id="TBL-12-2" /></colgroup><colgroup id="TBL-12-3g"><col +id="TBL-12-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-1" +class="td11"> <span +class="ecbx-1000">Description </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-12-1-3" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-1" +class="td11"> State </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-2" +class="td11"> <img +src="images/040-State.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-2-3" +class="td11"> <img +src="images/040-StateTextual.jpg" alt="PIC" + /> </td></tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-1" +class="td11"> InitialPoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-2" +class="td11"> <img +src="images/040-InitialPoint.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-3-3" +class="td11"> <span +class="ecti-1000">implicit</span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-1" +class="td11"> TransitionPoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-2" +class="td11"> <img +src="images/040-TransitionPoint.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-4-3" +class="td11"> <img +src="images/040-TransitionPointTextual.jpg" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-1" +class="td11"> ChoicePoint </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-2" +class="td11"> <img +src="images/040-ChoicePoint.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-5-3" +class="td11"> <img +src="images/040-ChoicePointTextual.jpg" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-1" +class="td11"> Initial Transition </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-2" +class="td11"> <img +src="images/040-InitialTransition.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-6-3" +class="td11"> <img +src="images/040-InitialTransitionTextual.jpg" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-1" +class="td11"> Triggered Transition </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-2" +class="td11"> <img +src="images/040-TriggeredTransition.jpg" alt="PIC" + /> </td><td style="white-space:nowrap; text-align:center;" id="TBL-12-7-3" +class="td11"> <img +src="images/040-TriggeredTransitionTextual.jpg" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:center;" id="TBL-12-8-1" +class="td11"> </td></tr></table></div> + + +</div><hr class="endfloat" /> +</div> +<h5 class="subsubsectionHead"><a + id="x67-10700012.6.3"></a>Hierarchical Finite State Machine</h5> +<!--l. 443--><p class="noindent" >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> +<div class="table"> + + +<!--l. 447--><p class="noindent" ><a + id="x67-1070017"></a></p><hr class="float" /><div class="float" +> + + + <div class="caption" +><span class="id">Table 12.7: </span><span +class="content">Title</span></div><!--tex4ht:label?: x67-1070017 --> +<div class="tabular"> <table id="TBL-13" class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-13-1g"><col +id="TBL-13-1" /></colgroup><colgroup id="TBL-13-2g"><col +id="TBL-13-2" /></colgroup><colgroup id="TBL-13-3g"><col +id="TBL-13-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-1-1" +class="td11"> <!--l. 450--><p class="noindent" ><span +class="ecbx-1000">Description</span> </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-2" +class="td11"> <span +class="ecbx-1000">Graphical Notation </span></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-1-3" +class="td11"> <span +class="ecbx-1000">Textual Notation </span></td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-2-1" +class="td11"> <!--l. 451--><p class="noindent" >State with sub state + machine </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-2" +class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-14-1g"><col +id="TBL-14-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-1-1" +class="td00">Parent State</td></tr><tr + style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-14-2-1" +class="td00"> <img +src="images/040-StateWithSubFSM.jpg" alt="PIC" + /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-2-3" +class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-15" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-15-1g"><col +id="TBL-15-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-15-1-1" +class="td00">Sub state machine</td></tr><tr + style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-15-2-1" +class="td00"> <img +src="images/040-StateWithSubFSMTextual.jpg" alt="PIC" + /></td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-3-1" +class="td11"> <!--l. 452--><p class="noindent" >Entry Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-2" +class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-16-1g"><col +id="TBL-16-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-1-1" +class="td00">In sub state machine</td></tr><tr + style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-16-2-1" +class="td00"> <img +src="images/040-EntryPoint.jpg" alt="PIC" + /></td></tr></table> </div> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-3-3" +class="td11"> <!--tex4ht:inline--><div class="tabular"> <table id="TBL-17" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-17-1g"><col +id="TBL-17-1" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:nowrap; text-align:center;" id="TBL-17-1-1" +class="td00"> </td></tr><tr + style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:nowrap; text-align:center;" id="TBL-17-2-1" +class="td00"><img +src="images/040-EntryPointTextual.jpg" alt="PIC" + /></td></tr></table> </div> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-4-1" +class="td11"> <!--l. 453--><p class="noindent" >Exit Point </p></td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-2" +class="td11"> </td><td style="white-space:nowrap; text-align:center;" id="TBL-13-4-3" +class="td11"> <img +src="images/040-ExitPointTextual.jpg" alt="PIC" + /> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left; vertical-align:baseline;" id="TBL-13-5-1" +class="td11"> </td></tr></table> +</div> + + +</div><hr class="endfloat" /> +</div> +<h4 class="subsectionHead"><span class="titlemark">12.6.4 </span> <a + id="x67-10800012.6.4"></a>Examples</h4> +<!--l. 492--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x67-10900012.6.4"></a>Example of a flat finite state machine:</h5> +<!--l. 495--><p class="noindent" ><img +src="images/040-FlatFSM.jpg" alt="PIC" + /> +</p><!--l. 497--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x67-11000012.6.4"></a>Example of a hierarchical finite state machine:</h5> +<!--l. 499--><p class="noindent" >Top level +</p><!--l. 502--><p class="noindent" ><img +src="images/040-HierarchicalFSMTop.jpg" alt="PIC" + /> +</p><!--l. 504--><p class="noindent" >Sub state machine of Initializing +</p><!--l. 507--><p class="noindent" ><img +src="images/040-HierarchicalFSMInitializing.jpg" alt="PIC" /> -</p><!--l. 49--><p class="noindent" >The physical system is composed of @Node@ references where each @Node@ is -defined as a class referencing a @RuntimeClass@ and defining @Threads@. -</p><!--l. 51--><p class="noindent" ><img -src="images/080-phys.jpg" alt="PIC" +</p><!--l. 509--><p class="noindent" >Sub state machine of Running +</p><!--l. 512--><p class="noindent" ><img +src="images/040-HierarchicalFSMRunning.jpg" alt="PIC" /> - - - + + + + + + </p> -<!--l. 54--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docse54.html" >next</a>] [<a +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch13.html" >next</a>] [<a href="etrice-docse52.html" >prev</a>] [<a href="etrice-docse52.html#tailetrice-docse52.html" >prev-tail</a>] [<a href="etrice-docse53.html" >front</a>] [<a -href="etrice-docch15.html#etrice-docse53.html" >up</a>] </p></div> -<!--l. 54--><p class="noindent" ><a - id="tailetrice-docse53.html"></a> </p> +href="etrice-docch12.html#etrice-docse53.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse53.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse54.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse54.html index 8e12c7004..383c464d4 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse54.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse54.html @@ -4,50 +4,52 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>The Mapping Model</title> +<head><title>Overview</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 54--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch16.html" >next</a>] [<a -href="etrice-docse53.html" >prev</a>] [<a -href="etrice-docse53.html#tailetrice-docse53.html" >prev-tail</a>] [<a +<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse55.html" >next</a>] [<a +href="etrice-docch13.html" >prev</a>] [<a +href="etrice-docch13.html#tailetrice-docch13.html" >prev-tail</a>] [<a href="#tailetrice-docse54.html">tail</a>] [<a -href="etrice-docch15.html#etrice-docse54.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">15.4 </span> <a - id="x71-12300015.4"></a>The Mapping Model</h3> -<!--l. 56--><p class="noindent" >The last model finally combines all this information by mapping logical to physical -entities. -</p><!--l. 58--><p class="noindent" ><img -src="images/080-map.jpg" alt="PIC" - /> -</p><!--l. 61--><p class="noindent" >The result of the mapping is also depicted in above tree diagram of the instances. All -actor instances (the white boxes) are mapped to a node and a thread running on this -node (shown as @ <span -class="ecti-1000">node </span>: <span -class="ecti-1000">thread</span>). - - - - - - - - - +href="etrice-docch13.html#etrice-docse54.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.1 </span> <a + id="x69-11200013.1"></a>Overview</h3> +<!--l. 5--><p class="noindent" >eTrice now provides a new feature of automatic layout of the ROOM diagrams in its graphical editors. +This helps in improving the pragmatics of the diagrams and frees the user from the burden of manually +lay-outing the diagrams on the canvas. +</p><!--l. 7--><p class="noindent" >The automatic lay-outing has been provided with the help of the well known KIELER framework, which +focuses on the pragmatics of model-based system design, which can improve comprehensibility of +diagrams, improve development and maintenance time, and improve the analysis of dynamic +behavior. +</p><!--l. 9--><p class="noindent" >This chapter will answer the following questions </p> + <ul class="itemize1"> + <li class="itemize"><a +href="etrice-docse55.html#x70-11300013.2">”How to perform automatic layout in the graphical editors of eTrice?”</a> + </li> + <li class="itemize"><a +href="etrice-docse56.html#x71-11400013.3">”What are layout options?”</a> + </li> + <li class="itemize"><a +href="etrice-docse57.html#x72-11500013.4">”How to configure the layout options to alter the diagram layout as desired?”</a></li></ul> +<!--l. 16--><p class="noindent" >Moreover, some <a +href="etrice-docse58.html#x73-12000013.5">”special layout options”</a> will also be discussed. + + </p> -<!--l. 1--><div class="crosslinks"><p class="noindent">[<a -href="etrice-docch16.html" >next</a>] [<a -href="etrice-docse53.html" >prev</a>] [<a -href="etrice-docse53.html#tailetrice-docse53.html" >prev-tail</a>] [<a +<!--l. 18--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse55.html" >next</a>] [<a +href="etrice-docch13.html" >prev</a>] [<a +href="etrice-docch13.html#tailetrice-docch13.html" >prev-tail</a>] [<a href="etrice-docse54.html" >front</a>] [<a -href="etrice-docch15.html#etrice-docse54.html" >up</a>] </p></div> -<!--l. 1--><p class="noindent" ><a +href="etrice-docch13.html#etrice-docse54.html" >up</a>] </p></div> +<!--l. 18--><p class="noindent" ><a id="tailetrice-docse54.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse55.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse55.html index 64c450e34..1a54f392a 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse55.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse55.html @@ -4,135 +4,42 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Architecture</title> +<head><title>Performing Automatic Layout</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +<!--l. 18--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse56.html" >next</a>] [<a -href="etrice-docch16.html" >prev</a>] [<a -href="etrice-docch16.html#tailetrice-docch16.html" >prev-tail</a>] [<a +href="etrice-docse54.html" >prev</a>] [<a +href="etrice-docse54.html#tailetrice-docse54.html" >prev-tail</a>] [<a href="#tailetrice-docse55.html">tail</a>] [<a -href="etrice-docch16.html#etrice-docse55.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">16.1 </span> <a - id="x73-12500016.1"></a>Architecture</h3> -<!--l. 5--><p class="noindent" >The basic components of eTrice are depicted in the following diagram. -</p><!--l. 7--><p class="noindent" ><img -src="images/200-components.jpg" alt="PIC" - /> -</p><!--l. 10--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which -are treated in subsequent sections. -</p><!--l. 12--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.1.1 </span> <a - id="x73-12600016.1.1"></a>Editor and Generator Components</h4> +href="etrice-docch13.html#etrice-docse55.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.2 </span> <a + id="x70-11300013.2"></a>Performing Automatic Layout</h3> +<!--l. 21--><p class="noindent" >Automatic layout could be performed in eTrice graphical editors using the command to layout the current +diagram. +</p><!--l. 23--><p class="noindent" >This command is available in </p> <ul class="itemize1"> - <li class="itemize">core - <ul class="itemize2"> - <li class="itemize">core.room is an Xtext based language called Room. It consists of - the plug-in <span -class="ecti-1000">org.eclipse.etrice.core.room</span>. Room is the basic modeling - language of eTrice. - - - - </li> - <li class="itemize">core.config is an Xtext based language called Config. It consists of the - plug-in <span -class="ecti-1000">org.eclipse.etrice.core.config</span>. Config is a language designed - for the data configuration of model elements. E.g. class and instance - attributes can be specified. - </li> - <li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. - It consists of the plugin <span -class="ecti-1000">org.eclipse.etrice.core.genmodel</span>. a Room - model can be transformed into a genmodel which allows easy access - to implicit relations of the Room model.</li></ul> - </li> - <li class="itemize">ui - <ul class="itemize2"> - <li class="itemize">textual - <ul class="itemize3"> - <li class="itemize">room.ui is the ui counterpart of core.room. It consists of the - plug-in <span -class="ecti-1000">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE - concepts like content assist, error markers and navigation by - hyper links for the Room language. - </li> - <li class="itemize">config.ui is the ui counterpart of core.config. It consists of the - plug-in <span -class="ecti-1000">org.eclipse.etrice.core.config.ui</span>. This plug-in realizes IDE - concepts like content assist, error markers and navigation by - hyper links for the Config language.</li></ul> - </li> - <li class="itemize">graphical - <ul class="itemize3"> - <li class="itemize">ui.common is a set of common code for the two diagram editors. - It consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.ui.common</span>. - </li> - <li class="itemize">ui.commands encapsulates some commands related to the - navigation between eTrice editors. It consists of the plug-in - <span -class="ecti-1000">org.eclipse.etrice.ui.commands</span>. - </li> - <li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. - It consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.ui.structure</span>. - </li> - <li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. - It consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.ui.behavior</span>.</li></ul> - </li></ul> + <li class="itemize">The context menu of the diagrams </li> - <li class="itemize">generators - <ul class="itemize2"> - <li class="itemize">generator is a set of general classes and language independent parts - of all generators. It consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.generator</span>. - - - - </li> - <li class="itemize">generator.c is the generator for the ANSI-C target language. It - consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.generator.c</span>. - </li> - <li class="itemize">generator.java is the generator for the Java target language. It - consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.generator.java</span>. - </li> - <li class="itemize">generator.doc is the generator for the model documentation. It - consists of the plug-in <span -class="ecti-1000">org.eclipse.etrice.generator.doc</span>.</li></ul> - </li></ul> -<!--l. 50--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.1.2 </span> <a - id="x73-12700016.1.2"></a>Runtimes</h4> -<!--l. 52--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The runtimes are libraries -written in the target language against which the generated code is compiled. -</p><!--l. 54--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.1.3 </span> <a - id="x73-12800016.1.3"></a>Unit Tests</h4> -<!--l. 56--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests. - - - + <li class="itemize">Using the <span +class="ecti-1000">Ctrl+R L </span>shortcut.</li></ul> +<!--l. 29--><p class="noindent" >Additionally, an entry in the context menu allows to layout only a selected part of the diagram. + + </p> -<!--l. 58--><div class="crosslinks"><p class="noindent">[<a +<!--l. 31--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse56.html" >next</a>] [<a -href="etrice-docch16.html" >prev</a>] [<a -href="etrice-docch16.html#tailetrice-docch16.html" >prev-tail</a>] [<a +href="etrice-docse54.html" >prev</a>] [<a +href="etrice-docse54.html#tailetrice-docse54.html" >prev-tail</a>] [<a href="etrice-docse55.html" >front</a>] [<a -href="etrice-docch16.html#etrice-docse55.html" >up</a>] </p></div> -<!--l. 58--><p class="noindent" ><a +href="etrice-docch13.html#etrice-docse55.html" >up</a>] </p></div> +<!--l. 31--><p class="noindent" ><a id="tailetrice-docse55.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse56.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse56.html index 466849177..8c3d0dccc 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse56.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse56.html @@ -4,440 +4,45 @@ <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> <html xmlns="http://www.w3.org/1999/xhtml" > -<head><title>Component Overview</title> +<head><title>Layout Options</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > -<!--l. 58--><div class="crosslinks"><p class="noindent">[<a +<!--l. 31--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse57.html" >next</a>] [<a href="etrice-docse55.html" >prev</a>] [<a href="etrice-docse55.html#tailetrice-docse55.html" >prev-tail</a>] [<a href="#tailetrice-docse56.html">tail</a>] [<a -href="etrice-docch16.html#etrice-docse56.html" >up</a>] </p></div> -<h3 class="sectionHead"><span class="titlemark">16.2 </span> <a - id="x74-12900016.2"></a>Component Overview</h3> -<!--l. 60--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.2.1 </span> <a - id="x74-13000016.2.1"></a>Room Language Overview</h4> -<!--l. 62--><p class="noindent" >We assume that the reader is familiar with the Xtext concepts. So we concentrate on -the details of our implementation that are worth to be pointed out. -</p><!--l. 64--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13100016.2.1"></a>Model Tweaks</h5> -<!--l. 66--><p class="noindent" >The Room EMF model is inferred from the grammar. However, this -powerful mechanism has to be tweaked at some places. This is done in the -<span -class="ecti-1000">/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/RoomPostprocessor.ext</span> -which is written in the legacy Xtend language. -</p><!--l. 69--><p class="noindent" >The following parts of the model are changed or added: </p> - <ul class="itemize1"> - <li class="itemize">the default - - - - <div class="verbatim" id="verbatim-21"> - multiplicity -</div> - <!--l. 71--><p class="nopar" > of the <span -class="ectt-1000">Port </span>is set to 1 - </p></li> - <li class="itemize">the operation <span -class="ectt-1000">isReplicated </span>is added to the <span -class="ectt-1000">Port</span> - </li> - <li class="itemize">the default <span -class="ectt-1000">size </span>of the <span -class="ectt-1000">ActorRef </span>is set to 1 - </li> - <li class="itemize">an operation <span -class="ectt-1000">getName </span>is add to the <span -class="ectt-1000">State </span>class - </li> - <li class="itemize">an operation <span -class="ectt-1000">getName </span>is add to the <span -class="ectt-1000">StateGraphItem </span>class - </li> - <li class="itemize">an operation <span -class="ectt-1000">getGeneralProtocol </span>is added to the <span -class="ectt-1000">InterfaceItem</span></li></ul> -<!--l. 79--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13200016.2.1"></a>Imports by URI Using Namespaces</h5> -<!--l. 81--><p class="noindent" >The import mechanism employed is based on URIs. This is configured for one -part in the GenerateRoom.mwe2 model workflow by setting the fragments -ImportURIScopingFragment and ImportUriValidator). For the other part it is -configured in the Guice modules by binding </p> - <ul class="itemize1"> - <li class="itemize"><span -class="ectt-1000">PlatformRelativeUriResolver </span>– this class tries to convert the import - URI into a platform relative URI. It also replaces environment variables - written in $ with their respective values. - </li> - <li class="itemize"><span -class="ectt-1000">ImportedNamespaceAwareLocalScopeProvider </span>– this is a standard scope - provider which is aware of namespaces - </li> - <li class="itemize"><span -class="ectt-1000">GlobalNonPlatformURIEditorOpener </span>– this editor opener tries to convert - general URIs into platform URIs because editors can only open platform - URIs - </li> - <li class="itemize"><span -class="ectt-1000">ImportAwareHyperlinkHelper </span>– turns the URI part of an import into a - navigatable hyper link</li></ul> - - - -<!--l. 89--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13300016.2.1"></a>Naming</h5> -<!--l. 91--><p class="noindent" >Two classes provide object names used for link resolution and for labels. The -<span -class="ectt-1000">RoomNameProvider </span>provides frequently used name strings, some of them are -hierarchical like State paths. The <span -class="ectt-1000">RoomFragmentProvider </span>serves a more formal -purpose since it provides a link between EMF models (as used by the diagram -editors) and the textual model representation used by Xtext. -</p><!--l. 95--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13400016.2.1"></a>Helpers</h5> -<!--l. 97--><p class="noindent" >The <span -class="ectt-1000">RoomHelpers </span>class provides a great deal of static methods that help retrieve -frequently used information from the model. Among many, many others -</p> - <ul class="itemize1"> - <li class="itemize"><span -class="ectt-1000">getAllEndPorts(ActorClass) </span>- returns a list of all end ports of an actor - class including inherited ones - </li> - <li class="itemize"><span -class="ectt-1000">getInheritedActionCode(Transition, ActorClass) </span>- get the inherited - part of a transition’s action code - </li> - <li class="itemize"><span -class="ectt-1000">getSignature(Operation) </span>- returns a string representing the operation - signature suited for a label</li></ul> -<!--l. 105--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13500016.2.1"></a>Validation</h5> -<!--l. 107--><p class="noindent" >Validation is used from various places. Therefore all validation code is accumulated in -the @ValidationUtil@ class. All methods are static and many of them return a Result -object which contains information about the problem detected as well as object and -feature as suited for most validation purposes. -</p><!--l. 109--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.2.2 </span> <a - id="x74-13600016.2.2"></a>Config Language Overview</h4> - - - -<!--l. 111--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13700016.2.2"></a>Model Tweaks</h5> -<!--l. 113--><p class="noindent" >A couple of operations are added to the ConfigModel </p> - <ul class="itemize1"> - <li class="itemize"><span -class="ectt-1000">getActorClassConfigs</span> - </li> - <li class="itemize"><span -class="ectt-1000">getActorInstanceConfigs</span> - </li> - <li class="itemize"><span -class="ectt-1000">getProtocolClassConfigs</span> - </li> - <li class="itemize"><span -class="ectt-1000">getSubSystemConfigs</span></li></ul> -<!--l. 121--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13800016.2.2"></a>Imports by URI Using Namespaces</h5> -<!--l. 123--><p class="noindent" >Imports are treated like in Room language, section <span -class="ecti-1000">Imports by URI Using</span> -<span -class="ecti-1000">Namespaces</span>. -</p><!--l. 125--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-13900016.2.2"></a>Util</h5> -<!--l. 127--><p class="noindent" >A set of static utility methods can be found in the <span -class="ectt-1000">ConfigUtil </span>class. -</p><!--l. 129--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.2.3 </span> <a - id="x74-14000016.2.3"></a>Aggregation Layer Overview</h4> -<!--l. 131--><p class="noindent" >The eTrice Generator Model (genmodel) serves as an aggregation layer. Its purpose is -to allow easy access to information which is implicitly contained in the Room model -but not simple to retrieve. Examples of this are the state machine with inherited -items or a list of all triggers active at a state in the order in which they will be -evaluated or the actual peer port of an end port (following bindings through relay -ports). -</p><!--l. 134--><p class="noindent" >The Generator Model is created from a list of Room models by a call of -the - - - -</p> -<div class="verbatim" id="verbatim-22"> -createGeneratorModel(List<RoomModel>, boolean) -</div> -<!--l. 136--><p class="nopar" > -</p><!--l. 138--><p class="noindent" >method of the <span -class="ectt-1000">GeneratorModelBuilder </span>class. -</p><!--l. 140--><p class="noindent" >The <span -class="ectt-1000">Root </span>object of the resulting Generator Model provides chiefly two things: -</p> - <ul class="itemize1"> - <li class="itemize">a tree of instances starting at each <span -class="ectt-1000">SubSystem </span>with representations of each - <span -class="ectt-1000">ActorInstance </span>and <span -class="ectt-1000">PortInstance</span> - </li> - <li class="itemize">for each <span -class="ectt-1000">ActorClass </span>a corresponding <span -class="ectt-1000">ExpandedActorClass </span>with an - explicit state machine containing all inherited state graph items</li></ul> -<!--l. 146--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-14100016.2.3"></a>The Instance Model</h5> -<!--l. 148--><p class="noindent" >The instance model allows easy access to instances including their unique paths and -object IDs. Also it is possible to get a list of all peer port instances for each port -instance without having to bother about port and actor replication. -</p><!--l. 150--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-14200016.2.3"></a>The Expanded Actor Class</h5> -<!--l. 152--><p class="noindent" >The expanded actor class contains, as already mentioned, the complete state machine -of the actor class. This considerably simplifies the task of state machine generation. -Note that the generated code always contains the complete state machine of an -actor. I.e. no target language inheritance is used to implement the state -machine inheritance. Furthermore the <span -class="ectt-1000">ExpandedActorClass </span>gives access to -</p> - <ul class="itemize1"> - <li class="itemize"><span -class="ectt-1000">getIncomingTransitions(StateGraphNode) </span>– the - set of incoming transition of a <span -class="ectt-1000">StateGraphNode </span>(<span -class="ectt-1000">State</span>, <span -class="ectt-1000">ChoicePoint </span>or - <span -class="ectt-1000">TransitionPoint</span>) - </li> - <li class="itemize"><span -class="ectt-1000">getOutgoingTransitions(StateGraphNode) </span>– the set of outgoing - transition of a <span -class="ectt-1000">StateGraphNode</span> - - - - </li> - <li class="itemize"><span -class="ectt-1000">getActiveTriggers(State) </span>– the triggers that are active in this <span -class="ectt-1000">State</span> - in the order they are evaluated</li></ul> -<!--l. 160--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-14300016.2.3"></a>Transition Chains</h5> -<!--l. 162--><p class="noindent" >By transition chains we denote a connected subset of the (hierarchical) state machine -that starts with a transition starting at a state and continues over transitional state -graph nodes (choice points and transition points) and continuation transitions until a -state is reached. In general a transition chain starts at one state and ends in several -states (the chain may branch in choice points). A <span -class="ectt-1000">TransitionChain </span>of a transition is -retrieved by a call of <span -class="ectt-1000">getChain(Transition) </span>of the <span -class="ectt-1000">ExpandedActorClass</span>. The -<span -class="ectt-1000">TransitionChain </span>accepts an <span -class="ectt-1000">ITransitionChainVisitor </span>which is called along the -chain to generate the action codes of involved transitions and the conditional -statements arising from the involved choice points. -</p><!--l. 166--><p class="noindent" > -</p> -<h4 class="subsectionHead"><span class="titlemark">16.2.4 </span> <a - id="x74-14400016.2.4"></a>Generator Overview</h4> -<!--l. 168--><p class="noindent" >There is one plug-in that consists of base classes and some generic generator parts -which are re-used by all language specific generators -</p><!--l. 170--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-14500016.2.4"></a>Base Classes and Interfaces</h5> -<!--l. 172--><p class="noindent" >We just want to mention the most important classes and interfaces. -</p> - <ul class="itemize1"> - <li class="itemize"> - <div class="flushleft" -> -<!--l. 175--><p class="noindent" > -<span -class="ectt-1000">ITranslationProvider </span>— this interface is used by the -<span -class="ectt-1000">DetailCodeTranslator </span>for the language dependent translation of e.g. -port.message() notation in detail code</p></div> - </li> - <li class="itemize"><span -class="ectt-1000">AbstractGenerator </span>— concrete language generators should derive from this - base class - - - - </li> - <li class="itemize"> - <div class="flushleft" -> -<!--l. 177--><p class="noindent" > -<span -class="ectt-1000">DefaultTranslationProvider </span>— a stub implementation of -<span -class="ectt-1000">ITranslationProvider </span>from which clients may derive</p></div> - </li> - <li class="itemize"><span -class="ectt-1000">Indexed </span>— provides an indexed iterable of a given iterable - </li> - <li class="itemize"><span -class="ectt-1000">GeneratorBaseModule </span>— a Google Guice module that binds a couple of basic - services. Concrete language generators should use a module that derives from - this</li></ul> -<!--l. 182--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-14600016.2.4"></a>Generic Generator Parts</h5> -<!--l. 184--><p class="noindent" >The generic generator parts provide code generation blocks on a medium granularity. -The language dependent top level generators embed those blocks in a larger context -(file, class, ...). Language dependent low level constructs are provided by means of an -<span -class="ectt-1000">ILanguageExtension</span>. This extension and other parts of the generator be configured -using Google Guice dependency injection. -</p> -<!--l. 186--><p class="noindent" ><span class="paragraphHead"><a - id="x74-14700016.2.4"></a><span -class="ecbx-1000">GenericActorClassGenerator</span></span> -The <span -class="ectt-1000">GenericActorClassGenerator </span>generates constants for the interface items of a -actor. Those constants are used by the generated state machine. -</p> -<!--l. 190--><p class="noindent" ><span class="paragraphHead"><a - id="x74-14800016.2.4"></a><span -class="ecbx-1000">GenericProtocolClassGenerator</span></span> -The <span -class="ectt-1000">GenericProtocolClassGenerator </span>generates message ID constants for a -protocol. -</p> -<!--l. 194--><p class="noindent" ><span class="paragraphHead"><a - id="x74-14900016.2.4"></a><span -class="ecbx-1000">GenericStateMachineGenerator</span></span> -</p> - - - -<div class="flushleft" -> -<!--l. 196--><p class="noindent" > -The <span -class="ectt-1000">GenericStateMachineGenerator </span>generates the complete state machine -implementation. The skeleton of the generated code is</p></div> - <ul class="itemize1"> - <li class="itemize">definition state ID constants - </li> - <li class="itemize">definition of transition chain constants - </li> - <li class="itemize">definition of trigger constants - </li> - <li class="itemize">entry, exit and action code methods - </li> - <li class="itemize">the <span -class="ectt-1000">exitTo </span>method - </li> - <li class="itemize">the <span -class="ectt-1000">executeTransitionChain </span>method - </li> - <li class="itemize">the <span -class="ectt-1000">enterHistory </span>method - </li> - <li class="itemize">the <span -class="ectt-1000">executeInitTransition </span>method - </li> - <li class="itemize">the <span -class="ectt-1000">receiveEvent </span>method</li></ul> -<!--l. 210--><p class="noindent" >The state machine works as follows. The main entry method is the <br -class="newline" /><span -class="ectt-1000">receiveEvent </span>method. This is the case for both, data driven (polled) and event -driven state machines. Then a number of nested switch/case statements evaluates -trigger conditions and derives the transition chain that is executed. If a trigger fires -then the <span -class="ectt-1000">exitTo </span>method is called to execute all exit codes involved. Then the -transition chain action codes are executed and the choice point conditions are -evaluated in the <span -class="ectt-1000">executeTransitionChain </span>method. Finally the history of the -state where the chain ends is entered and all entry codes are executed by -<span -class="ectt-1000">enterHistory</span>. -</p><!--l. 212--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-15000016.2.4"></a>The Java Generator</h5> -<!--l. 214--><p class="noindent" >The Java generator employs the generic parts of the generator. The -<span -class="ectt-1000">JavaTranslationProvider </span>is very simple and only handles the case of sending a -message from a distinct replicated port: <span -class="ectt-1000">replPort[2].message()</span>. Other cases are -handled by the base class by returning the original text. - - - -</p><!--l. 216--><p class="noindent" >The <span -class="ectt-1000">DataClassGen </span>uses Java inheritance for the generated data classes. Otherwise it -is pretty much straight forward. -</p><!--l. 218--><p class="noindent" >The <span -class="ectt-1000">ProtocolClassGen </span>generates a class for the protocol with nested static classes -for regular and conjugated ports and similar for replicated ports. -</p><!--l. 220--><p class="noindent" >The <span -class="ectt-1000">ActorClassGen </span>uses Java inheritance for the generated actor classes. So ports, -SAPs and attributes and detail code methods are inherited. Not inherited is the state -machine implementation. -</p><!--l. 222--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-15100016.2.4"></a>The ANSI-C Generator</h5> -<!--l. 224--><p class="noindent" >The C generator translates data, protocol and actor classes into structs together with -a set of methods that operate on them and receive a pointer to those data (called -<span -class="ectt-1000">self </span>in analogy to the implicit C++ <span -class="ectt-1000">this </span>pointer). No dynamic memory allocation -is employed. All actor instances are statically initialized. One of the design goals for -the generated C code was an optimized footprint in terms of memory and -performance to be able to utilize modeling with ROOM also for tiny low end micro -controllers. -</p><!--l. 228--><p class="noindent" > -</p> -<h5 class="subsubsectionHead"><a - id="x74-15200016.2.4"></a>The Documentation Generator</h5> -<!--l. 230--><p class="noindent" >The documentation generator creates documentation in LaTex format which can be -converted into PDF and many other formats. - - - -</p> -<!--l. 42--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch13.html#etrice-docse56.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.3 </span> <a + id="x71-11400013.3"></a>Layout Options</h3> +<!--l. 34--><p class="noindent" >A layout option is a customization point for the layout algorithms, with a specific data type and +optionally a default value, used to affect how the active layout algorithm computes concrete coordinates +for the graph elements. +</p><!--l. 36--><p class="noindent" >User-configurable layout options for a particular diagram object can be viewed and configured through +the Layout View.The Layout View can be opened from the context menu of a selected diagram object by +clicking the <span +class="ecti-1000">Show Layout View </span>entry. +</p><!--l. 38--><p class="noindent" >On opening the layout view, and selecting any layout option, a description of the layout option is +available in the footer of eclipse SDK. This is shown below: +</p><!--l. 40--><p class="noindent" ><img +src="images/043-LayoutOptionDescription.png" alt="PIC" + /> + + +</p> +<!--l. 43--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse57.html" >next</a>] [<a href="etrice-docse55.html" >prev</a>] [<a href="etrice-docse55.html#tailetrice-docse55.html" >prev-tail</a>] [<a href="etrice-docse56.html" >front</a>] [<a -href="etrice-docch16.html#etrice-docse56.html" >up</a>] </p></div> -<!--l. 42--><p class="noindent" ><a - id="tailetrice-docse56.html"></a> </p> +href="etrice-docch13.html#etrice-docse56.html" >up</a>] </p></div> +<!--l. 43--><p class="noindent" ><a + id="tailetrice-docse56.html"></a> </p> </body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse57.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse57.html new file mode 100644 index 000000000..7fa133db9 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse57.html @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Configuring Layout Options</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 43--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse58.html" >next</a>] [<a +href="etrice-docse56.html" >prev</a>] [<a +href="etrice-docse56.html#tailetrice-docse56.html" >prev-tail</a>] [<a +href="#tailetrice-docse57.html">tail</a>] [<a +href="etrice-docch13.html#etrice-docse57.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.4 </span> <a + id="x72-11500013.4"></a>Configuring Layout Options</h3> +<!--l. 46--><p class="noindent" >The values of the layout options for a particular diagram object (in the visible diagram) can be changed +using the Layout View of that diagram object. The initial values are the predefined *default* values. +These defaults can be changed using the context menu in Layout View as well as the Layout preference +pages provided by eTrice. +</p><!--l. 48--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">13.4.1 </span> <a + id="x72-11600013.4.1"></a>The Layout View</h4> +<!--l. 51--><p class="noindent" ><img +src="images/043-LayoutView.png" alt="PIC" + /> +</p><!--l. 54--><p class="noindent" >The Layout view allows flexible customization of layout options for the selected objects in the eTrice +diagram. If no object is selected, the view shows the options for the top-level container of the diagram. +Options are stored persistently in diagram file (*.structure file / *.behavior file) of the eTrice diagram, so +that they are still available after the next Eclipse restart. Of course this requires the diagram to be saved +after an option was changed. +</p><!--l. 56--><p class="noindent" >The options are grouped according to the function of the selected objects. The group Nodes (respectively +Edges, Ports, or Labels) contains options related to the object itself, such as its size or priority, while the +group Parents contains options for the elements contained in the selected objects, such as the applied +layout algorithm or the spacing between elements. Which layout options are displayed depends on the +types of selected objects and the active layout algorithm, since each algorithm supports only a subset of +the available options. Furthermore, some options are only visible if the <span +class="ecti-1000">Show Advanced Properties </span>button +in the view toolbar is activated. The group types can be hidden using the Show Categories +button. +</p><!--l. 58--><p class="noindent" >An option can be changed by selecting or entering a new value in the corresponding cell of the Value +column. +</p><!--l. 60--><p class="noindent" >The most important option is Layout Algorithm, which is used to determine the layout algorithm for the +contents of the selected element. Here either a specific layout algorithm or a layout type can be chosen; in +the latter case, the most suitable layout algorithm of the given type is taken. By changing the active +layout algorithm, the content of the layout view is updated to display only those options that are +supported by the new layout algorithm. +</p><!--l. 62--><p class="noindent" >Selecting Restore Default Value in the context menu or the view toolbar removes any value for the +currently selected option that is stored in the current model file, thus resetting the option to its default +value. The view menu has an entry Remove all Layout Options which resets all options of the current +model by removing persistent data in the model file. +</p><!--l. 64--><p class="noindent" ><img +src="images/043-ContextMenu.png" alt="PIC" + /> +</p><!--l. 67--><p class="noindent" >The context menu for a specific layout option has different alternatives to set the currently active value as +<span +class="ecbx-1000">default </span>value: </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ecti-1000">Set as Default for this Diagram</span>: Changes the open diagram file so that the same value is + applied to all similar objects (edit parts) of that diagram. + + + </li> + <li class="itemize"><span +class="ecti-1000">Set as Default for ... in this Context</span>: Applies the value to all similar objects that are displayed + with the any of the eTrice editors (the option is linked to the edit part class of the selected + object). + </li> + <li class="itemize"><span +class="ecti-1000">Set as Default for all ...</span>: Links the option value with the domain model element or the + diagram type of the selected object (see the context menu depicted above).</li></ul> +<!--l. 76--><p class="noindent" >These four alternatives have different priorities: if present, the default value for the current diagram is +taken first, then the default value for the edit part is checked, then the default value for the domain +model element, and then the default value for the diagram type. +</p><!--l. 78--><p class="noindent" >Tips: </p> + <ul class="itemize1"> + <li class="itemize">The information button of the view toolbar can be used to display some useful details on the + current selection, such as the edit part and domain model classes. + </li> + <li class="itemize">Default values for layout options can most easily be manipulated based on the eTrice domain + model elements.</li></ul> +<!--l. 84--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">13.4.2 </span> <a + id="x72-11700013.4.2"></a>Preference Page</h4> +<!--l. 87--><p class="noindent" >The user-defined *default* values for layout options can also be set using the preference pages provided in +eTrice. Three preference pages have been provided for this purpose </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ecti-1000">Layout</span>: for general preferences regarding layout + </li> + <li class="itemize"><span +class="ecti-1000">Behavior</span>: for setting default values of layout options for eTrice behavior diagrams + </li> + <li class="itemize"><span +class="ecti-1000">Structure</span>: for setting default values of layout options for eTrice structure diagrams</li></ul> +<!--l. 94--><p class="noindent" >These preference pages can be accessed via <span +class="ecti-1000">Windows > Preferences > eTrice > Layout</span>. +</p><!--l. 96--><p class="noindent" >Note that the contents of these preference pages are in sync with the <span +class="ecti-1000">KIELER > Layout </span>preference page +provided by the KIELER. Relevant entries in the <span +class="ecti-1000">KIELER > Layout </span>page are shown in the above +preference pages. +</p><!--l. 98--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x72-11800013.4.2"></a><span +class="ecti-1000">Layout </span>Preference Page</h5> +<!--l. 101--><p class="noindent" >The <span +class="ecti-1000">Layout </span>preference page is meant to configure general options regarding the layout. +</p><!--l. 103--><p class="noindent" >If <span +class="ecti-1000">Set routing style of all edges to oblique </span>is active, all routing styles and smoothness settings of +edges are removed when automatic layout is performed. Since most layouters compute the +routing of edges as part of their algorithm, these styles usually do not yield the expected +results. + + +</p><!--l. 105--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x72-11900013.4.2"></a><span +class="ecti-1000">Behavior </span>and <span +class="ecti-1000">Structure </span>Preference Page</h5> +<!--l. 108--><p class="noindent" >The <span +class="ecti-1000">Behavior </span>and <span +class="ecti-1000">Structure </span>sub-preference pages help in setting up the default values of layout options +in behavior and structure diagrams respectively. +</p><!--l. 110--><p class="noindent" >The <span +class="ecti-1000">Default Layout Option Values </span>table is used to manage the default setting for layout options, which +can also be modified with the context menu of the layout view (see above). All user-defined settings are +displayed here, and the buttons on the right of the table serve to create, edit, and remove entries. The +Type column shows the type of element the option is linked with: either edit part, model element, or +diagram type. The Element column shows the class name for options that relate to edit parts +or domain model elements, and the diagram type name for options that relate to diagram +types. Option is the name of the layout option, and Value is the currently set value of the +option. +</p><!--l. 112--><p class="noindent" >Creating a new entry requires the selection of the type of related element and entering its class name or +identifier. Class names of edit parts can be explored using the information button of the layout view, +while the class names for the domain model elements and the diagram type identifiers for the diagram +types can be selected with the Browse button. After that, a layout option has to be selected from the list +using the corresponding Browse button. Hitting OK creates an entry, and its value can then be set using +the Edit button. +</p><!--l. 114--><p class="noindent" ><img +src="images/043-PreferencePage.png" alt="PIC" + /> +</p><!--l. 117--><p class="noindent" >Note that the <span +class="ecti-1000">Behavior </span>preference page will show only those entries which hold for the behavior +diagrams. Moreover, it will allow setting default values of layout options for only those domain model +elements and diagram types which could be present in the behavior editor diagrams. Similar thing holds +for the <span +class="ecti-1000">Structure </span>preference page. + + +</p> +<!--l. 119--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse58.html" >next</a>] [<a +href="etrice-docse56.html" >prev</a>] [<a +href="etrice-docse56.html#tailetrice-docse56.html" >prev-tail</a>] [<a +href="etrice-docse57.html" >front</a>] [<a +href="etrice-docch13.html#etrice-docse57.html" >up</a>] </p></div> +<!--l. 119--><p class="noindent" ><a + id="tailetrice-docse57.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse58.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse58.html new file mode 100644 index 000000000..8ff881806 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse58.html @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Special Layout Options</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 119--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse59.html" >next</a>] [<a +href="etrice-docse57.html" >prev</a>] [<a +href="etrice-docse57.html#tailetrice-docse57.html" >prev-tail</a>] [<a +href="#tailetrice-docse58.html">tail</a>] [<a +href="etrice-docch13.html#etrice-docse58.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.5 </span> <a + id="x73-12000013.5"></a>Special Layout Options</h3> +<!--l. 122--><p class="noindent" >While most layout options are used to affect how the active layout algorithm computes concrete +coordinates for the graph elements, there are some layout options that have a special role. +</p><!--l. 124--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">13.5.1 </span> <a + id="x73-12100013.5.1"></a>Layout Algorithm</h4> +<!--l. 127--><p class="noindent" >The option with identifier de.cau.cs.kieler.algorithm specifies which layout algorithm to use for the +content of a composite node. The value can be either the identifier of a layout algorithm or the +identifier of a layout type. In the latter case the algorithm with highest priority of that type is +applied. +</p><!--l. 129--><p class="noindent" >For the purpose of automatic diagram layout in eTrice, we use the <span +class="ecti-1000">Layered </span>algorithms which are meant +for lay-outing hierarchical diagrams and are best suited for behavior and structure diagrams in eTrice. For +the behavior diagrams we have used the <span +class="ecti-1000">Graphviz Dot </span>algorithm whereas for the structure +diagrams we have used the <span +class="ecti-1000">KLay Layered </span>algorithm. Though the layout algorithm being +used for performing layout can be changed at ones own will, it is recommended to use the +defaults. +</p><!--l. 131--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">13.5.2 </span> <a + id="x73-12200013.5.2"></a>Diagram Type</h4> +<!--l. 134--><p class="noindent" >Diagram types are used to classify graphical diagrams for setting default layout option values for a +set of similar diagrams. The diagram type of an element is specified with the layout option +de.cau.cs.kieler.diagramType. Thus, these help in +</p><!--l. 136--><p class="noindent" >The following diagram types have been defined and used in eTrice: </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ecti-1000">General </span>- This type is automatically assigned to all diagrams for which no specific type is + declared. (Predefined in KIELER) + </li> + <li class="itemize"><span +class="ecti-1000">eTrice Behavior Diagrams </span>- This type has been assigned to the diagram objects in eTrice + Behavior Diagrams. + </li> + <li class="itemize"><span +class="ecti-1000">eTrice Structure Diagrams </span>- This type has been assigned to the diagram objects in eTrice + Structurer Diagrams.</li></ul> +<!--l. 142--><p class="noindent" >Note that not all diagrams objects in the behavior and structure diagrams are assigned the last two +diagram types. Only the top-level container and the visible bounding box has been assigned these +diagram types in respective editors. + + + + +</p> +<!--l. 144--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse59.html" >next</a>] [<a +href="etrice-docse57.html" >prev</a>] [<a +href="etrice-docse57.html#tailetrice-docse57.html" >prev-tail</a>] [<a +href="etrice-docse58.html" >front</a>] [<a +href="etrice-docch13.html#etrice-docse58.html" >up</a>] </p></div> +<!--l. 144--><p class="noindent" ><a + id="tailetrice-docse58.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse59.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse59.html new file mode 100644 index 000000000..5f6ee7cb6 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse59.html @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Further References</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 144--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch14.html" >next</a>] [<a +href="etrice-docse58.html" >prev</a>] [<a +href="etrice-docse58.html#tailetrice-docse58.html" >prev-tail</a>] [<a +href="#tailetrice-docse59.html">tail</a>] [<a +href="etrice-docch13.html#etrice-docse59.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">13.6 </span> <a + id="x74-12300013.6"></a>Further References</h3> +<!--l. 147--><p class="noindent" >Most parts of the above documentation have been taken from the "KIML +wiki":http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078 and have been +modified for automatic layout in eTrice. A more detailed description about the layout algorithms, predefined +diagram types and the internal structure of KIELER Infrastructure for Meta-Layout(KIML) can be found +at the "KIML wiki":http://rtsys.informatik.uni-kiel.de/confluence/pages/viewpage.action?pageId=328078 +. + + + + + + +</p> +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch14.html" >next</a>] [<a +href="etrice-docse58.html" >prev</a>] [<a +href="etrice-docse58.html#tailetrice-docse58.html" >prev-tail</a>] [<a +href="etrice-docse59.html" >front</a>] [<a +href="etrice-docch13.html#etrice-docse59.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse59.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html index ab82acc51..65be77e7b 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse6.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,9 +22,9 @@ href="#tailetrice-docse6.html">tail</a>] [<a href="etrice-docch5.html#etrice-docse6.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.1 </span> <a id="x13-270005.1"></a>Scope</h3> -<!--l. 5--><p class="noindent" >In this tutorial you will build your first very simple eTrice model. The goal is to learn -the work flow of eTrice and to understand a few basic features of ROOM. You will -perform the following steps: +<!--l. 5--><p class="noindent" >In this tutorial you will build your first very simple eTrice model. The goal is to learn the work flow +of eTrice and to understand a few basic features of ROOM. You will perform the following +steps: </p><!--l. 7--><p class="noindent" > </p><ol class="enumerate1" > <li @@ -42,12 +42,9 @@ perform the following steps: <li class="enumerate" id="x13-27010x5">open the message sequence chart</li></ol> <!--l. 15--><p class="noindent" >Make sure that you have set up the workspace as described in <span -class="ecti-1000">Setting up the</span> -<span -class="ecti-1000">workspace</span>. - - - +class="ecti-1000">Setting up the workspace</span>. + + </p> <!--l. 17--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse7.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse60.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse60.html new file mode 100644 index 000000000..cc07dd79f --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse60.html @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Codegenerators</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch15.html" >next</a>] [<a +href="etrice-docch14.html" >prev</a>] [<a +href="etrice-docch14.html#tailetrice-docch14.html" >prev-tail</a>] [<a +href="#tailetrice-docse60.html">tail</a>] [<a +href="etrice-docch14.html#etrice-docse60.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">14.1 </span> <a + id="x76-12500014.1"></a>Codegenerators</h3> +<!--l. 5--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">14.1.1 </span> <a + id="x76-12600014.1.1"></a>Java Generator</h4> +<!--l. 7--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">14.1.2 </span> <a + id="x76-12700014.1.2"></a>C++ Generator</h4> +<!--l. 9--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">14.1.3 </span> <a + id="x76-12800014.1.3"></a>C Generator</h4> + + + + + + +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch15.html" >next</a>] [<a +href="etrice-docch14.html" >prev</a>] [<a +href="etrice-docch14.html#tailetrice-docch14.html" >prev-tail</a>] [<a +href="etrice-docse60.html" >front</a>] [<a +href="etrice-docch14.html#etrice-docse60.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse60.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse61.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse61.html new file mode 100644 index 000000000..9b97e8a66 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse61.html @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>The ROOM Model</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 19--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse62.html" >next</a>] [<a +href="etrice-docch17.html" >prev</a>] [<a +href="etrice-docch17.html#tailetrice-docch17.html" >prev-tail</a>] [<a +href="#tailetrice-docse61.html">tail</a>] [<a +href="etrice-docch17.html#etrice-docse61.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">17.1 </span> <a + id="x80-13200017.1"></a>The ROOM Model</h3> +<!--l. 21--><p class="noindent" >The ROOM model defines classes for Data, Protocols, Actors, SubSystems and LogicalSystems. +Thereby the three latter form a hierarchy. The @LogicalSystem@ is the top level element of +the structure. It contains references to <span +class="ectt-1000">SubSystemClass </span>elements. The <span +class="ectt-1000">SubSystemClass </span>in +turn contain references to <span +class="ectt-1000">ActorClass </span>elements which again contain (recursively) references +to <span +class="ectt-1000">ActorClass </span>elements. The complete structural hierarchy implies a tree which has the +<span +class="ectt-1000">LogicalSystem </span>as root and where each reference stands for a new node with possibly further +branches. +</p><!--l. 24--><p class="noindent" >Let’s consider a simple example. It doesn’t implement any meaningful and completely omits behavioral +and other aspects. +</p><!--l. 26--><p class="noindent" ><img +src="images/080-room.jpg" alt="PIC" + /> +</p><!--l. 29--><p class="noindent" >When a <span +class="ectt-1000">LogicalSstem </span>is instantiated then recursively all of the contained referenced elements are +instantiated as instances of the corresponding class. Thus the instance tree of above example looks like +this (the third line in the white boxes shows some mapping information, s.b.): +</p><!--l. 31--><p class="noindent" ><img +src="images/080-instances.jpg" alt="PIC" + /> + + +</p> +<!--l. 35--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse62.html" >next</a>] [<a +href="etrice-docch17.html" >prev</a>] [<a +href="etrice-docch17.html#tailetrice-docch17.html" >prev-tail</a>] [<a +href="etrice-docse61.html" >front</a>] [<a +href="etrice-docch17.html#etrice-docse61.html" >up</a>] </p></div> +<!--l. 35--><p class="noindent" ><a + id="tailetrice-docse61.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse62.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse62.html new file mode 100644 index 000000000..b9a255bdb --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse62.html @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>The Config Model</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 35--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse63.html" >next</a>] [<a +href="etrice-docse61.html" >prev</a>] [<a +href="etrice-docse61.html#tailetrice-docse61.html" >prev-tail</a>] [<a +href="#tailetrice-docse62.html">tail</a>] [<a +href="etrice-docch17.html#etrice-docse62.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">17.2 </span> <a + id="x81-13300017.2"></a>The Config Model</h3> +<!--l. 37--><p class="noindent" >Once we have the ROOM class model we can configure values using the Config model. This can be done +on the class level and/or on the instance level. Values defined for class attributes are used for all instances +unless there is an instance value configured for the same attribute. +</p><!--l. 39--><p class="noindent" ><img +src="images/080-config.jpg" alt="PIC" + /> + + +</p> +<!--l. 42--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse63.html" >next</a>] [<a +href="etrice-docse61.html" >prev</a>] [<a +href="etrice-docse61.html#tailetrice-docse61.html" >prev-tail</a>] [<a +href="etrice-docse62.html" >front</a>] [<a +href="etrice-docch17.html#etrice-docse62.html" >up</a>] </p></div> +<!--l. 42--><p class="noindent" ><a + id="tailetrice-docse62.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse63.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse63.html new file mode 100644 index 000000000..dd08a02d8 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse63.html @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>The Physical Model</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 42--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse64.html" >next</a>] [<a +href="etrice-docse62.html" >prev</a>] [<a +href="etrice-docse62.html#tailetrice-docse62.html" >prev-tail</a>] [<a +href="#tailetrice-docse63.html">tail</a>] [<a +href="etrice-docch17.html#etrice-docse63.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">17.3 </span> <a + id="x82-13400017.3"></a>The Physical Model</h3> +<!--l. 44--><p class="noindent" >The physical model defines the physical resources onto which the logical system will be deployed. It is +possible to define runtime classes which (currently) only defines the overall execution model of the +platform. +</p><!--l. 46--><p class="noindent" ><img +src="images/080-runtimes.jpg" alt="PIC" + /> +</p><!--l. 49--><p class="noindent" >The physical system is composed of @Node@ references where each @Node@ is defined as a class +referencing a @RuntimeClass@ and defining @Threads@. +</p><!--l. 51--><p class="noindent" ><img +src="images/080-phys.jpg" alt="PIC" + /> + + +</p> +<!--l. 54--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse64.html" >next</a>] [<a +href="etrice-docse62.html" >prev</a>] [<a +href="etrice-docse62.html#tailetrice-docse62.html" >prev-tail</a>] [<a +href="etrice-docse63.html" >front</a>] [<a +href="etrice-docch17.html#etrice-docse63.html" >up</a>] </p></div> +<!--l. 54--><p class="noindent" ><a + id="tailetrice-docse63.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse64.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse64.html new file mode 100644 index 000000000..66dc64a3a --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse64.html @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>The Mapping Model</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 54--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch18.html" >next</a>] [<a +href="etrice-docse63.html" >prev</a>] [<a +href="etrice-docse63.html#tailetrice-docse63.html" >prev-tail</a>] [<a +href="#tailetrice-docse64.html">tail</a>] [<a +href="etrice-docch17.html#etrice-docse64.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">17.4 </span> <a + id="x83-13500017.4"></a>The Mapping Model</h3> +<!--l. 56--><p class="noindent" >The last model finally combines all this information by mapping logical to physical entities. +</p><!--l. 58--><p class="noindent" ><img +src="images/080-map.jpg" alt="PIC" + /> +</p><!--l. 61--><p class="noindent" >The result of the mapping is also depicted in above tree diagram of the instances. All actor instances (the +white boxes) are mapped to a node and a thread running on this node (shown as @ <span +class="ecti-1000">node </span>: +<span +class="ecti-1000">thread</span>). + + + + + + +</p> +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch18.html" >next</a>] [<a +href="etrice-docse63.html" >prev</a>] [<a +href="etrice-docse63.html#tailetrice-docse63.html" >prev-tail</a>] [<a +href="etrice-docse64.html" >front</a>] [<a +href="etrice-docch17.html#etrice-docse64.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse64.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse65.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse65.html new file mode 100644 index 000000000..9af957636 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse65.html @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Architecture</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 3--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse66.html" >next</a>] [<a +href="etrice-docch18.html" >prev</a>] [<a +href="etrice-docch18.html#tailetrice-docch18.html" >prev-tail</a>] [<a +href="#tailetrice-docse65.html">tail</a>] [<a +href="etrice-docch18.html#etrice-docse65.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">18.1 </span> <a + id="x85-13700018.1"></a>Architecture</h3> +<!--l. 5--><p class="noindent" >The basic components of eTrice are depicted in the following diagram. +</p><!--l. 7--><p class="noindent" ><img +src="images/200-components.jpg" alt="PIC" + /> +</p><!--l. 10--><p class="noindent" >Additional to that the eTrice project comprises runtime libraries and unit tests which are treated in +subsequent sections. +</p><!--l. 12--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.1.1 </span> <a + id="x85-13800018.1.1"></a>Editor and Generator Components</h4> + <ul class="itemize1"> + <li class="itemize">core + <ul class="itemize2"> + <li class="itemize">core.room is an Xtext based language called Room. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.core.room</span>. Room is the basic modeling language of eTrice. + </li> + <li class="itemize">core.config is an Xtext based language called Config. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.core.config</span>. Config is a language designed for the data configuration of + model elements. E.g. class and instance attributes can be specified. + </li> + <li class="itemize">core.genmodel is an EMF based aggregation layer for Room models. It consists of + the plugin <span +class="ecti-1000">org.eclipse.etrice.core.genmodel</span>. a Room model can be transformed into a + genmodel which allows easy access to implicit relations of the Room model.</li></ul> + + + </li> + <li class="itemize">ui + <ul class="itemize2"> + <li class="itemize">textual + <ul class="itemize3"> + <li class="itemize">room.ui is the ui counterpart of core.room. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.core.room.ui</span>. This plug-in realizes IDE concepts like content assist, + error markers and navigation by hyper links for the Room language. + </li> + <li class="itemize">config.ui is the ui counterpart of core.config. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.core.config.ui</span>. This plug-in realizes IDE concepts like content + assist, error markers and navigation by hyper links for the Config language.</li></ul> + </li> + <li class="itemize">graphical + <ul class="itemize3"> + <li class="itemize">ui.common is a set of common code for the two diagram editors. It consists of the + plug-in <span +class="ecti-1000">org.eclipse.etrice.ui.common</span>. + </li> + <li class="itemize">ui.commands encapsulates some commands related to the navigation between eTrice + editors. It consists of the plug-in <span +class="ecti-1000">org.eclipse.etrice.ui.commands</span>. + </li> + <li class="itemize">ui.structure is the Graphiti based editor for the Actor structure. It consists of the + plug-in <span +class="ecti-1000">org.eclipse.etrice.ui.structure</span>. + </li> + <li class="itemize">ui.behavior is the Graphiti based editor for the Actor behavior. It consists of the + plug-in <span +class="ecti-1000">org.eclipse.etrice.ui.behavior</span>.</li></ul> + </li></ul> + </li> + <li class="itemize">generators + <ul class="itemize2"> + <li class="itemize">generator is a set of general classes and language independent parts of all generators. It + consists of the plug-in <span +class="ecti-1000">org.eclipse.etrice.generator</span>. + </li> + <li class="itemize">generator.c is the generator for the ANSI-C target language. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.generator.c</span>. + </li> + <li class="itemize">generator.java is the generator for the Java target language. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.generator.java</span>. + </li> + <li class="itemize">generator.doc is the generator for the model documentation. It consists of the plug-in + <span +class="ecti-1000">org.eclipse.etrice.generator.doc</span>.</li></ul> + </li></ul> +<!--l. 50--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.1.2 </span> <a + id="x85-13900018.1.2"></a>Runtimes</h4> +<!--l. 52--><p class="noindent" >Currently eTrice ships with a C and a Java runtime. The runtimes are libraries written in the target +language against which the generated code is compiled. + + +</p><!--l. 54--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.1.3 </span> <a + id="x85-14000018.1.3"></a>Unit Tests</h4> +<!--l. 56--><p class="noindent" >Most plug-ins and other parts of the code have related unit tests. + + +</p> +<!--l. 58--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse66.html" >next</a>] [<a +href="etrice-docch18.html" >prev</a>] [<a +href="etrice-docch18.html#tailetrice-docch18.html" >prev-tail</a>] [<a +href="etrice-docse65.html" >front</a>] [<a +href="etrice-docch18.html#etrice-docse65.html" >up</a>] </p></div> +<!--l. 58--><p class="noindent" ><a + id="tailetrice-docse65.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse66.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse66.html new file mode 100644 index 000000000..36dd66119 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse66.html @@ -0,0 +1,413 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Component Overview</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> +<!-- xhtml,3,next,html --> +<meta name="src" content="etrice-doc.tex" /> +<meta name="date" content="2013-03-26 21:41:00" /> +<link rel="stylesheet" type="text/css" href="etrice-doc.css" /> +</head><body +> +<!--l. 58--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse65.html" >prev</a>] [<a +href="etrice-docse65.html#tailetrice-docse65.html" >prev-tail</a>] [<a +href="#tailetrice-docse66.html">tail</a>] [<a +href="etrice-docch18.html#etrice-docse66.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">18.2 </span> <a + id="x86-14100018.2"></a>Component Overview</h3> +<!--l. 60--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.2.1 </span> <a + id="x86-14200018.2.1"></a>Room Language Overview</h4> +<!--l. 62--><p class="noindent" >We assume that the reader is familiar with the Xtext concepts. So we concentrate on the details of our +implementation that are worth to be pointed out. +</p><!--l. 64--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14300018.2.1"></a>Model Tweaks</h5> +<!--l. 66--><p class="noindent" >The Room EMF model is inferred from the grammar. However, this powerful mechanism has to be tweaked at +some places. This is done in the <span +class="ecti-1000">/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/RoomPostprocessor.ext</span> +which is written in the legacy Xtend language. +</p><!--l. 69--><p class="noindent" >The following parts of the model are changed or added: </p> + <ul class="itemize1"> + <li class="itemize">the default + + + <div class="verbatim" id="verbatim-22"> + multiplicity +</div> + <!--l. 71--><p class="nopar" > of the <span +class="ectt-1000">Port </span>is set to 1 + </p></li> + <li class="itemize">the operation <span +class="ectt-1000">isReplicated </span>is added to the <span +class="ectt-1000">Port</span> + </li> + <li class="itemize">the default <span +class="ectt-1000">size </span>of the <span +class="ectt-1000">ActorRef </span>is set to 1 + </li> + <li class="itemize">an operation <span +class="ectt-1000">getName </span>is add to the <span +class="ectt-1000">State </span>class + </li> + <li class="itemize">an operation <span +class="ectt-1000">getName </span>is add to the <span +class="ectt-1000">StateGraphItem </span>class + </li> + <li class="itemize">an operation <span +class="ectt-1000">getGeneralProtocol </span>is added to the <span +class="ectt-1000">InterfaceItem</span></li></ul> +<!--l. 79--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14400018.2.1"></a>Imports by URI Using Namespaces</h5> +<!--l. 81--><p class="noindent" >The import mechanism employed is based on URIs. This is configured for one part in the +GenerateRoom.mwe2 model workflow by setting the fragments ImportURIScopingFragment and +ImportUriValidator). For the other part it is configured in the Guice modules by binding +</p> + <ul class="itemize1"> + <li class="itemize"><span +class="ectt-1000">PlatformRelativeUriResolver </span>– this class tries to convert the import URI into a platform + relative URI. It also replaces environment variables written in $ with their respective values. + </li> + <li class="itemize"><span +class="ectt-1000">ImportedNamespaceAwareLocalScopeProvider </span>– this is a standard scope provider which is + aware of namespaces + </li> + <li class="itemize"><span +class="ectt-1000">GlobalNonPlatformURIEditorOpener </span>– this editor opener tries to convert general URIs into + platform URIs because editors can only open platform URIs + </li> + <li class="itemize"><span +class="ectt-1000">ImportAwareHyperlinkHelper </span>– turns the URI part of an import into a navigatable hyper + link</li></ul> +<!--l. 89--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14500018.2.1"></a>Naming</h5> +<!--l. 91--><p class="noindent" >Two classes provide object names used for link resolution and for labels. The <span +class="ectt-1000">RoomNameProvider </span>provides +frequently used name strings, some of them are hierarchical like State paths. The <span +class="ectt-1000">RoomFragmentProvider</span> +serves a more formal purpose since it provides a link between EMF models (as used by the diagram +editors) and the textual model representation used by Xtext. + + +</p><!--l. 95--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14600018.2.1"></a>Helpers</h5> +<!--l. 97--><p class="noindent" >The <span +class="ectt-1000">RoomHelpers </span>class provides a great deal of static methods that help retrieve frequently used +information from the model. Among many, many others </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ectt-1000">getAllEndPorts(ActorClass) </span>- returns a list of all end ports of an actor class including + inherited ones + </li> + <li class="itemize"><span +class="ectt-1000">getInheritedActionCode(Transition, ActorClass) </span>- get the inherited part of a + transition’s action code + </li> + <li class="itemize"><span +class="ectt-1000">getSignature(Operation) </span>- returns a string representing the operation signature suited for + a label</li></ul> +<!--l. 105--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14700018.2.1"></a>Validation</h5> +<!--l. 107--><p class="noindent" >Validation is used from various places. Therefore all validation code is accumulated in the +@ValidationUtil@ class. All methods are static and many of them return a Result object which contains +information about the problem detected as well as object and feature as suited for most validation +purposes. +</p><!--l. 109--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.2.2 </span> <a + id="x86-14800018.2.2"></a>Config Language Overview</h4> +<!--l. 111--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-14900018.2.2"></a>Model Tweaks</h5> +<!--l. 113--><p class="noindent" >A couple of operations are added to the ConfigModel </p> + <ul class="itemize1"> + <li class="itemize"><span +class="ectt-1000">getActorClassConfigs</span> + </li> + <li class="itemize"><span +class="ectt-1000">getActorInstanceConfigs</span> + </li> + <li class="itemize"><span +class="ectt-1000">getProtocolClassConfigs</span> + </li> + <li class="itemize"><span +class="ectt-1000">getSubSystemConfigs</span></li></ul> + + +<!--l. 121--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15000018.2.2"></a>Imports by URI Using Namespaces</h5> +<!--l. 123--><p class="noindent" >Imports are treated like in Room language, section <span +class="ecti-1000">Imports by URI Using Namespaces</span>. +</p><!--l. 125--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15100018.2.2"></a>Util</h5> +<!--l. 127--><p class="noindent" >A set of static utility methods can be found in the <span +class="ectt-1000">ConfigUtil </span>class. +</p><!--l. 129--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.2.3 </span> <a + id="x86-15200018.2.3"></a>Aggregation Layer Overview</h4> +<!--l. 131--><p class="noindent" >The eTrice Generator Model (genmodel) serves as an aggregation layer. Its purpose is to allow easy access +to information which is implicitly contained in the Room model but not simple to retrieve. Examples of +this are the state machine with inherited items or a list of all triggers active at a state in the order in +which they will be evaluated or the actual peer port of an end port (following bindings through relay +ports). +</p><!--l. 134--><p class="noindent" >The Generator Model is created from a list of Room models by a call of the + + +</p> +<div class="verbatim" id="verbatim-23"> +createGeneratorModel(List<RoomModel>, boolean) +</div> +<!--l. 136--><p class="nopar" > +</p><!--l. 138--><p class="noindent" >method of the <span +class="ectt-1000">GeneratorModelBuilder </span>class. +</p><!--l. 140--><p class="noindent" >The <span +class="ectt-1000">Root </span>object of the resulting Generator Model provides chiefly two things: </p> + <ul class="itemize1"> + <li class="itemize">a tree of instances starting at each <span +class="ectt-1000">SubSystem </span>with representations of each <span +class="ectt-1000">ActorInstance</span> + and <span +class="ectt-1000">PortInstance</span> + </li> + <li class="itemize">for each <span +class="ectt-1000">ActorClass </span>a corresponding <span +class="ectt-1000">ExpandedActorClass </span>with an explicit state machine + containing all inherited state graph items</li></ul> +<!--l. 146--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15300018.2.3"></a>The Instance Model</h5> +<!--l. 148--><p class="noindent" >The instance model allows easy access to instances including their unique paths and object IDs. Also it is +possible to get a list of all peer port instances for each port instance without having to bother about port +and actor replication. +</p><!--l. 150--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15400018.2.3"></a>The Expanded Actor Class</h5> +<!--l. 152--><p class="noindent" >The expanded actor class contains, as already mentioned, the complete state machine of the actor class. +This considerably simplifies the task of state machine generation. Note that the generated code always +contains the complete state machine of an actor. I.e. no target language inheritance is used to +implement the state machine inheritance. Furthermore the <span +class="ectt-1000">ExpandedActorClass </span>gives access to +</p> + <ul class="itemize1"> + <li class="itemize"><span +class="ectt-1000">getIncomingTransitions(StateGraphNode) </span>– the set of incoming transition of a + <span +class="ectt-1000">StateGraphNode </span>(<span +class="ectt-1000">State</span>, <span +class="ectt-1000">ChoicePoint </span>or <span +class="ectt-1000">TransitionPoint</span>) + </li> + <li class="itemize"><span +class="ectt-1000">getOutgoingTransitions(StateGraphNode) </span>– the set of outgoing transition of a + <span +class="ectt-1000">StateGraphNode</span> + </li> + <li class="itemize"><span +class="ectt-1000">getActiveTriggers(State) </span>– the triggers that are active in this <span +class="ectt-1000">State </span>in the order they + are evaluated</li></ul> + + +<!--l. 160--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15500018.2.3"></a>Transition Chains</h5> +<!--l. 162--><p class="noindent" >By transition chains we denote a connected subset of the (hierarchical) state machine that starts with a +transition starting at a state and continues over transitional state graph nodes (choice points and +transition points) and continuation transitions until a state is reached. In general a transition chain starts +at one state and ends in several states (the chain may branch in choice points). A <span +class="ectt-1000">TransitionChain </span>of a +transition is retrieved by a call of <span +class="ectt-1000">getChain(Transition) </span>of the <span +class="ectt-1000">ExpandedActorClass</span>. The +<span +class="ectt-1000">TransitionChain </span>accepts an <span +class="ectt-1000">ITransitionChainVisitor </span>which is called along the chain to generate the +action codes of involved transitions and the conditional statements arising from the involved choice +points. +</p><!--l. 166--><p class="noindent" > +</p> +<h4 class="subsectionHead"><span class="titlemark">18.2.4 </span> <a + id="x86-15600018.2.4"></a>Generator Overview</h4> +<!--l. 168--><p class="noindent" >There is one plug-in that consists of base classes and some generic generator parts which are re-used by +all language specific generators +</p><!--l. 170--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15700018.2.4"></a>Base Classes and Interfaces</h5> +<!--l. 172--><p class="noindent" >We just want to mention the most important classes and interfaces. +</p> + <ul class="itemize1"> + <li class="itemize"> + <div class="flushleft" +> +<!--l. 175--><p class="noindent" > +<span +class="ectt-1000">ITranslationProvider </span>— this interface is used by the <span +class="ectt-1000">DetailCodeTranslator </span>for the language +dependent translation of e.g. port.message() notation in detail code</p></div> + </li> + <li class="itemize"><span +class="ectt-1000">AbstractGenerator </span>— concrete language generators should derive from this base class + </li> + <li class="itemize"> + <div class="flushleft" +> +<!--l. 177--><p class="noindent" > +<span +class="ectt-1000">DefaultTranslationProvider </span>— a stub implementation of <span +class="ectt-1000">ITranslationProvider </span>from which +clients may derive</p></div> + </li> + <li class="itemize"><span +class="ectt-1000">Indexed </span>— provides an indexed iterable of a given iterable + </li> + <li class="itemize"><span +class="ectt-1000">GeneratorBaseModule </span>— a Google Guice module that binds a couple of basic services. Concrete + language generators should use a module that derives from this</li></ul> + + +<!--l. 182--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-15800018.2.4"></a>Generic Generator Parts</h5> +<!--l. 184--><p class="noindent" >The generic generator parts provide code generation blocks on a medium granularity. The +language dependent top level generators embed those blocks in a larger context (file, class, ...). +Language dependent low level constructs are provided by means of an <span +class="ectt-1000">ILanguageExtension</span>. This +extension and other parts of the generator be configured using Google Guice dependency +injection. +</p> +<!--l. 186--><p class="noindent" ><span class="paragraphHead"><a + id="x86-15900018.2.4"></a><span +class="ecbx-1000">GenericActorClassGenerator</span></span> +The <span +class="ectt-1000">GenericActorClassGenerator </span>generates constants for the interface items of a actor. Those +constants are used by the generated state machine. +</p> +<!--l. 190--><p class="noindent" ><span class="paragraphHead"><a + id="x86-16000018.2.4"></a><span +class="ecbx-1000">GenericProtocolClassGenerator</span></span> +The <span +class="ectt-1000">GenericProtocolClassGenerator </span>generates message ID constants for a protocol. +</p> +<!--l. 194--><p class="noindent" ><span class="paragraphHead"><a + id="x86-16100018.2.4"></a><span +class="ecbx-1000">GenericStateMachineGenerator</span></span> +</p> +<div class="flushleft" +> +<!--l. 196--><p class="noindent" > +The <span +class="ectt-1000">GenericStateMachineGenerator </span>generates the complete state machine implementation. +The skeleton of the generated code is</p></div> + <ul class="itemize1"> + <li class="itemize">definition state ID constants + </li> + <li class="itemize">definition of transition chain constants + </li> + <li class="itemize">definition of trigger constants + </li> + <li class="itemize">entry, exit and action code methods + </li> + <li class="itemize">the <span +class="ectt-1000">exitTo </span>method + </li> + <li class="itemize">the <span +class="ectt-1000">executeTransitionChain </span>method + </li> + <li class="itemize">the <span +class="ectt-1000">enterHistory </span>method + + + </li> + <li class="itemize">the <span +class="ectt-1000">executeInitTransition </span>method + </li> + <li class="itemize">the <span +class="ectt-1000">receiveEvent </span>method</li></ul> +<!--l. 210--><p class="noindent" >The state machine works as follows. The main entry method is the <br +class="newline" /><span +class="ectt-1000">receiveEvent </span>method. This is the case for both, data driven (polled) and event driven state +machines. Then a number of nested switch/case statements evaluates trigger conditions and +derives the transition chain that is executed. If a trigger fires then the <span +class="ectt-1000">exitTo </span>method is called +to execute all exit codes involved. Then the transition chain action codes are executed and +the choice point conditions are evaluated in the <span +class="ectt-1000">executeTransitionChain </span>method. Finally +the history of the state where the chain ends is entered and all entry codes are executed by +<span +class="ectt-1000">enterHistory</span>. +</p><!--l. 212--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-16200018.2.4"></a>The Java Generator</h5> +<!--l. 214--><p class="noindent" >The Java generator employs the generic parts of the generator. The <span +class="ectt-1000">JavaTranslationProvider </span>is +very simple and only handles the case of sending a message from a distinct replicated port: +<span +class="ectt-1000">replPort[2].message()</span>. Other cases are handled by the base class by returning the original +text. +</p><!--l. 216--><p class="noindent" >The <span +class="ectt-1000">DataClassGen </span>uses Java inheritance for the generated data classes. Otherwise it is pretty much +straight forward. +</p><!--l. 218--><p class="noindent" >The <span +class="ectt-1000">ProtocolClassGen </span>generates a class for the protocol with nested static classes for regular and +conjugated ports and similar for replicated ports. +</p><!--l. 220--><p class="noindent" >The <span +class="ectt-1000">ActorClassGen </span>uses Java inheritance for the generated actor classes. So ports, SAPs +and attributes and detail code methods are inherited. Not inherited is the state machine +implementation. +</p><!--l. 222--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-16300018.2.4"></a>The ANSI-C Generator</h5> +<!--l. 224--><p class="noindent" >The C generator translates data, protocol and actor classes into structs together with a set of methods +that operate on them and receive a pointer to those data (called <span +class="ectt-1000">self </span>in analogy to the implicit C++ +<span +class="ectt-1000">this </span>pointer). No dynamic memory allocation is employed. All actor instances are statically initialized. +One of the design goals for the generated C code was an optimized footprint in terms of +memory and performance to be able to utilize modeling with ROOM also for tiny low end micro +controllers. +</p><!--l. 228--><p class="noindent" > +</p> +<h5 class="subsubsectionHead"><a + id="x86-16400018.2.4"></a>The Documentation Generator</h5> +<!--l. 230--><p class="noindent" >The documentation generator creates documentation in LaTex format which can be converted into PDF +and many other formats. + + +</p> +<!--l. 44--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docse65.html" >prev</a>] [<a +href="etrice-docse65.html#tailetrice-docse65.html" >prev-tail</a>] [<a +href="etrice-docse66.html" >front</a>] [<a +href="etrice-docch18.html#etrice-docse66.html" >up</a>] </p></div> +<!--l. 44--><p class="noindent" ><a + id="tailetrice-docse66.html"></a> </p> +</body></html> diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html index 23c1b6c91..b94e49ff6 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse7.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,34 +22,34 @@ href="#tailetrice-docse7.html">tail</a>] [<a href="etrice-docch5.html#etrice-docse7.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.2 </span> <a id="x14-280005.2"></a>Create a new model from scratch</h3> -<!--l. 19--><p class="noindent" >The easiest way to create a new eTrice Project is to use the eclipse project wizard. -From the eclipse file menu select <span -class="ecbx-1000">File->New->Project </span>and create a new eTrice -project and name it <span +<!--l. 19--><p class="noindent" >The easiest way to create a new eTrice Project is to use the eclipse project wizard. From the +eclipse file menu select <span +class="ecbx-1000">File->New->Project </span>and create a new eTrice project and name it +<span class="ecbx-1000">HelloWorld</span>. </p><!--l. 21--><p class="noindent" ><img src="images/015-HelloWorld10.png" alt="PIC" /> -</p><!--l. 24--><p class="noindent" >The wizard creates everything that is needed to create, build and run an eTrice -model. The resulting project should look like this: +</p><!--l. 24--><p class="noindent" >The wizard creates everything that is needed to create, build and run an eTrice model. The resulting +project should look like this: </p><!--l. 26--><p class="noindent" ><img src="images/015-HelloWorld11.png" alt="PIC" /> </p><!--l. 29--><p class="noindent" >Within the model directory the model file <span -class="ecti-1000">HelloWorld.room </span>was created. Open the +class="ecti-1000">HelloWorld.room </span>was created. Open the <span +class="ecti-1000">HelloWorld.room </span>file +and delete the contents of the file. Open the content assist with Ctrl+Space and select <span +class="ecti-1000">model</span> <span -class="ecti-1000">HelloWorld.room </span>file and delete the contents of the file. Open the content assist with -Ctrl+Space and select <span -class="ecti-1000">model skeleton</span>. +class="ecti-1000">skeleton</span>. </p><!--l. 31--><p class="noindent" ><img src="images/015-HelloWorld12.png" alt="PIC" /> -</p><!--l. 34--><p class="noindent" >Edit the template variables by typing the new names and jumping with Tab from -name to name. +</p><!--l. 34--><p class="noindent" >Edit the template variables by typing the new names and jumping with Tab from name to +name. </p><!--l. 36--><p class="noindent" >The resulting model code should look like this: - - - + + </p> <div class="verbatim" id="verbatim-1"> RoomModel HelloWorld { @@ -67,9 +67,9 @@ RoomModel HelloWorld {  <br />} </div> <!--l. 52--><p class="nopar" > -</p><!--l. 54--><p class="noindent" >The goal of eTrice is to describe distributed systems on a logical level. In the current -version not all elements will be used. But as prerequisite for further versions the -following elements can be defined: </p> +</p><!--l. 54--><p class="noindent" >The goal of eTrice is to describe distributed systems on a logical level. In the current version not all +elements will be used. But as prerequisite for further versions the following elements can be defined: +</p> <ul class="itemize1"> <li class="itemize">the <span class="ecti-1000">LogicalSystem </span>(currently optional) @@ -80,23 +80,21 @@ class="ecti-1000">SubSystemClass </span>(mandatory) <li class="itemize">at least one <span class="ecti-1000">ActorClass </span>(mandatory)</li></ul> <!--l. 61--><p class="noindent" >The <span -class="ecti-1000">LogicalSystem </span>represents the complete distributed system and contains at least -one <span -class="ecti-1000">SubSystemRef</span>. The <span -class="ecti-1000">SubSystemClass </span>represents an address space and contains at -least one <span +class="ecti-1000">LogicalSystem </span>represents the complete distributed system and contains at least one <span +class="ecti-1000">SubSystemRef</span>. +The <span +class="ecti-1000">SubSystemClass </span>represents an address space and contains at least one <span class="ecti-1000">ActorRef</span>. The <span -class="ecti-1000">ActorClass </span>is the building block of which an application will -be built of. It is in general a good idea to define a top level actor that can be used as -reference within the subsystem. -</p><!--l. 63--><p class="noindent" >The outline view of the textual ROOM editor shows the main modeling elements in -an easy to navigate tree. +class="ecti-1000">ActorClass </span>is +the building block of which an application will be built of. It is in general a good idea to define a top level +actor that can be used as reference within the subsystem. +</p><!--l. 63--><p class="noindent" >The outline view of the textual ROOM editor shows the main modeling elements in an easy to navigate +tree. </p><!--l. 65--><p class="noindent" ><img src="images/015-HelloWorld02.png" alt="PIC" /> - - - + + </p> <!--l. 69--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse8.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html index 6310c2e7a..c5ff023ef 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse8.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,29 +22,27 @@ href="#tailetrice-docse8.html">tail</a>] [<a href="etrice-docch5.html#etrice-docse8.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.3 </span> <a id="x15-290005.3"></a>Create a state machine</h3> -<!--l. 71--><p class="noindent" >We will implement the Hello World code on the initial transition of the +<!--l. 71--><p class="noindent" >We will implement the Hello World code on the initial transition of the <span +class="ecti-1000">HelloWorldTop </span>actor. Therefore +open the state machine editor by right clicking the <span +class="ecti-1000">HelloWorldTop </span>actor in the outline view and select <span -class="ecti-1000">HelloWorldTop </span>actor. Therefore open the state machine editor by right clicking the -<span -class="ecti-1000">HelloWorldTop </span>actor in the outline view and select <span class="ecti-1000">Edit Behavior</span>. </p><!--l. 73--><p class="noindent" ><img src="images/015-HelloWorld03.png" alt="PIC" /> </p><!--l. 76--><p class="noindent" >The state machine editor will be opened. Drag and drop an <span -class="ecti-1000">Initial Point </span>from the -tool box to the diagram into the top level state. Drag and drop a <span -class="ecti-1000">State </span>from the tool -box to the diagram. Confirm the dialogue with <span +class="ecti-1000">Initial Point </span>from the tool box to the +diagram into the top level state. Drag and drop a <span +class="ecti-1000">State </span>from the tool box to the diagram. Confirm the +dialogue with <span class="ecti-1000">ok</span>. Select the <span -class="ecti-1000">Transition </span>in the tool -box and draw the transition from the <span -class="ecti-1000">Initial Point </span>to the State. Open the -transition dialogue by double clicking the transition arrow and fill in the action +class="ecti-1000">Transition </span>in the tool box and draw the transition from the <span +class="ecti-1000">Initial Point </span>to +the State. Open the transition dialogue by double clicking the transition arrow and fill in the action code. - - - + + </p> <div class="verbatim" id="verbatim-2"> System.out.println("Hello World !"); @@ -54,14 +52,13 @@ System.out.println("Hello World !"); </p><!--l. 84--><p class="noindent" ><img src="images/015-HelloWorld04.png" alt="PIC" /> -</p><!--l. 87--><p class="noindent" >Save the diagram and inspect the model file. Note that the textual representation -was created after saving the diagram. +</p><!--l. 87--><p class="noindent" >Save the diagram and inspect the model file. Note that the textual representation was created after saving +the diagram. </p><!--l. 89--><p class="noindent" ><img src="images/015-HelloWorld05.png" alt="PIC" /> - - - + + </p> <!--l. 93--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse9.html" >next</a>] [<a diff --git a/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html b/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html index 5c0d3b80f..cf28091da 100644 --- a/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html +++ b/plugins/org.eclipse.etrice.doc/html/etrice-docse9.html @@ -10,7 +10,7 @@ <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" /> <!-- xhtml,3,next,html --> <meta name="src" content="etrice-doc.tex" /> -<meta name="date" content="2013-03-25 22:23:00" /> +<meta name="date" content="2013-03-26 21:41:00" /> <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> </head><body > @@ -22,33 +22,30 @@ href="#tailetrice-docse9.html">tail</a>] [<a href="etrice-docch5.html#etrice-docse9.html" >up</a>] </p></div> <h3 class="sectionHead"><span class="titlemark">5.4 </span> <a id="x16-300005.4"></a>Build and run the model</h3> -<!--l. 95--><p class="noindent" >Now the model is finished and source code can be generated. The project wizard -has created a launch configuration that is responsible for generating the -source code. From <span -class="ecti-1000">HelloWorld/ </span>right click <span -class="ecbx-1000">gen_HelloWorld.launch </span>and -run it as gen_HelloWorld. All model files in the model directory will be +<!--l. 95--><p class="noindent" >Now the model is finished and source code can be generated. The project wizard has created a launch +configuration that is responsible for generating the source code. From <span +class="ecti-1000">HelloWorld/ </span>right click +<span +class="ecbx-1000">gen_HelloWorld.launch </span>and run it as gen_HelloWorld. All model files in the model directory will be generated. </p><!--l. 97--><p class="noindent" ><img src="images/015-HelloWorld06.png" alt="PIC" /> -</p><!--l. 100--><p class="noindent" >The code will be generated to the src-gen directory. The main function will be -contained in <span -class="ecbx-1000">SubSystem_HelloWorldRunner.java</span>. Select this file and run it as -Java application. +</p><!--l. 100--><p class="noindent" >The code will be generated to the src-gen directory. The main function will be contained in +<span +class="ecbx-1000">SubSystem_HelloWorldRunner.java</span>. Select this file and run it as Java application. + </p><!--l. 102--><p class="noindent" ><img src="images/015-HelloWorld07.png" alt="PIC" /> -</p><!--l. 106--><p class="noindent" >The Hello World application starts and the string will be printed on the console -window. To stop the application the user must type <span -class="ecbx-1000">quit </span>in the console -window. +</p><!--l. 106--><p class="noindent" >The Hello World application starts and the string will be printed on the console window. To stop the +application the user must type <span +class="ecbx-1000">quit </span>in the console window. </p><!--l. 108--><p class="noindent" ><img src="images/015-HelloWorld08.png" alt="PIC" /> - - - + + </p> <!--l. 111--><div class="crosslinks"><p class="noindent">[<a href="etrice-docse10.html" >next</a>] [<a |