[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/GGB Straw.htm, 1.3, 1.4

Sukun Kim binetude at users.sourceforge.net
Thu Nov 30 21:55:53 PST 2006


Update of /cvsroot/tinyos/tinyos-1.x/contrib/GGB
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv31181

Modified Files:
	Straw.htm 
Log Message:


Index: Straw.htm
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/GGB/Straw.htm,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Straw.htm	9 Nov 2005 03:40:19 -0000	1.3
--- Straw.htm	1 Dec 2006 05:55:51 -0000	1.4
***************
*** 1,424 ****
! <html xmlns:v="urn:schemas-microsoft-com:vml"
! xmlns:o="urn:schemas-microsoft-com:office:office"
! xmlns:w="urn:schemas-microsoft-com:office:word"
! xmlns="http://www.w3.org/TR/REC-html40">
! 
! <head>
! <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
! <meta name=ProgId content=Word.Document>
! <meta name=Generator content="Microsoft Word 11">
! <meta name=Originator content="Microsoft Word 11">
! <link rel=File-List href="copy_files/filelist.xml">
! <title>Straw &#8211; Reliable Data Collection</title>
! <!--[if gte mso 9]><xml>
!  <o:DocumentProperties>
!   <o:Author>Sukun Kim</o:Author>
!   <o:LastAuthor>Sukun Kim</o:LastAuthor>
!   <o:Revision>10</o:Revision>
!   <o:TotalTime>25</o:TotalTime>
!   <o:Created>2005-06-01T23:59:00Z</o:Created>
!   <o:LastSaved>2005-06-02T00:29:00Z</o:LastSaved>
!   <o:Pages>2</o:Pages>
!   <o:Words>497</o:Words>
!   <o:Characters>2775</o:Characters>
!   <o:Company>EECS - University of California, Berkeley</o:Company>
!   <o:Lines>72</o:Lines>
!   <o:Paragraphs>39</o:Paragraphs>
!   <o:CharactersWithSpaces>3240</o:CharactersWithSpaces>
!   <o:Version>11.6360</o:Version>
!  </o:DocumentProperties>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <w:WordDocument>
!   <w:SpellingState>Clean</w:SpellingState>
!   <w:GrammarState>Clean</w:GrammarState>
!   <w:ValidateAgainstSchemas/>
!   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
!   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
!   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
!   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
!  </w:WordDocument>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
!  </w:LatentStyles>
! </xml><![endif]-->
! <style>
! <!--
!  /* Font Definitions */
!  @font-face
! 	{font-family:Tahoma;
! 	panose-1:2 11 6 4 3 5 4 4 2 4;
! 	mso-font-charset:0;
! 	mso-generic-font-family:swiss;
! 	mso-font-pitch:variable;
! 	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
!  /* Style Definitions */
!  p.MsoNormal, li.MsoNormal, div.MsoNormal
! 	{mso-style-parent:"";
! 	margin:0in;
! 	margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	font-size:12.0pt;
! 	font-family:"Times New Roman";
! 	mso-fareast-font-family:"Times New Roman";}
! a:link, span.MsoHyperlink
! 	{color:#005BB7;
! 	text-decoration:underline;
! 	text-underline:single;}
! a:visited, span.MsoHyperlinkFollowed
! 	{color:#005BB7;
! 	text-decoration:underline;
! 	text-underline:single;}
! p
! 	{mso-margin-top-alt:auto;
! 	margin-right:0in;
! 	mso-margin-bottom-alt:auto;
! 	margin-left:0in;
! 	mso-pagination:widow-orphan;
! 	font-size:12.0pt;
! 	font-family:"Times New Roman";
! 	mso-fareast-font-family:"Times New Roman";}
! pre
! 	{margin:0in;
! 	margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
! 	font-size:10.0pt;
! 	font-family:"Courier New";
! 	mso-fareast-font-family:"Times New Roman";}
! tt
! 	{font-family:"Courier New";
! 	mso-ascii-font-family:"Courier New";
! 	mso-fareast-font-family:"Times New Roman";
! 	mso-hansi-font-family:"Courier New";
! 	mso-bidi-font-family:"Courier New";}
! span.SpellE
! 	{mso-style-name:"";
! 	mso-spl-e:yes;}
! span.GramE
! 	{mso-style-name:"";
! 	mso-gram-e:yes;}
! @page Section1
! 	{size:8.5in 11.0in;
! 	margin:1.0in 1.25in 1.0in 1.25in;
! 	mso-header-margin:.5in;
! 	mso-footer-margin:.5in;
! 	mso-paper-source:0;}
! div.Section1
! 	{page:Section1;}
!  /* List Definitions */
!  @list l0
! 	{mso-list-id:2099204873;
! 	mso-list-type:hybrid;
! 	mso-list-template-ids:-2088202112 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
! @list l0:level1
! 	{mso-level-number-format:bullet;
! 	mso-level-text:\F0B7;
! 	mso-level-tab-stop:.5in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;
! 	font-family:Symbol;}
! @list l0:level2
! 	{mso-level-tab-stop:1.0in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level3
! 	{mso-level-tab-stop:1.5in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level4
! 	{mso-level-tab-stop:2.0in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level5
! 	{mso-level-tab-stop:2.5in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level6
! 	{mso-level-tab-stop:3.0in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level7
! 	{mso-level-tab-stop:3.5in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level8
! 	{mso-level-tab-stop:4.0in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! @list l0:level9
! 	{mso-level-tab-stop:4.5in;
! 	mso-level-number-position:left;
! 	text-indent:-.25in;}
! ol
! 	{margin-bottom:0in;}
! ul
! 	{margin-bottom:0in;}
! -->
! </style>
! <!--[if gte mso 10]>
! <style>
!  /* Style Definitions */
!  table.MsoNormalTable
! 	{mso-style-name:"Table Normal";
! 	mso-tstyle-rowband-size:0;
! 	mso-tstyle-colband-size:0;
! 	mso-style-noshow:yes;
! 	mso-style-parent:"";
! 	mso-padding-alt:0in 5.4pt 0in 5.4pt;
! 	mso-para-margin:0in;
! 	mso-para-margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	font-size:10.0pt;
! 	font-family:"Times New Roman";
! 	mso-ansi-language:#0400;
! 	mso-fareast-language:#0400;
! 	mso-bidi-language:#0400;}
! </style>
! <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="4098"/>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <o:shapelayout v:ext="edit">
!   <o:idmap v:ext="edit" data="1"/>
!  </o:shapelayout></xml><![endif]-->
! </head>
! 
! <body bgcolor=ghostwhite lang=EN-US link="#005BB7" vlink="#005BB7"
! style='tab-interval:.5in'>
! 
! <div class=Section1>
! 
! <p class=MsoNormal>&nbsp; <o:p></o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="100%" style='width:100.0%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-size:20.0pt;font-family:Tahoma'>Straw
!   &#8211; Reliable Data Collection<o:p></o:p></span></b></p>
!   <p><span style='font-family:Tahoma'>Last updated 1 June 2005</span></p>
!   </td>
!  </tr>
! </table>
! 
! <p class=MsoNormal><span style='display:none;mso-hide:all'><o:p>&nbsp;</o:p></span></p>
! 
! <p>Straw collects data reliably from a mote to PC over multi-hop network. When
! command is submitted to JAVA code in PC, it interacts with <span class=SpellE>TinyOS</span>
! code in a mote, and collects data without loss.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><nobr><span style='font-family:Arial'>Usage</span></b><o:p></o:p></p>
!   </td>
!  </tr>
! </table>
! 
! <p>Command to JAVA code is</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre><span
!   class=SpellE>int</span> read(<span class=SpellE>int</span> <span
!   class=SpellE>dest</span>, long start, long size, byte[] <span class=SpellE>bffr</span>)</pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p>Buffer space needs be provided by JAVA application using Straw. And Straw
! interface of <span class=SpellE>TinyOS</span> code</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre>event <span
!   class=SpellE>result_t</span> read(uint32_t start, uint32_t size, uint8_t* <span
!   class=SpellE>bffr</span>)</pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p><span class=GramE>needs</span> be implemented. <span class=SpellE>TinyOS</span>
! Application will fill up buffer, and call <span class=SpellE><span class=GramE>readDone</span></span><span
! class=GramE>(</span>). Size of reading will be smaller than packet size. And
! that&#8217;s it. Data can reside either in RAM or FLASH. As long as address
! space is properly defined so that start and size can be interpreted, Straw
! works.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Location</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p><b style='mso-bidi-font-weight:normal'>JAVA code<o:p></o:p></b></p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tools/java/net/tinyos/straw</p>
! 
! <p><span class=SpellE><b style='mso-bidi-font-weight:normal'>TinyOS</b></span><b
! style='mso-bidi-font-weight:normal'> code<o:p></o:p></b></p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tos/lib/Straw</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Examples</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tools/java/net/tinyos/straw/DataCenter.java</p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/apps/TestStraw</p>
! 
! <p>Two nodes are needed. One node with node number 0 is a base station. The
! other node with node number 1 is a target node to collect data.</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre><span
!   class=SpellE>binetude at pilsner</span> /opt/tinyos-1.x/contrib/GGB/tools/java<o:p></o:p></pre><pre>$ java net/<span
!   class=SpellE>tinyos/straw/DataCenter</span><o:p></o:p></pre><pre>****<span style='mso-spacerun:yes'>  </span>Straw<span style='mso-spacerun:yes'>  </span>****<o:p></o:p></pre><pre>SRSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR<o:p></o:p></pre><pre><span
!   class=SpellE>msgSent</span> = 2, <span class=SpellE>msgRcvd</span> = 49, <span
!   class=SpellE>successRate</span> = 1.0 (48 / 48)<o:p></o:p></pre><pre>Ni = 141, Td = 1578, <span
!   class=SpellE>Rr</span> = 0, total = 1719<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><span
!   class=SpellE>binetude at pilsner</span> /opt/tinyos-1.x/contrib/GGB/tools/java<o:p></o:p></pre><pre>$</pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p>This is a simple example reading FLASH. The result is shown above. At first
! there is a sequence of &#8220;R&#8221; and &#8220;S&#8221;. &#8220;S&#8221;
! means one packet is sent, and &#8220;R&#8221; means one packet is received. At
! the end, statistics are printed. &#8220;<span class=SpellE><span class=GramE>msgSent</span></span>&#8221;
! is the total number of messages sent, &#8220;<span class=SpellE>msgRcvd</span>&#8221;
! is the total number of messages received, and &#8220;<span class=SpellE>successRate</span>&#8221;
! is the raw success rate provided by the low layer. &#8220;Ni&#8221; is the time
! taken to gather network information, which is used to tune parameters. &#8220;Td&#8221;
! is the time taken to transfer the entire data once. &#8220;Rd&#8221; is the
! time taken to fill holes (to retransmit missing packets). And &#8220;total&#8221;
! is the total time taken (sum of the previous three).</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tools/java/net/tinyos/MGenj</p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/apps/mgent</p>
! 
! <p>This is Structure Monitoring Toolkit (SMT). It is somewhat big application,
! and contains pretty much needed by Structure or Machine Monitoring (with time
! synchronization, high frequency sampling, etc). Many useful debugging tools are
! also provided.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="100%" style='width:100.0%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><nobr><span style='font-family:Arial'>Additional
!   Features</span></b><b><span style='mso-bidi-font-size:10.0pt;font-family:
!   Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
! tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
! mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
! style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span></span></span><![endif]>Straw works for small data set: down to 1 byte
! (it surely is reliable, but would not be the most efficient way).</p>
! 
! <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
! tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
! mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
! style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span></span></span><![endif]>Straw works for very large data set: entire
! FLASH can be read with a single command.</p>
! 
! <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
! tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
! mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
! style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span></span></span><![endif]>Direct UART communication is supported. Before
! calling <span class=GramE>read(</span>) in JAVA code, simply set <span
! class=SpellE>Straw.toUART</span> to 1.</p>
! 
! <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
! tab-stops:list .5in'><![if !supportLists]><span style='font-family:Symbol;
! mso-fareast-font-family:Symbol;mso-bidi-font-family:Symbol'><span
! style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
! </span></span></span><![endif]>To reduce RAM usage (but at the expense of
! performance), NO_OF_BFFR in <span class=SpellE>StrawM.nc</span> can be set to
! smaller number (down to 1).</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Known Problems</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p>With Mint route, after sending large number of packets at high speed, some
! link blacks out. But link revives after some time. SMT divides one big transfer
! into two smaller transfers. And it waits 3 min between transfers for routing
! layer to recover.</p>
! 
! <p>&nbsp; <o:p></o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><nobr><span style='font-family:Arial'>Straw</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p>Scalable Thin and Rapid Amassment Without loss</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! </div>
! 
! </body>
! 
! </html>
  <!--  LocalWords:  TinyOS nesC nc async norace BlinkM FooM ncc SingleTimer Leds
   -->
--- 1,340 ----
! <html xmlns:v="urn:schemas-microsoft-com:vml"
! xmlns:o="urn:schemas-microsoft-com:office:office"
! xmlns:w="urn:schemas-microsoft-com:office:word"
! xmlns="http://www.w3.org/TR/REC-html40">
! 
! <head>
! <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
! <meta name=ProgId content=Word.Document>
! <meta name=Generator content="Microsoft Word 11">
! <meta name=Originator content="Microsoft Word 11">
! <link rel=File-List href="Straw_files/filelist.xml">
! <title>Straw &#8211; Reliable Data Collection</title>
! <!--[if gte mso 9]><xml>
!  <o:DocumentProperties>
!   <o:Author>Sukun Kim</o:Author>
!   <o:LastAuthor>Sukun Kim</o:LastAuthor>
!   <o:Revision>21</o:Revision>
!   <o:TotalTime>38</o:TotalTime>
!   <o:LastPrinted>2006-12-01T05:42:00Z</o:LastPrinted>
!   <o:Created>2005-06-01T23:59:00Z</o:Created>
!   <o:LastSaved>2006-12-01T05:55:00Z</o:LastSaved>
!   <o:Pages>1</o:Pages>
!   <o:Words>409</o:Words>
!   <o:Characters>2333</o:Characters>
!   <o:Company>EECS - University of California, Berkeley</o:Company>
!   <o:Lines>19</o:Lines>
!   <o:Paragraphs>5</o:Paragraphs>
!   <o:CharactersWithSpaces>2737</o:CharactersWithSpaces>
!   <o:Version>11.6408</o:Version>
!  </o:DocumentProperties>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <w:WordDocument>
!   <w:Zoom>200</w:Zoom>
!   <w:SpellingState>Clean</w:SpellingState>
!   <w:GrammarState>Clean</w:GrammarState>
!   <w:ValidateAgainstSchemas/>
!   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
!   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
!   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
!   <w:Compatibility>
!    <w:UseFELayout/>
!   </w:Compatibility>
!   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
!  </w:WordDocument>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
!  </w:LatentStyles>
! </xml><![endif]-->
! <style>
! <!--
!  /* Font Definitions */
!  @font-face
! 	{font-family:Batang;
! 	panose-1:2 3 6 0 0 1 1 1 1 1;
! 	mso-font-alt:\BC14\D0D5;
! 	mso-font-charset:129;
! 	mso-generic-font-family:roman;
! 	mso-font-pitch:variable;
! 	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
! @font-face
! 	{font-family:Tahoma;
! 	panose-1:2 11 6 4 3 5 4 4 2 4;
! 	mso-font-charset:0;
! 	mso-generic-font-family:swiss;
! 	mso-font-pitch:variable;
! 	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
! @font-face
! 	{font-family:"\@Batang";
! 	panose-1:2 3 6 0 0 1 1 1 1 1;
! 	mso-font-charset:129;
! 	mso-generic-font-family:roman;
! 	mso-font-pitch:variable;
! 	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
!  /* Style Definitions */
!  p.MsoNormal, li.MsoNormal, div.MsoNormal
! 	{mso-style-parent:"";
! 	margin:0in;
! 	margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	font-size:12.0pt;
! 	font-family:"Times New Roman";
! 	mso-fareast-font-family:"Times New Roman";}
! a:link, span.MsoHyperlink
! 	{color:#005BB7;
! 	text-decoration:underline;
! 	text-underline:single;}
! a:visited, span.MsoHyperlinkFollowed
! 	{color:#005BB7;
! 	text-decoration:underline;
! 	text-underline:single;}
! p
! 	{mso-margin-top-alt:auto;
! 	margin-right:0in;
! 	mso-margin-bottom-alt:auto;
! 	margin-left:0in;
! 	mso-pagination:widow-orphan;
! 	font-size:12.0pt;
! 	font-family:"Times New Roman";
! 	mso-fareast-font-family:"Times New Roman";}
! pre
! 	{margin:0in;
! 	margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
! 	font-size:10.0pt;
! 	font-family:"Courier New";
! 	mso-fareast-font-family:"Times New Roman";}
! tt
! 	{font-family:"Courier New";
! 	mso-ascii-font-family:"Courier New";
! 	mso-fareast-font-family:"Times New Roman";
! 	mso-hansi-font-family:"Courier New";
! 	mso-bidi-font-family:"Courier New";}
! span.SpellE
! 	{mso-style-name:"";
! 	mso-spl-e:yes;}
! span.GramE
! 	{mso-style-name:"";
! 	mso-gram-e:yes;}
! @page Section1
! 	{size:8.5in 11.0in;
! 	margin:1.0in 1.25in 1.0in 1.25in;
! 	mso-header-margin:.5in;
! 	mso-footer-margin:.5in;
! 	mso-paper-source:0;}
! div.Section1
! 	{page:Section1;}
! -->
! </style>
! <!--[if gte mso 10]>
! <style>
!  /* Style Definitions */
!  table.MsoNormalTable
! 	{mso-style-name:"Table Normal";
! 	mso-tstyle-rowband-size:0;
! 	mso-tstyle-colband-size:0;
! 	mso-style-noshow:yes;
! 	mso-style-parent:"";
! 	mso-padding-alt:0in 5.4pt 0in 5.4pt;
! 	mso-para-margin:0in;
! 	mso-para-margin-bottom:.0001pt;
! 	mso-pagination:widow-orphan;
! 	font-size:10.0pt;
! 	font-family:"Times New Roman";
! 	mso-fareast-font-family:"Times New Roman";
! 	mso-ansi-language:#0400;
! 	mso-fareast-language:#0400;
! 	mso-bidi-language:#0400;}
! </style>
! <![endif]--><!--[if gte mso 9]><xml>
!  <o:shapedefaults v:ext="edit" spidmax="7170"/>
! </xml><![endif]--><!--[if gte mso 9]><xml>
!  <o:shapelayout v:ext="edit">
!   <o:idmap v:ext="edit" data="1"/>
!  </o:shapelayout></xml><![endif]-->
! </head>
! 
! <body bgcolor=ghostwhite lang=EN-US link="#005BB7" vlink="#005BB7"
! style='tab-interval:.5in'>
! 
! <div class=Section1>
! 
! <p class=MsoNormal>&nbsp; <o:p></o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="100%" style='width:100.0%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-size:20.0pt;font-family:Tahoma'>Straw
!   &#8211; Reliable Data Collection<o:p></o:p></span></b></p>
!   <p><span style='font-family:Tahoma'>Last updated 1 June 2005</span></p>
!   </td>
!  </tr>
! </table>
! 
! <p class=MsoNormal><span style='display:none;mso-hide:all'><o:p>&nbsp;</o:p></span></p>
! 
! <p>Straw (Scalable Thin and Rapid Amassment Without loss) collects data
! reliably from a mote to PC over multi-hop network. When command is submitted to
! JAVA code in PC, it interacts with <span class=SpellE>TinyOS</span> code in a
! mote, and collects data without loss.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'
!  hspace=4>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><nobr><span style='font-family:Arial'>Usage</span></b><o:p></o:p></p>
!   </td>
!  </tr>
! </table>
! 
! <p>Command to JAVA code is</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre><span
!   class=SpellE>int</span> read(<span class=SpellE>int</span> <span
!   class=SpellE>dest</span>, short <span class=SpellE>portId</span>, long start, long size, byte[] <span
!   class=SpellE>bffr</span>)</pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p>Buffer space needs be provided by JAVA application using Straw. And Straw
! interface of <span class=SpellE>TinyOS</span> code</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre>event <span
!   class=SpellE>result_t</span> read(uint32_t start, uint32_t size, uint8_t* <span
!   class=SpellE>bffr</span>)</pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p><span class=GramE>needs</span> be implemented. <span class=SpellE>TinyOS</span>
! Application will fill up buffer, and call <span class=SpellE><span class=GramE>readDone</span></span><span
! class=GramE>(</span>). Size of reading will be smaller than packet size. And
! that&#8217;s it. Data can reside either in RAM or FLASH. As long as address
! space is properly defined so that start and size can be interpreted, Straw
! works.</p>
! 
! <p>Straw is tested on tinyos-1.1.11 with nesc-1.2alpha11.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Location</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p><b style='mso-bidi-font-weight:normal'>JAVA code<o:p></o:p></b></p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tools/java/net/tinyos/straw</p>
! 
! <p><span class=SpellE><b style='mso-bidi-font-weight:normal'>TinyOS</b></span><b
! style='mso-bidi-font-weight:normal'> code<o:p></o:p></b></p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/tos/lib/Straw</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Examples</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p>Two nodes are needed. Program them with application at:</p>
! 
! <p>/opt/tinyos-1.x/contrib/GGB/apps/TestStraw</p>
! 
! <p>One node with node number 0 is a base station. The other node with node
! number 1 is a target node to collect data.</p>
! 
! <div align=center>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="80%"
!  style='width:80.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.6%;background:#E0E0E0;padding:2.25pt 2.25pt 2.25pt 2.25pt'><pre><span
!   class=SpellE>binetude at pilsner</span> /opt/tinyos-1.x/contrib/GGB/tools/java</pre><pre>$ java net/<span
!   class=SpellE>tinyos/straw/TestStraw</span> <span class=SpellE>readData</span> 1</pre><pre>********<span style='mso-spacerun:yes'>  </span><span
!   class=SpellE>readData</span><span style='mso-spacerun:yes'>  </span>********</pre><pre>****<span style='mso-spacerun:yes'>  </span>Straw<span style='mso-spacerun:yes'>  </span>****</pre><pre><span style='mso-spacerun:yes'>  </span>1:SRSRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR</pre><pre><span
!   class=SpellE>msgSent</span> = 2, <span class=SpellE>msgRcvd</span> = 51, <span
!   class=SpellE>successRate</span> = 1.0 (50 / 50)</pre><pre>checksum = 0, <span
!   class=SpellE>tmpCheckSum</span> = 0</pre><pre>Ni = 5578, Td = -1164951354355, <span
!   class=SpellE>Rr</span> = 0, <span class=SpellE>Ec</span> = 0, total = -1164951348777</pre><pre><o:p>&nbsp;</o:p></pre><pre>SR</pre><pre>Bandwidth = 43.536941094518696 (B/s)</pre><pre>Latency = 22.969 (s)</pre><pre><o:p>&nbsp;</o:p></pre><pre><span
!   class=SpellE>msgSent</span> = 3, <span class=SpellE>msgRcvd</span> = 52, <span
!   class=SpellE>successRate</span> = 1.0 (50 / 50)</pre><pre>checksum = 59180, <span
!   class=SpellE>tmpCheckSum</span> = 59180</pre><pre><span lang=FR
!   style='mso-ansi-language:FR'>Ni = 5578, Td = 6328, <span class=SpellE>Rr</span> = 5500, <span
!   class=SpellE>Ec</span> = 5563, total = 22969<o:p></o:p></span></pre><pre><span
!   lang=FR style='mso-ansi-language:FR'><o:p>&nbsp;</o:p></span></pre><pre><span
!   class=SpellE><span lang=FR style='mso-ansi-language:FR'>Straw</span></span><span
!   lang=FR style='mso-ansi-language:FR'> <span class=SpellE>Success</span><o:p></o:p></span></pre></td>
!  </tr>
! </table>
! 
! </div>
! 
! <p>This is a simple example reading RAM. The result is shown above. At first
! there is a sequence of &#8220;R&#8221; and &#8220;S&#8221;. &#8220;S&#8221;
! means one packet is sent, and &#8220;R&#8221; means one packet is received. At
! the end, statistics are printed. &#8220;<span class=SpellE><span class=GramE>msgSent</span></span>&#8221;
! is the total number of messages sent, &#8220;<span class=SpellE>msgRcvd</span>&#8221;
! is the total number of messages received, and &#8220;<span class=SpellE>successRate</span>&#8221;
! is the raw success rate provided by the low layer. &#8220;Ni&#8221; is the time
! taken to gather network information, which is used to tune parameters.
! &#8220;Td&#8221; is the time taken to transfer the entire data once.
! &#8220;Rd&#8221; is the time taken to fill holes (to retransmit missing
! packets). &#8220;<span class=SpellE>Ec</span>&#8221; is the time taken to check
! whether there is an error in the data. Finally &#8220;total&#8221; is the total
! time taken (sum of the previous four).</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! <table class=MsoNormalTable border=0 cellpadding=0 width="100%"
!  style='width:100.0%;mso-cellspacing:1.5pt;mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
!  <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;mso-yfti-lastrow:yes'>
!   <td width="99%" style='width:99.68%;background:#E0E0FF;padding:2.25pt 2.25pt 2.25pt 2.25pt'>
!   <p class=MsoNormal><b><span style='font-family:Arial'>Known Problems</span></b><b><span
!   style='mso-bidi-font-size:10.0pt;font-family:Arial'><o:p></o:p></span></b></p>
!   </td>
!  </tr>
! </table>
! 
! <p>With <span class=SpellE>MintRoute</span>, after sending large number of
! packets at high speed, some link blacks out. But link revives after some time.</p>
! 
! <p><o:p>&nbsp;</o:p></p>
! 
! </div>
! 
! </body>
! 
! </html>
  <!--  LocalWords:  TinyOS nesC nc async norace BlinkM FooM ncc SingleTimer Leds
   -->



More information about the Tinyos-contrib-commits mailing list