[Tinyos-beta-commits] CVS: tinyos-1.x/beta/teps/html tep110.html,
1.1, 1.2 tep111.html, 1.1, 1.2 tep106.html, 1.7, 1.8
Phil Levis
scipio at users.sourceforge.net
Wed Oct 26 10:25:53 PDT 2005
- Previous message: [Tinyos-beta-commits]
CVS: tinyos-1.x/beta/teps/txt tep109.txt, 1.5, 1.6
- Next message: [Tinyos-beta-commits]
CVS: tinyos-1.x/beta/teps/txt tep106.txt, 1.12,
1.13 tep110.txt, 1.3, 1.4 tep111.txt, 1.1, 1.2 tep112.txt, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-1.x/beta/teps/html
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13040/html
Modified Files:
tep110.html tep111.html tep106.html
Log Message:
Fixed formatting errors in some of my TEPs.
Index: tep110.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep110.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tep110.html 20 Sep 2005 16:30:23 -0000 1.1
--- tep110.html 26 Oct 2005 17:25:51 -0000 1.2
***************
*** 537,545 ****
<div class="section" id="tree-collection-convergecast">
<h2><a name="tree-collection-convergecast">3.4 Tree Collection/Convergecast</a></h2>
! <p><a href="#id1" name="id2"><span class="problematic" id="id2">**</span></a>NOTE: These services are not supported as of the 2.x prerelease.
! They will be supported by the first full release.*</p>
! <div class="system-message" id="id1">
! <p class="system-message-title">System Message: <a name="id1">WARNING/2</a> (<tt class="docutils">txt/tep110.txt</tt>, line 249); <em><a href="#id2">backlink</a></em></p>
! Inline strong start-string without end-string.</div>
<p>OSKI's third communication service is tree-based collection routing.
This service has four abstractions:</p>
--- 537,542 ----
<div class="section" id="tree-collection-convergecast">
<h2><a name="tree-collection-convergecast">3.4 Tree Collection/Convergecast</a></h2>
! <p><strong>NOTE: These services are not supported as of the 2.x prerelease.
! They will be supported by the first full release.</strong></p>
<p>OSKI's third communication service is tree-based collection routing.
This service has four abstractions:</p>
***************
*** 770,781 ****
<div class="line">Service = AMServiceImplP.Service[unique("AMServiceImplP.Service")];</div>
</div>
</div>
- <div class="system-message">
- <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">txt/tep110.txt</tt>, line 457)</p>
- Line block ends without a blank line.</div>
- <p><a href="#id3" name="id4"><span class="problematic" id="id4">|</span></a>}</p>
- <div class="system-message" id="id3">
- <p class="system-message-title">System Message: <a name="id3">WARNING/2</a> (<tt class="docutils">txt/tep110.txt</tt>, line 457); <em><a href="#id4">backlink</a></em></p>
- Inline substitution_reference start-string without end-string.</div>
<p>Note that the two strings are the same, so that the uniqueCount() in
the ServiceOrControllerM is correct based on the number of instances
--- 767,772 ----
<div class="line">Service = AMServiceImplP.Service[unique("AMServiceImplP.Service")];</div>
</div>
+ <div class="line">}</div>
</div>
<p>Note that the two strings are the same, so that the uniqueCount() in
the ServiceOrControllerM is correct based on the number of instances
Index: tep111.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep111.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tep111.html 20 Sep 2005 16:30:23 -0000 1.1
--- tep111.html 26 Oct 2005 17:25:51 -0000 1.2
***************
*** 346,415 ****
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">TOS_Msg</span> <span class="pre">{</span></tt></div>
! <div class="line">`` /* The following fields are transmitted/received on the radio. <a href="#id1" name="id2"><span class="problematic" id="id2">*</span></a>/``</div>
! <div class="line">`` uint16_t addr;``</div>
! <div class="line">`` uint8_t type;``</div>
! <div class="line">`` uint8_t group;``</div>
! <div class="line">`` uint8_t length;``</div>
! <div class="line">`` int8_t data[TOSH_DATA_LENGTH];``</div>
! <div class="line">`` uint16_t crc;``</div>
<div class="line"><br /></div>
! <div class="line">`` /* The following fields are not actually transmitted or received ``</div>
! <div class="line">`` * on the radio! They are used for internal accounting only.``</div>
! <div class="line">`` * The reason they are in this structure is that the AM interface``</div>
! <div class="line">`` * requires them to be part of the TOS_Msg that is passed to``</div>
! <div class="line">`` * send/receive operations.``</div>
! <div class="line">`` <a href="#id3" name="id4"><span class="problematic" id="id4">*</span></a>/``</div>
! <div class="line">`` uint16_t strength;``</div>
! <div class="line">`` uint8_t ack;``</div>
! <div class="line">`` uint16_t time;``</div>
! <div class="line">`` uint8_t sendSecurityMode;``</div>
! <div class="line">`` uint8_t receiveSecurityMode;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">TOS_Msg;</span></tt></div>
</div>
- <div class="system-message" id="id1">
- <p class="system-message-title">System Message: <a name="id1">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 58); <em><a href="#id2">backlink</a></em></p>
- Inline emphasis start-string without end-string.</div>
- <div class="system-message" id="id3">
- <p class="system-message-title">System Message: <a name="id3">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 71); <em><a href="#id4">backlink</a></em></p>
- Inline emphasis start-string without end-string.</div>
<p>while on a mote with a CC420 radio (e.g., micaZ), TOS_Msg is defined as:</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">TOS_Msg</span> <span class="pre">{</span></tt></div>
! <div class="line">`` /* The following fields are transmitted/received on the radio. <a href="#id5" name="id6"><span class="problematic" id="id6">*</span></a>/``</div>
! <div class="line">`` uint8_t length;``</div>
! <div class="line">`` uint8_t fcfhi;``</div>
! <div class="line">`` uint8_t fcflo;``</div>
! <div class="line">`` uint8_t dsn;``</div>
! <div class="line">`` uint16_t destpan;``</div>
! <div class="line">`` uint16_t addr;``</div>
! <div class="line">`` uint8_t type;``</div>
! <div class="line">`` uint8_t group;``</div>
! <div class="line">`` int8_t data[TOSH_DATA_LENGTH];``</div>
! <div class="line"><a href="#id7" name="id8"><span class="problematic" id="id8">``</span></a><a href="#id9" name="id10"><span class="problematic" id="id10">``</span></a></div>
! <div class="line">`` /* The following fields are not actually transmitted or received ``</div>
! <div class="line">`` * on the radio! They are used for internal accounting only.``</div>
! <div class="line">`` * The reason they are in this structure is that the AM interface``</div>
! <div class="line">`` * requires them to be part of the TOS_Msg that is passed to``</div>
! <div class="line">`` * send/receive operations.``</div>
! <div class="line">`` <a href="#id11" name="id12"><span class="problematic" id="id12">*</span></a>/``</div>
! <div class="line">`` uint8_t strength;``</div>
! <div class="line">`` uint8_t lqi;``</div>
! <div class="line">`` bool crc;``</div>
! <div class="line">`` uint8_t ack;``</div>
! <div class="line">`` uint16_t time;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">TOS_Msg;</span></tt></div>
</div>
- <div class="system-message" id="id5">
- <p class="system-message-title">System Message: <a name="id5">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 82); <em><a href="#id6">backlink</a></em></p>
- Inline emphasis start-string without end-string.</div>
- <div class="system-message" id="id7">
- <p class="system-message-title">System Message: <a name="id7">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 92); <em><a href="#id8">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
- <div class="system-message" id="id9">
- <p class="system-message-title">System Message: <a name="id9">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 92); <em><a href="#id10">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
- <div class="system-message" id="id11">
- <p class="system-message-title">System Message: <a name="id11">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 98); <em><a href="#id12">backlink</a></em></p>
- Inline emphasis start-string without end-string.</div>
<p>There are two basic problems with this approach. First, exposing all of
the link layer fields leads components to directly access the packet
--- 346,403 ----
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">TOS_Msg</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">following</span> <span class="pre">fields</span> <span class="pre">are</span> <span class="pre">transmitted/received</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">radio.</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">addr;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">type;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">group;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">length;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">int8_t</span> <span class="pre">data[TOSH_DATA_LENGTH];</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">crc;</span></tt></div>
<div class="line"><br /></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">following</span> <span class="pre">fields</span> <span class="pre">are</span> <span class="pre">not</span> <span class="pre">actually</span> <span class="pre">transmitted</span> <span class="pre">or</span> <span class="pre">received</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">radio!</span> <span class="pre">They</span> <span class="pre">are</span> <span class="pre">used</span> <span class="pre">for</span> <span class="pre">internal</span> <span class="pre">accounting</span> <span class="pre">only.</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">reason</span> <span class="pre">they</span> <span class="pre">are</span> <span class="pre">in</span> <span class="pre">this</span> <span class="pre">structure</span> <span class="pre">is</span> <span class="pre">that</span> <span class="pre">the</span> <span class="pre">AM</span> <span class="pre">interface</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">requires</span> <span class="pre">them</span> <span class="pre">to</span> <span class="pre">be</span> <span class="pre">part</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">TOS_Msg</span> <span class="pre">that</span> <span class="pre">is</span> <span class="pre">passed</span> <span class="pre">to</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">send/receive</span> <span class="pre">operations.</span></tt></div>
! <div class="line"><br /></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">strength;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">ack;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">time;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">sendSecurityMode;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">receiveSecurityMode;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">TOS_Msg;</span></tt></div>
</div>
<p>while on a mote with a CC420 radio (e.g., micaZ), TOS_Msg is defined as:</p>
<div class="line-block">
+ <div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">TOS_Msg</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">following</span> <span class="pre">fields</span> <span class="pre">are</span> <span class="pre">transmitted/received</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">radio.</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">length;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">fcfhi;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">fcflo;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">dsn;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">destpan;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">addr;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">type;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">group;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">int8_t</span> <span class="pre">data[TOSH_DATA_LENGTH];</span></tt></div>
! <div class="line"><br /></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">following</span> <span class="pre">fields</span> <span class="pre">are</span> <span class="pre">not</span> <span class="pre">actually</span> <span class="pre">transmitted</span> <span class="pre">or</span> <span class="pre">received</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">on</span> <span class="pre">the</span> <span class="pre">radio!</span> <span class="pre">They</span> <span class="pre">are</span> <span class="pre">used</span> <span class="pre">for</span> <span class="pre">internal</span> <span class="pre">accounting</span> <span class="pre">only.</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">The</span> <span class="pre">reason</span> <span class="pre">they</span> <span class="pre">are</span> <span class="pre">in</span> <span class="pre">this</span> <span class="pre">structure</span> <span class="pre">is</span> <span class="pre">that</span> <span class="pre">the</span> <span class="pre">AM</span> <span class="pre">interface</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">requires</span> <span class="pre">them</span> <span class="pre">to</span> <span class="pre">be</span> <span class="pre">part</span> <span class="pre">of</span> <span class="pre">the</span> <span class="pre">TOS_Msg</span> <span class="pre">that</span> <span class="pre">is</span> <span class="pre">passed</span> <span class="pre">to</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">//</span> <span class="pre">send/receive</span> <span class="pre">operations.</span></tt></div>
! <div class="line"><br /></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">strength;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">lqi;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">bool</span> <span class="pre">crc;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">ack;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">time;</span></tt></div>
! </div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">TOS_Msg;</span></tt></div>
</div>
<p>There are two basic problems with this approach. First, exposing all of
the link layer fields leads components to directly access the packet
***************
*** 434,447 ****
complexities make specifying the format of TOS_Msg very difficult.</p>
</div>
! <div class="section" id="id13">
! <h1><a name="id13">2. message_t</a></h1>
<p>In TinyOS 2.x, the standard message buffer is <tt class="docutils literal"><span class="pre">message_t</span></tt>. The
message_t structure is defined in <tt class="docutils literal"><span class="pre">tos/types/TOSMsg.h</span></tt>:</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">message_t</span> <span class="pre">{</span></tt></div>
! <div class="line">`` TOSRadioHeader header;``</div>
! <div class="line">`` nx_uint8_t data[TOSH_DATA_LENGTH];``</div>
! <div class="line">`` TOSRadioFooter footer;``</div>
! <div class="line">`` TOSRadioMetadata metadata;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">message_t;</span></tt></div>
</div>
--- 422,437 ----
complexities make specifying the format of TOS_Msg very difficult.</p>
</div>
! <div class="section" id="id1">
! <h1><a name="id1">2. message_t</a></h1>
<p>In TinyOS 2.x, the standard message buffer is <tt class="docutils literal"><span class="pre">message_t</span></tt>. The
message_t structure is defined in <tt class="docutils literal"><span class="pre">tos/types/TOSMsg.h</span></tt>:</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">message_t</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">TOSRadioHeader</span> <span class="pre">header;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint8_t</span> <span class="pre">data[TOSH_DATA_LENGTH];</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">TOSRadioFooter</span> <span class="pre">footer;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">TOSRadioMetadata</span> <span class="pre">metadata;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">message_t;</span></tt></div>
</div>
***************
*** 459,492 ****
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KHeader</span> <span class="pre">{</span></tt></div>
! <div class="line">`` nx_am_addr_t addr;``</div>
! <div class="line">`` nx_uint8_t length;``</div>
! <div class="line">`` nx_am_group_t group;``</div>
! <div class="line">`` nx_am_id_t type;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KHeader;</span></tt></div>
! <div class="line"><a href="#id14" name="id15"><span class="problematic" id="id15">``</span></a><a href="#id16" name="id17"><span class="problematic" id="id17">``</span></a></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KFooter</span> <span class="pre">{</span></tt></div>
! <div class="line">`` nxle_uint16_t crc; ``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KFooter;</span></tt></div>
! <div class="line"><a href="#id18" name="id19"><span class="problematic" id="id19">``</span></a><a href="#id20" name="id21"><span class="problematic" id="id21">``</span></a></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KMetadata</span> <span class="pre">{</span></tt></div>
! <div class="line">`` nx_uint16_t strength;``</div>
! <div class="line">`` nx_uint8_t ack;``</div>
! <div class="line">`` nx_uint16_t time;``</div>
! <div class="line">`` nx_uint8_t sendSecurityMode;``</div>
! <div class="line">`` nx_uint8_t receiveSecurityMode; ``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KMetadata;</span></tt></div>
</div>
- <div class="system-message" id="id14">
- <p class="system-message-title">System Message: <a name="id14">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 163); <em><a href="#id15">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
- <div class="system-message" id="id16">
- <p class="system-message-title">System Message: <a name="id16">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 163); <em><a href="#id17">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
- <div class="system-message" id="id18">
- <p class="system-message-title">System Message: <a name="id18">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 167); <em><a href="#id19">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
- <div class="system-message" id="id20">
- <p class="system-message-title">System Message: <a name="id20">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 167); <em><a href="#id21">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
<p>Each link layer defines its structres, but a <strong>platform</strong> is responsible
for defining <tt class="docutils literal"><span class="pre">TOSRadioHeader</span></tt>, <tt class="docutils literal"><span class="pre">TOSRadioFooter</span></tt>, and <tt class="docutils literal"><span class="pre">TOSRadioMetadata</span></tt>.
--- 449,476 ----
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KHeader</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">nx_am_addr_t</span> <span class="pre">addr;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint8_t</span> <span class="pre">length;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_am_group_t</span> <span class="pre">group;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_am_id_t</span> <span class="pre">type;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KHeader;</span></tt></div>
! <div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KFooter</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">nxle_uint16_t</span> <span class="pre">crc;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KFooter;</span></tt></div>
! <div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">nx_struct</span> <span class="pre">CC1KMetadata</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint16_t</span> <span class="pre">strength;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint8_t</span> <span class="pre">ack;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint16_t</span> <span class="pre">time;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint8_t</span> <span class="pre">sendSecurityMode;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">nx_uint8_t</span> <span class="pre">receiveSecurityMode;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">CC1KMetadata;</span></tt></div>
</div>
<p>Each link layer defines its structres, but a <strong>platform</strong> is responsible
for defining <tt class="docutils literal"><span class="pre">TOSRadioHeader</span></tt>, <tt class="docutils literal"><span class="pre">TOSRadioFooter</span></tt>, and <tt class="docutils literal"><span class="pre">TOSRadioMetadata</span></tt>.
***************
*** 504,522 ****
that has both a CC1000 and a CC2420 radio. Its RadioTOSMsg.h looks like this:</p>
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaHeader</span> <span class="pre">{</span></tt></div>
! <div class="line">`` CC1KHeader cc1k;``</div>
! <div class="line">`` CC2420Header cc2420;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaHeader;</span></tt></div>
<div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaFooter</span> <span class="pre">{</span></tt></div>
! <div class="line">`` CC1KFooter cc1k;``</div>
! <div class="line">`` CC2420Footer cc2420;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaFooter;</span></tt></div>
<div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaMetadata</span> <span class="pre">{</span></tt></div>
! <div class="line">`` CC1KMetadata cc1k;``</div>
! <div class="line">`` CC2420Metadata cc2420;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaMetadata;</span></tt></div>
<div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MegaMicaHeader</span> <span class="pre">TOSRadioHeader;</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MegaMicaFooter</span> <span class="pre">TOSRadioFooter;</span></tt></div>
--- 488,514 ----
that has both a CC1000 and a CC2420 radio. Its RadioTOSMsg.h looks like this:</p>
<div class="line-block">
+ <div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaHeader</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">CC1KHeader</span> <span class="pre">cc1k;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">CC2420Header</span> <span class="pre">cc2420;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaHeader;</span></tt></div>
<div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaFooter</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">CC1KFooter</span> <span class="pre">cc1k;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">CC2420Footer</span> <span class="pre">cc2420;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaFooter;</span></tt></div>
<div class="line"><br /></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MegaMicaMetadata</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">CC1KMetadata</span> <span class="pre">cc1k;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">CC2420Metadata</span> <span class="pre">cc2420;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span> <span class="pre">MegaMicaMetadata;</span></tt></div>
<div class="line"><br /></div>
+ </div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MegaMicaHeader</span> <span class="pre">TOSRadioHeader;</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MegaMicaFooter</span> <span class="pre">TOSRadioFooter;</span></tt></div>
***************
*** 561,572 ****
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">HeaderA</span> <span class="pre">{</span></tt></div>
! <div class="line">`` uint8_t a;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">HeaderB</span> <span class="pre">{</span></tt></div>
! <div class="line">`` uint16_t b;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MyHeader</span> <span class="pre">{</span></tt></div>
! <div class="line">`` HeaderA A;``</div>
! <div class="line">`` HeaderB B;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MyHeader</span> <span class="pre">TOSRadioHeader;</span></tt></div>
--- 553,570 ----
<div class="line-block">
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">HeaderA</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">uint8_t</span> <span class="pre">a;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">struct</span> <span class="pre">HeaderB</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">uint16_t</span> <span class="pre">b;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">union</span> <span class="pre">MyHeader</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">HeaderA</span> <span class="pre">A;</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">HeaderB</span> <span class="pre">B;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
<div class="line"><tt class="docutils literal"><span class="pre">typedef</span> <span class="pre">MyHeader</span> <span class="pre">TOSRadioHeader;</span></tt></div>
***************
*** 585,596 ****
returns the field <tt class="docutils literal"><span class="pre">a</span></tt> of HeaderA. Its code looks like this:</p>
<div class="line-block">
! <div class="line"><a href="#id22" name="id23"><span class="problematic" id="id23">``</span></a>command uint8_t APacket.a(message_t* msg) { ``</div>
! <div class="line">`` HeaderA* hdr = (HeaderA*)(msg->data - sizeof(HeaderA));``</div>
! <div class="line">`` return hdr->a;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
- <div class="system-message" id="id22">
- <p class="system-message-title">System Message: <a name="id22">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 279); <em><a href="#id23">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
<p>We can trust the C compiler to optimize the call into a static offset
memory load.</p>
--- 583,593 ----
returns the field <tt class="docutils literal"><span class="pre">a</span></tt> of HeaderA. Its code looks like this:</p>
<div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">command</span> <span class="pre">uint8_t</span> <span class="pre">APacket.a(message_t*</span> <span class="pre">msg)</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">HeaderA*</span> <span class="pre">hdr</span> <span class="pre">=</span> <span class="pre">(HeaderA*)(msg->data</span> <span class="pre">-</span> <span class="pre">sizeof(HeaderA));</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">return</span> <span class="pre">hdr->a;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
<p>We can trust the C compiler to optimize the call into a static offset
memory load.</p>
***************
*** 598,619 ****
It is an example of what components MUST NOT do:</p>
<div class="line-block">
! <div class="line"><a href="#id24" name="id25"><span class="problematic" id="id25">``</span></a>command uint8_t APacket.a(message_t* msg) { ``</div>
! <div class="line">`` HeaderA* hdr = (HeaderA*)(msg->header);``</div>
! <div class="line">`` return hdr->a;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
- <div class="system-message" id="id24">
- <p class="system-message-title">System Message: <a name="id24">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 290); <em><a href="#id25">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
<p>The following example is also incorrect, as it directly accesses the
header structure. It is an example of what components MUST NOT do.</p>
<div class="line-block">
! <div class="line"><a href="#id26" name="id27"><span class="problematic" id="id27">``</span></a>command uint8_t APacket.a(message_t* msg) { ``</div>
! <div class="line">`` return msg->header.A.a;``</div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
- <div class="system-message" id="id26">
- <p class="system-message-title">System Message: <a name="id26">WARNING/2</a> (<tt class="docutils">txt/tep111.txt</tt>, line 298); <em><a href="#id27">backlink</a></em></p>
- Inline literal start-string without end-string.</div>
</div>
<div class="section" id="tosradiofooter">
--- 595,614 ----
It is an example of what components MUST NOT do:</p>
<div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">command</span> <span class="pre">uint8_t</span> <span class="pre">APacket.a(message_t*</span> <span class="pre">msg)</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">HeaderA*</span> <span class="pre">hdr</span> <span class="pre">=</span> <span class="pre">(HeaderA*)(msg->header);</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">return</span> <span class="pre">hdr->a;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
<p>The following example is also incorrect, as it directly accesses the
header structure. It is an example of what components MUST NOT do.</p>
<div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">command</span> <span class="pre">uint8_t</span> <span class="pre">APacket.a(message_t*</span> <span class="pre">msg)</span> <span class="pre">{</span></tt></div>
! <div class="line-block">
! <div class="line"><tt class="docutils literal"><span class="pre">return</span> <span class="pre">msg->header.A.a;</span></tt></div>
! </div>
<div class="line"><tt class="docutils literal"><span class="pre">}</span></tt></div>
</div>
</div>
<div class="section" id="tosradiofooter">
Index: tep106.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/html/tep106.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** tep106.html 20 Sep 2005 16:30:23 -0000 1.7
--- tep106.html 26 Oct 2005 17:25:51 -0000 1.8
***************
*** 672,696 ****
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="id1">[1]</a></td><td>Erik Cota-Robles and James P. Held. "A Comparison of Windows</td></tr>
</tbody>
</table>
- <div class="system-message">
- <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">txt/tep106.txt</tt>, line 369)</p>
- Explicit markup ends without a blank line; unexpected unindent.</div>
- <p>Driver Model Latency Performance on Windows NT and Windows 98." In
- <em>Proceedings of the Third Symposium on Operating System Design
- and Implementation (OSDI).</em></p>
<table class="docutils footnote" frame="void" id="id2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="id2">[2]</a></td><td>David Gay, Philip Levis, Rob von Behren, Matt Welsh, Eric Brewer</td></tr>
</tbody>
</table>
- <div class="system-message">
- <p class="system-message-title">System Message: WARNING/2 (<tt class="docutils">txt/tep106.txt</tt>, line 374)</p>
- Explicit markup ends without a blank line; unexpected unindent.</div>
- <p>and David Culler. "The <em>nesC</em> Language: A Holistic Approach to Networked
- Embedded Systems." In <em>Proceedings of the ACM SIGPLAN 2003 Conference on
- Programming Language Design and Implementation (PLDI).</em></p>
</div>
</div>
--- 672,690 ----
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="id1">[1]</a></td><td>Erik Cota-Robles and James P. Held. "A Comparison of Windows
! Driver Model Latency Performance on Windows NT and Windows 98." In
! <em>Proceedings of the Third Symposium on Operating System Design
! and Implementation (OSDI).</em></td></tr>
</tbody>
</table>
<table class="docutils footnote" frame="void" id="id2" rules="none">
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="id2">[2]</a></td><td>David Gay, Philip Levis, Rob von Behren, Matt Welsh, Eric Brewer
! and David Culler. "The <em>nesC</em> Language: A Holistic Approach to Networked
! Embedded Systems." In <em>Proceedings of the ACM SIGPLAN 2003 Conference on
! Programming Language Design and Implementation (PLDI).</em></td></tr>
</tbody>
</table>
</div>
</div>
- Previous message: [Tinyos-beta-commits]
CVS: tinyos-1.x/beta/teps/txt tep109.txt, 1.5, 1.6
- Next message: [Tinyos-beta-commits]
CVS: tinyos-1.x/beta/teps/txt tep106.txt, 1.12,
1.13 tep110.txt, 1.3, 1.4 tep111.txt, 1.1, 1.2 tep112.txt, 1.4, 1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-beta-commits
mailing list