| <?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>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="2015-07-03 15:56:00" /> |
| <link rel="stylesheet" type="text/css" href="etrice-doc.css" /> |
| </head><body |
| > |
| <!--l. 1--><div class="crosslinks"><p class="noindent">[<a |
| href="etrice-docch7.html" >next</a>] [<a |
| href="etrice-docse22.html" >prev</a>] [<a |
| href="etrice-docse22.html#tailetrice-docse22.html" >prev-tail</a>] [<a |
| href="#tailetrice-docse23.html">tail</a>] [<a |
| href="etrice-docch6.html#etrice-docse23.html" >up</a>] </p></div> |
| <h3 class="sectionHead"><span class="titlemark">6.6 </span> <a |
| id="x31-1820006"></a>eTrice Models and Their Relations</h3> |
| <!--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">the Config model (*.config) – defines configuration values for attributes |
| </li> |
| <li class="itemize">the Physical model (*.etphys) – defines the structure and properties of the physical system |
| </li> |
| <li class="itemize">the 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. 15--><p class="noindent" ><img |
| src="images/080-models.jpg" alt="PIC" |
| /> |
| </p><!--l. 17--><p class="noindent" >In the following sections we will describe those models with emphasis of their cross relations. |
| <a |
| id="x31-182001r245"></a> |
| </p> |
| <h4 class="subsectionHead"><span class="titlemark">6.6.1 </span> <a |
| id="x31-1830001"></a>The ROOM Model</h4> |
| <!--l. 21--><p class="noindent" >The ROOM model defines <span id="textcolor52"><span |
| class="ec-lmssbx-10">DataClass</span></span>es, <span id="textcolor53"><span |
| class="ec-lmssbx-10">ProtocolClass</span></span>es, <span id="textcolor54"><span |
| class="ec-lmssbx-10">ActorClass</span></span>es, <span id="textcolor55"><span |
| class="ec-lmssbx-10">SubSystemClass</span></span>es and <span id="textcolor56"><span |
| class="ec-lmssbx-10">LogicalSystem</span></span>s. Thereby |
| the three latter form a hierarchy. The <span id="textcolor57"><span |
| class="ec-lmssbx-10">LogicalSystem</span></span> is the top level element of the structure. It contains references to |
| <span id="textcolor58"><span |
| class="ec-lmssbx-10">SubSystemClass</span></span> elements. The <span id="textcolor59"><span |
| class="ec-lmssbx-10">SubSystemClass</span></span> in turn contains references to <span id="textcolor60"><span |
| class="ec-lmssbx-10">ActorClass</span></span> elements which again |
| contain (recursively) references to <span id="textcolor61"><span |
| class="ec-lmssbx-10">ActorClass</span></span> elements. The complete structural hierarchy implies a tree |
| which has the <span id="textcolor62"><span |
| class="ec-lmssbx-10">LogicalSystem</span></span> as root and where each reference stands for a new node with possibly further |
| branches. |
| </p><!--l. 29--><p class="noindent" >Let’s consider a simple example. It doesn’t implement anything meaningful and completely omits behavioral and other |
| aspects. |
| </p> |
| <!--l. 32--><div class="lstinputlisting"> |
| <a |
| id="x31-183001r3"></a> |
| <a |
| id="x31-183002"></a> |
| <span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183003r1"></a></span><span |
| class="ec-lmssbx-10x-x-90">RoomModel</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183004r2"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">LogicalSystem</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">Main</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183005r3"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">subA</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">SubA</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183006r4"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">subB</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">SubB</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183007r5"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183008r6"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183009r7"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">SubA</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183010r8"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActA</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183011r9"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actB</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183012r10"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183013r11"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">LogicalThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">dflt</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183014r12"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">LogicalThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183015r13"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actB1</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183016r14"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actC1</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">dflt</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183017r15"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183018r16"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actB2</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183019r17"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183020r18"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183021r19"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">SubB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183022r20"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActA</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183023r21"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actB</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183024r22"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183025r23"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">LogicalThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">dflt</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183026r24"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">LogicalThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183027r25"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183028r26"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183029r27"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183030r28"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActA</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183031r29"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Structure</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183032r30"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attribute</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">int</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183033r31"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actB1</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183034r32"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actB2</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183035r33"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183036r34"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183037r35"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183038r36"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183039r37"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Structure</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183040r38"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attribute</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">int</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183041r39"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actC1</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActC</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183042r40"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">actC2</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActC</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183043r41"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183044r42"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183045r43"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183046r44"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActC</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183047r45"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183048r46"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">PrimitiveType</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">int</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ptInteger</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">int</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">(</span><span |
| class="ec-lmtt-9">Integer</span><span |
| class="ec-lmtt-9">)</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">default</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9">0</span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-183049r47"></a></span><span |
| class="ec-lmtt-9">}</span> |
| <br /> |
| <div class="caption" |
| ><span class="id">Listing 6.3: |
| </span><span |
| class="content">ROOM |
| example |
| code</span></div><!--tex4ht:label?: x31-1830006 --> |
| </div> |
| <!--l. 34--><p class="noindent" >When a <span id="textcolor63"><span |
| class="ec-lmssbx-10">LogicalSystem</span></span> is instantiated then recursively all of the contained referenced elements are instantiated as instances |
| of the corresponding class. Thus the instance tree of the above example looks like in figure <a |
| href="#x31-183050r5">6.5<!--tex4ht:ref: fig:instance_tree --></a> (the third line in the white |
| boxes shows some mapping information, see section <a |
| href="#x31-1860004">6.6.4<!--tex4ht:ref: sec:mapping_model --></a> <a |
| href="#x31-1860004">The Mapping Model<!--tex4ht:ref: sec:mapping_model --></a>): |
| </p> |
| <hr class="figure" /><div class="figure" |
| > |
| |
| |
| <a |
| id="x31-183050r5"></a><a |
| id="x31-18400025"></a><a |
| id="x31-18500011"></a><a |
| id="x31-18500046"></a><a |
| id="x31-18600017"></a> |
| |
| |
| <!--l. 40--><p class="noindent" ><img |
| src="images/080-instances.jpg" alt="PIC" |
| /> |
| <br /> </p><div class="caption" |
| ><span class="id">Figure 6.5: </span><span |
| class="content">Instances of a ROOM system</span></div><!--tex4ht:label?: x31-183050r5 --> |
| |
| |
| </div><hr class="endfigure" /> |
| <a |
| id="x31-183051r253"></a> |
| <h4 class="subsectionHead"><span class="titlemark">6.6.2 </span> <a |
| id="x31-1840002"></a>The Config Model</h4> |
| <!--l. 47--><p class="noindent" >Once we have the ROOM class model we can configure values using the Config model. This can be done on the class level |
| and/or on the instance level. Values defined for class attributes are used for all instances unless there is an instance value |
| configured for the same attribute. |
| </p> |
| <!--l. 51--><div class="lstinputlisting"> |
| <a |
| id="x31-184001r4"></a> |
| <a |
| id="x31-184002"></a> |
| <span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184003r1"></a></span><span |
| class="ec-lmssbx-10x-x-90">ConfigModel</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184004r2"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184005r3"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">import</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9">.*</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">from</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9">room</span><span |
| class="ec-lmtt-9">-</span><span |
| class="ec-lmtt-9">example</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">room</span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184006r4"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184007r5"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActA</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184008r6"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attr</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184009r7"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184010r8"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184011r9"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorClassConfig</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">ActB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184012r10"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attr</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">2</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184013r11"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184014r12"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184015r13"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">Main</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">subA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184016r14"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attr</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">12</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184017r15"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184018r16"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184019r17"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">Main</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">subA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184020r18"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attr</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">13</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184021r19"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184022r20"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184023r21"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ActorInstanceConfig</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">Main</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">subA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actA</span><span |
| class="ec-lmtt-9">/</span><span |
| class="ec-lmtt-9">actB2</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184024r22"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Attr</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">val</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">14</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184025r23"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-184026r24"></a></span><span |
| class="ec-lmtt-9">}</span> |
| <br /> |
| <div class="caption" |
| ><span class="id">Listing 6.4: |
| </span><span |
| class="content">Config |
| example |
| code</span></div><!--tex4ht:label?: x31-1840006 --> |
| </div> |
| <a |
| id="x31-184027r256"></a> |
| <h4 class="subsectionHead"><span class="titlemark">6.6.3 </span> <a |
| id="x31-1850003"></a>The Physical Model</h4> |
| <!--l. 55--><p class="noindent" >The physical model defines the physical resources onto which the logical system will be deployed. It is possible to define |
| runtime classes which (currently) only define the overall execution model of the platform. |
| </p> |
| <!--l. 59--><div class="lstinputlisting"> |
| <a |
| id="x31-185001r5"></a> |
| <a |
| id="x31-185002"></a> |
| <span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185003r1"></a></span><span |
| class="ec-lmssbx-10x-x-90">PhysicalModel</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">runtimes</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185004r2"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185005r3"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">RuntimeClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">PCRuntime</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185006r4"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">model</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">multiThreaded</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185007r5"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185008r6"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185009r7"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">RuntimeClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">MSP430Runtime</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185010r8"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">model</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">singleThreaded</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185011r9"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185012r10"></a></span><span |
| class="ec-lmtt-9">}</span> |
| <br /> |
| <div class="caption" |
| ><span class="id">Listing 6.5: |
| </span><span |
| class="content">etPhys |
| runtime |
| definition</span></div><!--tex4ht:label?: x31-1850006 --> |
| </div> |
| <!--l. 61--><p class="noindent" >The <span id="textcolor64"><span |
| class="ec-lmssbx-10">PhysicalSystem</span></span> is composed of <span id="textcolor65"><span |
| class="ec-lmssbx-10">NodeRef</span></span>erences which are instances of <span id="textcolor66"><span |
| class="ec-lmssbx-10">NodeClass</span></span>es. Each <span id="textcolor67"><span |
| class="ec-lmssbx-10">NodeClass</span></span> is referencing |
| a <span id="textcolor68"><span |
| class="ec-lmssbx-10">RuntimeClass</span></span> and is defining <span id="textcolor69"><span |
| class="ec-lmssbx-10">Threads</span></span>. |
| </p> |
| <!--l. 65--><div class="lstinputlisting"> |
| <a |
| id="x31-185013r6"></a> |
| <a |
| id="x31-185014"></a> |
| <span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185015r1"></a></span><span |
| class="ec-lmssbx-10x-x-90">PhysicalModel</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185016r2"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185017r3"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">import</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9">.*</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">from</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9">etphys</span><span |
| class="ec-lmtt-9">-</span><span |
| class="ec-lmtt-9">runtimes</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">etphys</span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185018r4"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185019r5"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">PhysicalSystem</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">MainPhys</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185020r6"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">NodeRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">pc1</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">PC_Node</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185021r7"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">NodeRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">pc2</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">PC_Node</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185022r8"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">NodeRef</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">mc</span><span |
| class="ec-lmtt-9">:</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">MSP430_Node</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185023r9"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185024r10"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185025r11"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">NodeClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">PC_Node</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185026r12"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">runtime</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">runtimes</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">PCRuntime</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185027r13"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">priomin</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185028r14"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">priomax</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185029r15"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">DefaultThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">thread1</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185030r16"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">execmode</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">blocked</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185031r17"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">prio</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185032r18"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">stacksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1024</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185033r19"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgblocksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">64</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185034r20"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgpoolsize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">50</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185035r21"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185036r22"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Thread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">thread2</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185037r23"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">execmode</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">polled</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185038r24"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">interval</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ms</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185039r25"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">prio</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185040r26"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">stacksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1024</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185041r27"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgblocksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">64</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185042r28"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgpoolsize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">50</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185043r29"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185044r30"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185045r31"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185046r32"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">NodeClass</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">MSP430_Node</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185047r33"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">runtime</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">runtimes</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">MSP430Runtime</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185048r34"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">priomin</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">1</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185049r35"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">priomax</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185050r36"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">DefaultThread</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">main</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185051r37"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">execmode</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">polled</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185052r38"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">interval</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">us</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185053r39"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">prio</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">10</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185054r40"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">stacksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">256</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185055r41"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgblocksize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">64</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185056r42"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">msgpoolsize</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">=</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">50</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185057r43"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185058r44"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-185059r45"></a></span><span |
| class="ec-lmtt-9">}</span> |
| <br /> |
| <div class="caption" |
| ><span class="id">Listing 6.6: |
| </span><span |
| class="content">etPhys |
| example |
| code</span></div><!--tex4ht:label?: x31-1850006 --> |
| </div> |
| <a |
| id="x31-185060r258"></a> |
| |
| |
| <h4 class="subsectionHead"><span class="titlemark">6.6.4 </span> <a |
| id="x31-1860004"></a>The Mapping Model</h4> |
| <!--l. 70--><p class="noindent" >The last model finally combines all this information by mapping logical to physical entities. |
| </p> |
| <!--l. 72--><div class="lstinputlisting"> |
| <a |
| id="x31-186001r7"></a> |
| <a |
| id="x31-186002"></a> |
| <span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186003r1"></a></span><span |
| class="ec-lmssbx-10x-x-90">MappingModel</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186004r2"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186005r3"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">import</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9">.*</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">from</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9">etphys</span><span |
| class="ec-lmtt-9">-</span><span |
| class="ec-lmtt-9">example</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">etphys</span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186006r4"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">import</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">test</span><span |
| class="ec-lmtt-9">.*</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">from</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9">room</span><span |
| class="ec-lmtt-9">-</span><span |
| class="ec-lmtt-9">example</span><span |
| class="ec-lmtt-9">.</span><span |
| class="ec-lmtt-9">room</span><span |
| class="ec-lmtt-9">"</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186007r5"></a></span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186008r6"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">Mapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">Main</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">MainPhys</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186009r7"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">subA</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">pc1</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186010r8"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ThreadMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">dflt</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">thread1</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186011r9"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ThreadMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">thread2</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186012r10"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186013r11"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">SubSystemMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">subB</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">mc</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">{</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186014r12"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ThreadMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">dflt</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">main</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186015r13"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmssbx-10x-x-90">ThreadMapping</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">extra</span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">-></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">main</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186016r14"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186017r15"></a></span><span |
| class="ec-lmtt-9"> </span><span |
| class="ec-lmtt-9">}</span><span |
| class="ec-lmtt-9"> </span><br /><span class="label"><a |
| id="x31-186018r16"></a></span><span |
| class="ec-lmtt-9">}</span> |
| <br /> |
| <div class="caption" |
| ><span class="id">Listing 6.7: |
| </span><span |
| class="content">etMap |
| example |
| code</span></div><!--tex4ht:label?: x31-1860006 --> |
| </div> |
| <!--l. 74--><p class="noindent" >The result of the mapping is also depicted in above tree diagram (figure <a |
| href="#x31-183050r5">6.5<!--tex4ht:ref: fig:instance_tree --></a>) of the instances. All actor instances (the white |
| boxes) are mapped to a node and a thread running on this node (shown as @<span |
| class="ec-lmsso-10">node </span>: <span |
| class="ec-lmsso-10">thread</span>). |
| |
| |
| </p> |
| <!--l. 121--><div class="crosslinks"><p class="noindent">[<a |
| href="etrice-docch7.html" >next</a>] [<a |
| href="etrice-docse22.html" >prev</a>] [<a |
| href="etrice-docse22.html#tailetrice-docse22.html" >prev-tail</a>] [<a |
| href="etrice-docse23.html" >front</a>] [<a |
| href="etrice-docch6.html#etrice-docse23.html" >up</a>] </p></div> |
| <!--l. 121--><p class="noindent" ><a |
| id="tailetrice-docse23.html"></a></p> |
| </body></html> |