[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


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(&quot;AMServiceImplP.Service&quot;)];</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(&quot;AMServiceImplP.Service&quot;)];</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-&gt;data - sizeof(HeaderA));``</div>
! <div class="line">``  return hdr-&gt;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-&gt;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-&gt;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-&gt;header);``</div>
! <div class="line">``  return hdr-&gt;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-&gt;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-&gt;header);</span></tt></div>
! <div class="line"><tt class="docutils literal"><span class="pre">return</span> <span class="pre">hdr-&gt;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-&gt;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.  &quot;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.&quot; 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. &quot;The <em>nesC</em> Language: A Holistic Approach to Networked
- Embedded Systems.&quot; 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.  &quot;A Comparison of Windows 
! Driver Model Latency Performance on Windows NT and Windows 98.&quot; 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. &quot;The <em>nesC</em> Language: A Holistic Approach to Networked
! Embedded Systems.&quot; In <em>Proceedings of the ACM SIGPLAN 2003 Conference on
! Programming Language Design and Implementation (PLDI).</em></td></tr>
  </tbody>
  </table>
  </div>
  </div>



More information about the Tinyos-beta-commits mailing list