diff options
author | Juergen Haug | 2018-11-06 09:40:31 +0000 |
---|---|---|
committer | Juergen Haug | 2018-11-06 09:46:13 +0000 |
commit | 1a7e3a0742e33197af239c92b3740b0348068759 (patch) | |
tree | 53f75e8cc0e3ea7edee2a1ff2dfbf5f377389dd6 | |
parent | a5c62e08bbd198483a0bd26b8a72c845a07a2e8b (diff) | |
download | org.eclipse.etrice-1a7e3a0742e33197af239c92b3740b0348068759.tar.gz org.eclipse.etrice-1a7e3a0742e33197af239c92b3740b0348068759.tar.xz org.eclipse.etrice-1a7e3a0742e33197af239c92b3740b0348068759.zip |
[doc] regenerate of docv_2.0.0-RC4
Change-Id: I59677f0fb07b238720e95fa9eadb9c0b5d0af251
-rw-r--r-- | plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer_ (renamed from plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer) | 0 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer_ (renamed from plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer) | 0 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/online-doc/content/feature-reference.md | 236 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/targets/contextHelp.xml | 76 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/targets/eclipse-help/Dave-Integration.html | 128 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/targets/eclipse-help/feature-reference.html | 196 | ||||
-rw-r--r-- | plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html | 36 |
7 files changed, 333 insertions, 339 deletions
diff --git a/plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer b/plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer_ index 54ae592e9..54ae592e9 100644 --- a/plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer +++ b/plugins/org.eclipse.etrice.doc/featuremodel/development/draft.featurizer_ diff --git a/plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer b/plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer_ index 1558ffd88..1558ffd88 100644 --- a/plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer +++ b/plugins/org.eclipse.etrice.doc/featuremodel/development/markdown.featurizer_ diff --git a/plugins/org.eclipse.etrice.doc/online-doc/content/feature-reference.md b/plugins/org.eclipse.etrice.doc/online-doc/content/feature-reference.md index e2c9c69d5..fd877a40f 100644 --- a/plugins/org.eclipse.etrice.doc/online-doc/content/feature-reference.md +++ b/plugins/org.eclipse.etrice.doc/online-doc/content/feature-reference.md @@ -874,24 +874,22 @@ DataClass TCPConnectionData { **Example**: -¦¦¦ - ```room - DataClass SimpleDataClass { - Attribute attribute1: uint16 - Attribute attribute2: uint32 - } +```room +DataClass SimpleDataClass { + Attribute attribute1: uint16 + Attribute attribute2: uint32 +} - DataClass DataClassExample { - Attribute attribute1: uint32 - Attribute attribute2: SimpleDataClass - Attribute attribute3: voidType ref - - Operation operation1(param1: uint32, param2: uint16): boolean ''' - return true; - ''' - } - ``` - ¦¦¦ +DataClass DataClassExample { + Attribute attribute1: uint32 + Attribute attribute2: SimpleDataClass + Attribute attribute3: voidType ref + + Operation operation1(param1: uint32, param2: uint16): boolean ''' + return true; + ''' +} +``` --- @@ -1180,27 +1178,25 @@ An ExternalType is used to make an target language type accessible in ROOM **Example**: -¦¦¦ - ```room - // Include is needed when used (e.g. in ActorClassWithExternalType) - ExternalType someStructType -> "struct FILE_HANDLE" - - ActorClass ActorClassWithExternalType{ - Structure { - usercode1 ''' - // #include <___.h> /* User includes here*/ - ''' - Attribute someHandle : someStructType ref // needs include - } - Behavior { - Operation operation1(param1: charPtr) ''' - // external calls or casts may need includes - write(someHandle, param1); - ''' - } - } - ``` - ¦¦¦ +```room +// Include is needed when used (e.g. in ActorClassWithExternalType) +ExternalType someStructType -> "struct FILE_HANDLE" + +ActorClass ActorClassWithExternalType{ + Structure { + usercode1 ''' + // #include <___.h> /* User includes here*/ + ''' + Attribute someHandle : someStructType ref // needs include + } + Behavior { + Operation operation1(param1: charPtr) ''' + // external calls or casts may need includes + write(someHandle, param1); + ''' + } +} +``` --- @@ -1270,45 +1266,43 @@ UserCode <==> non-accessible implicit late refinement **Example**: -¦¦¦ - ```room - ActorClass ActorSubClass extends ActorBaseClass { - // inherits all elements from super type hierarchy - } - - ActorClass ActorBaseClass { - Interface { - Port port1 : ProtocolBaseClass - } - Structure { - Attribute attribute1 : uint32 - } - Behavior { - Operation operation1() ''' - return; - ''' - } - } - - ProtocolClass ProtocolSubClass extends ProtocolBaseClass { - // inherits all elements from super type hierarchy - } - - ProtocolClass ProtocolBaseClass { - incoming { - Message message1() - } - } - - DataClass DataSubClass extends DataBaseClass { - // inherits all elements from super type hierarchy - } - - DataClass DataBaseClass { - Attribute attribute1 : uint32 - } - ``` - ¦¦¦ +```room +ActorClass ActorSubClass extends ActorBaseClass { + // inherits all elements from super type hierarchy +} + +ActorClass ActorBaseClass { + Interface { + Port port1 : ProtocolBaseClass + } + Structure { + Attribute attribute1 : uint32 + } + Behavior { + Operation operation1() ''' + return; + ''' + } +} + +ProtocolClass ProtocolSubClass extends ProtocolBaseClass { + // inherits all elements from super type hierarchy +} + +ProtocolClass ProtocolBaseClass { + incoming { + Message message1() + } +} + +DataClass DataSubClass extends DataBaseClass { + // inherits all elements from super type hierarchy +} + +DataClass DataBaseClass { + Attribute attribute1 : uint32 +} +``` --- @@ -1544,45 +1538,43 @@ Operations can be used to define a piece of reusable logic. The definition consi **Example**: -¦¦¦ - ```room - import room.basic.types.* from "../../../org.eclipse.etrice.modellib.c/model/Types.room" - - DataClass DataClassWithOperation { - Attribute attribute1 : uint32 - - Operation operation1(param1: uint32, param2: int32): boolean ''' - return attribute1 > (param1 - param2); - ''' - } - - ActorClass ActorClassWithOperation { - Structure { - Attribute attribute1 : uint32 - } - Behavior { - Operation operation1(param1: uint32, param2: int32): boolean ''' - return attribute1 > (param1 - param2); - ''' - } - } - - ActorClass ActorClassWithOperation2 { - Structure { - usercode1 ''' - // #include <___.h> /* User includes here */ - ''' - Attribute someHandle : voidType ref - } - Behavior { - Operation operation1(param1: charPtr) ''' - // external calls or casts may need includes - write(someHandle, param1); - ''' - } - } - ``` - ¦¦¦ +```room +import room.basic.types.* from "../../../org.eclipse.etrice.modellib.c/model/Types.room" + +DataClass DataClassWithOperation { + Attribute attribute1 : uint32 + + Operation operation1(param1: uint32, param2: int32): boolean ''' + return attribute1 > (param1 - param2); + ''' +} + +ActorClass ActorClassWithOperation { + Structure { + Attribute attribute1 : uint32 + } + Behavior { + Operation operation1(param1: uint32, param2: int32): boolean ''' + return attribute1 > (param1 - param2); + ''' + } +} + +ActorClass ActorClassWithOperation2 { + Structure { + usercode1 ''' + // #include <___.h> /* User includes here */ + ''' + Attribute someHandle : voidType ref + } + Behavior { + Operation operation1(param1: charPtr) ''' + // external calls or casts may need includes + write(someHandle, param1); + ''' + } +} +``` --- @@ -3150,6 +3142,12 @@ The MSCLogging is activated by default, but can be set manually in the [Generati [SAP]: #sap [ServiceImplementation]: #serviceimplementation [SPP]: #spp +[CCodeGenerator]: #ccodegenerator +[JavaCodeGenerator]: #javacodegenerator +[CPPCodeGenerator]: #cppcodegenerator +[GenerationOptions]: #generationoptions +[MSCLogging]: #msclogging +[DataLogging]: #datalogging [TextualROOMEditor]: #textualroomeditor [OutlineView]: #outlineview [GraphicalBehaviorEditor]: #graphicalbehavioreditor @@ -3158,9 +3156,3 @@ The MSCLogging is activated by default, but can be set manually in the [Generati [ActorRefPropertyDialog]: #actorrefpropertydialog [PortPropertyDialog]: #portpropertydialog [SPPPropertyDialog]: #spppropertydialog -[CCodeGenerator]: #ccodegenerator -[JavaCodeGenerator]: #javacodegenerator -[CPPCodeGenerator]: #cppcodegenerator -[GenerationOptions]: #generationoptions -[MSCLogging]: #msclogging -[DataLogging]: #datalogging diff --git a/plugins/org.eclipse.etrice.doc/targets/contextHelp.xml b/plugins/org.eclipse.etrice.doc/targets/contextHelp.xml index 996aae274..a712b3879 100644 --- a/plugins/org.eclipse.etrice.doc/targets/contextHelp.xml +++ b/plugins/org.eclipse.etrice.doc/targets/contextHelp.xml @@ -270,6 +270,44 @@ <topic href="targets/eclipse-help/feature-reference.html#spp" label="SPPPropertyDialog"/> </context> +<context id="featureContextHelp_CCodeGenerator" title="CCodeGenerator"> +<description></description> +<topic href="targets/eclipse-help/feature-reference.html#ccodegenerator" label="CCodeGenerator"/> +</context> + +<context id="featureContextHelp_JavaCodeGenerator" title="JavaCodeGenerator"> +<description></description> +<topic href="targets/eclipse-help/feature-reference.html#javacodegenerator" label="JavaCodeGenerator"/> +</context> + +<context id="featureContextHelp_CPPCodeGenerator" title="CPPCodeGenerator"> +<description></description> +<topic href="targets/eclipse-help/feature-reference.html#cppcodegenerator" label="CPPCodeGenerator"/> +</context> + +<context id="featureContextHelp_GenerationOptions" title="GenerationOptions"> +<description>Mechanism to adjust the generation.</description> +<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="GenerationOptions"/> +<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="CCodeGenerator"/> +<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="JavaCodeGenerator"/> +<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="MSCLogging"/> +</context> + +<context id="featureContextHelp_MSCLogging" title="MSCLogging"> +<description>Runtime logger for event-driven Messages, represented as a Message Sequence Chart.</description> +<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="MSCLogging"/> +<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="GenerationOptions"/> +<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="CCodeGenerator"/> +<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="JavaCodeGenerator"/> +</context> + +<context id="featureContextHelp_DataLogging" title="DataLogging"> +<description>Runtime logger for data-driven Messages with primitive data.</description> +<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="DataLogging"/> +<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="Annotation"/> +<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="CCodeGenerator"/> +</context> + <context id="featureContextHelp_TextualROOMEditor" title="TextualROOMEditor"> <description>Textual model editor</description> <topic href="targets/eclipse-help/feature-reference.html#textualroomeditor" label="TextualROOMEditor"/> @@ -325,42 +363,4 @@ <topic href="targets/eclipse-help/feature-reference.html#spppropertydialog" label="SPP"/> <topic href="targets/eclipse-help/feature-reference.html#spppropertydialog" label="GraphicalStructureEditor"/> </context> - -<context id="featureContextHelp_CCodeGenerator" title="CCodeGenerator"> -<description></description> -<topic href="targets/eclipse-help/feature-reference.html#ccodegenerator" label="CCodeGenerator"/> -</context> - -<context id="featureContextHelp_JavaCodeGenerator" title="JavaCodeGenerator"> -<description></description> -<topic href="targets/eclipse-help/feature-reference.html#javacodegenerator" label="JavaCodeGenerator"/> -</context> - -<context id="featureContextHelp_CPPCodeGenerator" title="CPPCodeGenerator"> -<description></description> -<topic href="targets/eclipse-help/feature-reference.html#cppcodegenerator" label="CPPCodeGenerator"/> -</context> - -<context id="featureContextHelp_GenerationOptions" title="GenerationOptions"> -<description>Mechanism to adjust the generation.</description> -<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="GenerationOptions"/> -<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="CCodeGenerator"/> -<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="JavaCodeGenerator"/> -<topic href="targets/eclipse-help/feature-reference.html#generationoptions" label="MSCLogging"/> -</context> - -<context id="featureContextHelp_MSCLogging" title="MSCLogging"> -<description>Runtime logger for event-driven Messages, represented as a Message Sequence Chart.</description> -<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="MSCLogging"/> -<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="GenerationOptions"/> -<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="CCodeGenerator"/> -<topic href="targets/eclipse-help/feature-reference.html#msclogging" label="JavaCodeGenerator"/> -</context> - -<context id="featureContextHelp_DataLogging" title="DataLogging"> -<description>Runtime logger for data-driven Messages with primitive data.</description> -<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="DataLogging"/> -<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="Annotation"/> -<topic href="targets/eclipse-help/feature-reference.html#datalogging" label="CCodeGenerator"/> -</context> </contexts> diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/Dave-Integration.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/Dave-Integration.html index 3c17cae69..b04dbbfe5 100644 --- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/Dave-Integration.html +++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/Dave-Integration.html @@ -96,9 +96,9 @@ <p>Open <em>BlinkyTutorial.room</em> and create a new Actor called AHWAbstraction by adding the following text:</p> <pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> AHWAbstraction { <span class="keyword">Structure</span> { - <span class="keyword">usercode1</span> ''' - #include <span class="string">"Dave.h"</span> - ''' + <span class="keyword">usercode1</span> <span class="string">''' + #include "Dave.h" + '''</span> } } </code></pre> @@ -130,9 +130,9 @@ <span class="keyword">Port</span> LED1: POnOff } <span class="keyword">Structure</span> { - <span class="keyword">usercode1</span> ''' - #include <span class="string">"Dave.h"</span> - ''' + <span class="keyword">usercode1</span> <span class="string">''' + #include "Dave.h" + '''</span> <span class="keyword">external</span> <span class="keyword">Port</span> LED1 } <span class="keyword">Behavior</span> { @@ -143,17 +143,17 @@ <span class="keyword">triggers</span> { <on: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputHigh(&LED1_P5_9); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: state0 -> state0 { <span class="keyword">triggers</span> { <off: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputLow(&LED1_P5_9); - ''' + '''</span> } } } @@ -186,25 +186,25 @@ <span class="keyword">State</span> state0 <span class="keyword">State</span> state1 <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -> state0 { - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' timer.startTimer(300); - ''' + '''</span> } <span class="keyword">Transition</span> tr0: state0 -> state1 { <span class="keyword">triggers</span> { <timeout: timer> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.on(); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: state1 -> state0 { <span class="keyword">triggers</span> { <timeout: timer> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.off(); - ''' + '''</span> } } } @@ -243,25 +243,25 @@ <span class="keyword">State</span> state0 <span class="keyword">State</span> state1 <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -> state0 { - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' timer.startTimer(300); - ''' + '''</span> } <span class="keyword">Transition</span> tr0: state0 -> state1 { <span class="keyword">triggers</span> { <timeout: timer> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.on(); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: state1 -> state0 { <span class="keyword">triggers</span> { <timeout: timer> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.off(); - ''' + '''</span> } } } @@ -272,9 +272,9 @@ <span class="keyword">Port</span> LED1: POnOff } <span class="keyword">Structure</span> { - <span class="keyword">usercode1</span> ''' - #include <span class="string">"Dave.h"</span> - ''' + <span class="keyword">usercode1</span> <span class="string">''' + #include "Dave.h" + '''</span> <span class="keyword">external</span> <span class="keyword">Port</span> LED1 } <span class="keyword">Behavior</span> { @@ -285,17 +285,17 @@ <span class="keyword">triggers</span> { <on: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputHigh(&LED1_P5_9); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: state0 -> state0 { <span class="keyword">triggers</span> { <off: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputLow(&LED1_P5_9); - ''' + '''</span> } } } @@ -378,14 +378,14 @@ <span class="keyword">State</span> blinking { <span class="keyword">subgraph</span> { <span class="keyword">State</span> on { - <span class="keyword">entry</span> ''' + <span class="keyword">entry</span> <span class="string">''' out.on(); - ''' + '''</span> } <span class="keyword">State</span> off { - <span class="keyword">entry</span> ''' + <span class="keyword">entry</span> <span class="string">''' out.off(); - ''' + '''</span> } <span class="keyword">EntryPoint</span> tp0 <span class="keyword">Transition</span> tr0: on -> off { @@ -399,9 +399,9 @@ } } <span class="keyword">Transition</span> tr2: <span class="keyword">my</span> tp0 -> on { - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' timer.startTimer(300); - ''' + '''</span> } } } @@ -417,10 +417,10 @@ <span class="keyword">triggers</span> { <off: ctrl> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' timer.kill(); out.off(); - ''' + '''</span> } } } @@ -434,9 +434,9 @@ <span class="keyword">conjugated</span> <span class="keyword">Port</span> BUTTON2: POnOff } <span class="keyword">Structure</span> { - <span class="keyword">usercode1</span> ''' - #include <span class="string">"Dave.h"</span> - ''' + <span class="keyword">usercode1</span> <span class="string">''' + #include "Dave.h" + '''</span> <span class="keyword">SAP</span> timer: PTimer <span class="keyword">external</span> <span class="keyword">Port</span> LED1 <span class="keyword">external</span> <span class="keyword">Port</span> LED2 @@ -449,77 +449,77 @@ <span class="keyword">StateMachine</span> { <span class="keyword">State</span> state0 <span class="keyword">Transition</span> init: <span class="keyword">initial</span> -> state0 { - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' timer.startTimer(50); - ''' + '''</span> } <span class="keyword">Transition</span> tr0: state0 -> state0 { <span class="keyword">triggers</span> { <on: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputHigh(&LED1_P5_9); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: state0 -> state0 { <span class="keyword">triggers</span> { <off: LED1> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputLow(&LED1_P5_9); - ''' + '''</span> } <span class="keyword">Transition</span> tr2: state0 -> state0 { <span class="keyword">triggers</span> { <on: LED2> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputHigh(&LED2_P5_8); - ''' + '''</span> } <span class="keyword">Transition</span> tr3: state0 -> state0 { <span class="keyword">triggers</span> { <off: LED2> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' DIGITAL_IO_SetOutputLow(&LED2_P5_8); - ''' + '''</span> } <span class="keyword">Transition</span> tr4: state0 -> state0 { <span class="keyword">triggers</span> { <timeout: timer> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' if (DIGITAL_IO_GetInput(&BUTTON1_P15_13) == 0) { if (b1Status == 0) { - <span class="comment">// input changed -</span> b1Status = 1; + // input changed + b1Status = 1; BUTTON1.on(); } } else { if (b1Status == 1) { - <span class="comment">// input changed -</span> b1Status = 0; + // input changed + b1Status = 0; BUTTON1.off(); } } if (DIGITAL_IO_GetInput(&BUTTON2_P15_12) == 0) { if (b2Status == 0){ - <span class="comment">// input changed -</span> b2Status = 1; + // input changed + b2Status = 1; BUTTON2.on(); } } else { if (b2Status == 1) { - <span class="comment">// input changed -</span> b2Status = 0; + // input changed + b2Status = 0; BUTTON2.off(); } } - ''' + '''</span> } } } @@ -550,17 +550,17 @@ <span class="keyword">triggers</span> { <on: ctrl> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.on(); - ''' + '''</span> } <span class="keyword">Transition</span> tr1: on -> off { <span class="keyword">triggers</span> { <on: ctrl> } - <span class="keyword">action</span> ''' + <span class="keyword">action</span> <span class="string">''' out.off(); - ''' + '''</span> } } } diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/feature-reference.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/feature-reference.html index 57997975a..4f1782b9b 100644 --- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/feature-reference.html +++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/feature-reference.html @@ -712,20 +712,22 @@ </tbody> </table> <p><strong>Example</strong>:</p> -<p>¦¦¦<br> ```room<br/> DataClass SimpleDataClass {<br/> Attribute attribute1: uint16<br/> Attribute attribute2: uint32<br/> }</p> -<pre><code> DataClass DataClassExample { - Attribute attribute1: uint32 - Attribute attribute2: SimpleDataClass - Attribute attribute3: voidType ref - - Operation operation1(param1: uint32, param2: uint16): boolean &#39;&#39;&#39; - return true; - &#39;&#39;&#39; - } - ``` -¦¦¦ +<pre><code class="room customHighlighted"><span class="keyword">DataClass</span> SimpleDataClass { + <span class="keyword">Attribute</span> attribute1: uint16 + <span class="keyword">Attribute</span> attribute2: uint32 +} -</p><hr> +<span class="keyword">DataClass</span> DataClassExample { + <span class="keyword">Attribute</span> attribute1: uint32 + <span class="keyword">Attribute</span> attribute2: SimpleDataClass + <span class="keyword">Attribute</span> attribute3: voidType <span class="keyword">ref</span> + + <span class="keyword">Operation</span> operation1(param1: uint32, param2: uint16): boolean <span class="string">''' + return true; + '''</span> +} +</code></pre> +<hr> <h3><a href="#datatype" name="datatype"></a>DataType</h3> <p>A DataType can take 4 forms and types data elements like an Attribute or Operation argument</p> <table style="vertical-align: middle;" class="table"> @@ -948,25 +950,25 @@ </tbody> </table> <p><strong>Example</strong>:</p> -<p>¦¦¦<br> ```room<br/> // Include is needed when used (e.g. in ActorClassWithExternalType)<br/> ExternalType someStructType -&gt; &ldquo;struct FILE_HANDLE&rdquo;</p> -<pre><code> ActorClass ActorClassWithExternalType{ - Structure { - usercode1 &#39;&#39;&#39; - // #include &lt;___.h&gt; /* User includes here*/ - &#39;&#39;&#39; - Attribute someHandle : someStructType ref // needs include - } - Behavior { - Operation operation1(param1: charPtr) &#39;&#39;&#39; - // external calls or casts may need includes - write(someHandle, param1); - &#39;&#39;&#39; - } - } - ``` -¦¦¦ +<pre><code class="room customHighlighted"><span class="comment">// Include is needed when used (e.g. in ActorClassWithExternalType) +</span><span class="keyword">ExternalType</span> someStructType -> <span class="string">"struct FILE_HANDLE"</span> -</p><hr> +<span class="keyword">ActorClass</span> ActorClassWithExternalType{ + <span class="keyword">Structure</span> { + <span class="keyword">usercode1</span> <span class="string">''' + // #include <___.h> /* User includes here*/ + '''</span> + <span class="keyword">Attribute</span> someHandle : someStructType <span class="keyword">ref</span> <span class="comment">// needs include +</span> } + <span class="keyword">Behavior</span> { + <span class="keyword">Operation</span> operation1(param1: charPtr) <span class="string">''' + // external calls or casts may need includes + write(someHandle, param1); + '''</span> + } +} +</code></pre> +<hr> <h3><a href="#inheritance" name="inheritance"></a>Inheritance</h3> <p>A class can specify a super class and inherits elements from the super class hierarchy</p> <p>When a ROOM class specifies a super class, it generally inherits all elements and properties.<br>In several cases, it is possible, to override these inherited elements. Generally, eTrice has two semantics of overriding: refinement and replacement.<br>Refinement is used in most cases (e.g. StateMachine) and realizes an extension of the overridden elements.<br>In this case, if a sub class overrides a piece of logic from a super class, it will always be executed subsequently to the inherited.<br>Contrary to this, replacement is applied to overridden Operations, similar to programming languages C++ and Java.</p> @@ -1006,42 +1008,43 @@ </tbody> </table> <p><strong>Example</strong>:</p> -<p>¦¦¦<br> ```room<br/> ActorClass ActorSubClass extends ActorBaseClass {<br/> // inherits all elements from super type hierarchy<br/> }</p> -<pre><code> ActorClass ActorBaseClass { - Interface { - Port port1 : ProtocolBaseClass - } - Structure { - Attribute attribute1 : uint32 - } - Behavior { - Operation operation1() &#39;&#39;&#39; - return; - &#39;&#39;&#39; - } - } +<pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> ActorSubClass <span class="keyword">extends</span> ActorBaseClass { + <span class="comment">// inherits all elements from super type hierarchy +</span>} - ProtocolClass ProtocolSubClass extends ProtocolBaseClass { - // inherits all elements from super type hierarchy - } +<span class="keyword">ActorClass</span> ActorBaseClass { + <span class="keyword">Interface</span> { + <span class="keyword">Port</span> port1 : ProtocolBaseClass + } + <span class="keyword">Structure</span> { + <span class="keyword">Attribute</span> attribute1 : uint32 + } + <span class="keyword">Behavior</span> { + <span class="keyword">Operation</span> operation1() <span class="string">''' + return; + '''</span> + } +} - ProtocolClass ProtocolBaseClass { - incoming { - Message message1() - } - } +<span class="keyword">ProtocolClass</span> ProtocolSubClass <span class="keyword">extends</span> ProtocolBaseClass { + <span class="comment">// inherits all elements from super type hierarchy +</span>} - DataClass DataSubClass extends DataBaseClass { - // inherits all elements from super type hierarchy - } +<span class="keyword">ProtocolClass</span> ProtocolBaseClass { + <span class="keyword">incoming</span> { + <span class="keyword">Message</span> message1() + } +} - DataClass DataBaseClass { - Attribute attribute1 : uint32 - } - ``` - ¦¦¦ +<span class="keyword">DataClass</span> DataSubClass <span class="keyword">extends</span> DataBaseClass { + <span class="comment">// inherits all elements from super type hierarchy +</span>} -</p><hr> +<span class="keyword">DataClass</span> DataBaseClass { + <span class="keyword">Attribute</span> attribute1 : uint32 +} +</code></pre> +<hr> <h3><a href="#internalendport" name="internalendport"></a>InternalEndPort</h3> <p>A InternalEndPort is an local Port, that is declared in the internal interface of an ActorClass</p> <pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> InternalEndPortExample { @@ -1228,44 +1231,43 @@ </tbody> </table> <p><strong>Example</strong>:</p> -<p>¦¦¦<br> ```room<br/> import room.basic.types.* from &ldquo;../../../org.eclipse.etrice.modellib.c/model/Types.room&rdquo;</p> -<pre><code> DataClass DataClassWithOperation { - Attribute attribute1 : uint32 - - Operation operation1(param1: uint32, param2: int32): boolean &#39;&#39;&#39; - return attribute1 &gt; (param1 - param2); - &#39;&#39;&#39; - } +<pre><code class="room customHighlighted"><span class="keyword">import</span> room.basic.types.* <span class="keyword">from</span> <span class="string">"../../../org.eclipse.etrice.modellib.c/model/Types.room"</span> - ActorClass ActorClassWithOperation { - Structure { - Attribute attribute1 : uint32 - } - Behavior { - Operation operation1(param1: uint32, param2: int32): boolean &#39;&#39;&#39; - return attribute1 &gt; (param1 - param2); - &#39;&#39;&#39; - } - } +<span class="keyword">DataClass</span> DataClassWithOperation { + <span class="keyword">Attribute</span> attribute1 : uint32 + + <span class="keyword">Operation</span> operation1(param1: uint32, param2: int32): boolean <span class="string">''' + return attribute1 > (param1 - param2); + '''</span> +} - ActorClass ActorClassWithOperation2 { - Structure { - usercode1 &#39;&#39;&#39; - // #include &lt;___.h&gt; /* User includes here */ - &#39;&#39;&#39; - Attribute someHandle : voidType ref - } - Behavior { - Operation operation1(param1: charPtr) &#39;&#39;&#39; - // external calls or casts may need includes - write(someHandle, param1); - &#39;&#39;&#39; - } - } - ``` -¦¦¦ +<span class="keyword">ActorClass</span> ActorClassWithOperation { + <span class="keyword">Structure</span> { + <span class="keyword">Attribute</span> attribute1 : uint32 + } + <span class="keyword">Behavior</span> { + <span class="keyword">Operation</span> operation1(param1: uint32, param2: int32): boolean <span class="string">''' + return attribute1 > (param1 - param2); + '''</span> + } +} -</p><hr> +<span class="keyword">ActorClass</span> ActorClassWithOperation2 { + <span class="keyword">Structure</span> { + <span class="keyword">usercode1</span> <span class="string">''' + // #include <___.h> /* User includes here */ + '''</span> + <span class="keyword">Attribute</span> someHandle : voidType <span class="keyword">ref</span> + } + <span class="keyword">Behavior</span> { + <span class="keyword">Operation</span> operation1(param1: charPtr) <span class="string">''' + // external calls or casts may need includes + write(someHandle, param1); + '''</span> + } +} +</code></pre> +<hr> <h3><a href="#port" name="port"></a>Port</h3> <p>A Port is an instance of a ProtocolClass and the interface for an ActorClass</p> <p>Once a ProtocolClass has been created, it can be used to define actor interfaces. This is accomplished by means of Ports.<br>A Port is a declaration that the set of messages defined by its ProtocolClass is now part of the actor’s interface.<br>It provides strong decoupling of ActorClasses from each other, thus enabling easy testability, reusability and deployment of actors to different threads or nodes.</p> diff --git a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html index 383434f5f..e6ec50cc0 100644 --- a/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html +++ b/plugins/org.eclipse.etrice.doc/targets/eclipse-help/room-concepts.html @@ -120,21 +120,21 @@ <pre><code class="room customHighlighted"><span class="keyword">ActorClass</span> ActorClass4 { <span class="keyword">Behavior</span> { <span class="comment">// no arguments, no return value -</span> <span class="keyword">Operation</span> operation1(): <span class="keyword">void</span> ''' +</span> <span class="keyword">Operation</span> operation1(): <span class="keyword">void</span> <span class="string">''' user code - ''' + '''</span> <span class="comment">// argument of primitive type, return value of primitive type -</span> <span class="keyword">Operation</span> operation2(Param1: int32, Param2: float64): uint16 ''' +</span> <span class="keyword">Operation</span> operation2(Param1: int32, Param2: float64): uint16 <span class="string">''' user code - ''' + '''</span> <span class="comment">// arguments and return value by value -</span> <span class="keyword">Operation</span> operation3(Param1: int32, Param2: DataClass1): DataClass1 ''' +</span> <span class="keyword">Operation</span> operation3(Param1: int32, Param2: DataClass1): DataClass1 <span class="string">''' user code - ''' + '''</span> <span class="comment">// arguments and return value by reference except for primitive types -</span> <span class="keyword">Operation</span> operation4(Param1: int32, Param2: DataClass1 ref): DataClass1 <span class="keyword">ref</span> ''' +</span> <span class="keyword">Operation</span> operation4(Param1: int32, Param2: DataClass1 ref): DataClass1 <span class="keyword">ref</span> <span class="string">''' user code - ''' + '''</span> } } </code></pre> @@ -376,17 +376,17 @@ </span> <span class="keyword">Attribute</span> attribute2: float32 <span class="comment">// attribute of another primitive type </span> <span class="comment">// no arguments, no return value -</span> <span class="keyword">Operation</span> operation1(): <span class="keyword">void</span> ''' +</span> <span class="keyword">Operation</span> operation1(): <span class="keyword">void</span> <span class="string">''' user code - ''' + '''</span> <span class="comment">// argument of primitive type, no return value -</span> <span class="keyword">Operation</span> operation2(Param1: int32): <span class="keyword">void</span> ''' +</span> <span class="keyword">Operation</span> operation2(Param1: int32): <span class="keyword">void</span> <span class="string">''' user code - ''' + '''</span> <span class="comment">// argument of primitive type, return value of primitive type -</span> <span class="keyword">Operation</span> operation3(Param1: int32): float64 ''' +</span> <span class="keyword">Operation</span> operation3(Param1: int32): float64 <span class="string">''' user code - ''' + '''</span> } </code></pre> <p>Example: DataClass using other DataClasses:</p> @@ -395,13 +395,13 @@ </span> <span class="keyword">Attribute</span> attribute2: DataClass1 <span class="comment">// attribute of DataClass </span> <span class="comment">// arguments and return value by value -</span> <span class="keyword">Operation</span> operation1(Param1: int32, Param2: DataClass1): DataClass1 ''' +</span> <span class="keyword">Operation</span> operation1(Param1: int32, Param2: DataClass1): DataClass1 <span class="string">''' user code - ''' + '''</span> <span class="comment">// arguments and return value by reference except for primitive types -</span> <span class="keyword">Operation</span> operation2(Param1: int32, Param2: DataClass1 ref): DataClass1 <span class="keyword">ref</span> ''' +</span> <span class="keyword">Operation</span> operation2(Param1: int32, Param2: DataClass1 ref): DataClass1 <span class="keyword">ref</span> <span class="string">''' user code - ''' + '''</span> } </code></pre> <h2><a href="#layering" name="layering"></a>Layering</h2> |