[Tinyos-2-commits] CVS: tinyos-2.x/doc/html tep109.html, 1.1.2.11,
1.1.2.12
Gilman Tolle
gtolle at users.sourceforge.net
Wed Jan 10 10:03:35 PST 2007
Update of /cvsroot/tinyos/tinyos-2.x/doc/html
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv10151/html
Modified Files:
Tag: tinyos-2_0_devel-BRANCH
tep109.html
Log Message:
Took out some confusing wording about 'sensorboard directory' in the intro. Added an explicit reference to the arbiter TEP and a link to the example in the appendix. Fixed a typo that left out the 'chips' directory.
Index: tep109.html
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/doc/html/tep109.html,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -C2 -d -r1.1.2.11 -r1.1.2.12
*** tep109.html 6 Dec 2006 18:35:28 -0000 1.1.2.11
--- tep109.html 10 Jan 2007 18:03:32 -0000 1.1.2.12
***************
*** 4,8 ****
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.3.10: http://docutils.sourceforge.net/" />
<title>Sensors and Sensor Boards</title>
<meta name="author" content="David Gay, Phil Levis, Wei Hong, Joe Polastre, and Gilman Tolle" />
--- 4,8 ----
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
! <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
<title>Sensors and Sensor Boards</title>
<meta name="author" content="David Gay, Phil Levis, Wei Hong, Joe Polastre, and Gilman Tolle" />
***************
*** 22,29 ****
*/
! /* "! important" is used here to override other ``margin-top`` and
! ``margin-bottom`` styles that are later in the stylesheet or
! more specific. See http://www.w3.org/TR/CSS1#the-cascade */
.first {
margin-top: 0 ! important }
--- 22,36 ----
*/
! /* used to remove borders from tables and images */
! .borderless, table.borderless td, table.borderless th {
! border: 0 }
!
! table.borderless td, table.borderless th {
! /* Override padding for "table.docutils td" with "! important".
! The right padding separates the table cells. */
! padding: 0 0.5em 0 0 ! important }
!
.first {
+ /* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
***************
*** 94,98 ****
div.figure {
! margin-left: 2em }
div.footer, div.header {
--- 101,106 ----
div.figure {
! margin-left: 2em ;
! margin-right: 2em }
div.footer, div.header {
***************
*** 159,165 ****
clear: right }
- img.borderless {
- border: 0 }
-
ol.simple, ul.simple {
margin-bottom: 1em }
--- 167,170 ----
***************
*** 218,225 ****
font-size: 100% }
- pre.line-block {
- font-family: serif ;
- font-size: 100% }
-
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
--- 223,226 ----
***************
*** 252,256 ****
table.citation {
! border-left: solid thin gray }
table.docinfo {
--- 253,258 ----
table.citation {
! border-left: solid 1px gray;
! margin-left: 1px }
table.docinfo {
***************
*** 262,266 ****
table.footnote {
! border-left: solid thin black }
table.docutils td, table.docutils th,
--- 264,269 ----
table.footnote {
! border-left: solid 1px black;
! margin-left: 1px }
table.docutils td, table.docutils th,
***************
*** 354,359 ****
allows the compilation process to minimize the amount of code
included. A sensor board containing multiple sensors SHOULD be
! represented as a collection of components, one for each sensor,
! contained within a sensor board directory.</p>
<p>Sensors, being physical devices that can be shared, can benefit from
virtualization and arbitration. This document describes a design
--- 357,361 ----
allows the compilation process to minimize the amount of code
included. A sensor board containing multiple sensors SHOULD be
! represented as a collection of components, one for each sensor.</p>
<p>Sensors, being physical devices that can be shared, can benefit from
virtualization and arbitration. This document describes a design
***************
*** 394,401 ****
access to the sensor. A sensor device driver can provide such
virtualization for itself by defining a nesC generic client
! component. When a client component is being used, a call to a
! top-level SID interface SHOULD be delayed when the device is busy,
! rather than failing. Using one of the system arbiters can make the
! implementation of this requirement easier to accomplish.</p>
<p>For example:</p>
<pre class="literal-block">
--- 396,400 ----
access to the sensor. A sensor device driver can provide such
virtualization for itself by defining a nesC generic client
! component.</p>
<p>For example:</p>
<pre class="literal-block">
***************
*** 413,416 ****
--- 412,420 ----
}
</pre>
+ <p>When a client component is being used, a call to a top-level SID
+ interface should be delayed when the device is busy, rather than
+ failing. This virtualization may be easier to accomplish by using one
+ of the arbiters provided by the system <a class="citation-reference" href="#tep108" id="id4" name="id4">[TEP108]</a>, as shown in the
+ <a class="reference" href="#arbiter-example">arbiter example</a> in Appendix A, Section 3.</p>
<p>When a HIL component is being used, the sensor MUST initialize itself,
either by including the <cite>MainC</cite> component and wiring to the
***************
*** 423,427 ****
response to a call to one of the top-level SID interfaces, and stopped
some time after that call completes. Using one of the power-management
! components described in <a class="citation-reference" href="#tep115" id="id4" name="id4">[TEP115]</a> can make this implementation easier.</p>
<p>Generally, simple types are made up of octets. However, sensor values
often have levels of precision besides a multiple of 8. To account for
--- 427,431 ----
response to a call to one of the top-level SID interfaces, and stopped
some time after that call completes. Using one of the power-management
! components described in <a class="citation-reference" href="#tep115" id="id5" name="id5">[TEP115]</a> can make this implementation easier.</p>
<p>Generally, simple types are made up of octets. However, sensor values
often have levels of precision besides a multiple of 8. To account for
***************
*** 487,491 ****
<li>A <cite>StdControl</cite> or <cite>SplitControl</cite> interface for manual power
management by the user, following the conventions described in
! <a class="citation-reference" href="#tep115" id="id5" name="id5">[TEP115]</a>.</li>
<li>A Resource[] interface for requesting access to the device and
possibly performing automated power management.</li>
--- 491,495 ----
<li>A <cite>StdControl</cite> or <cite>SplitControl</cite> interface for manual power
management by the user, following the conventions described in
! <a class="citation-reference" href="#tep115" id="id6" name="id6">[TEP115]</a>.</li>
<li>A Resource[] interface for requesting access to the device and
possibly performing automated power management.</li>
***************
*** 564,568 ****
<p>Sensors that exist as part of a larger chip, like a MCU internal
voltage sensor, SHOULD be placed in a subdirectory of the chip's
! directory. "tos/<chip>/sensors/<sensor>".</p>
<p>The <cite>.platform</cite> and <cite>.sensor</cite> files need to include enough <cite>-I</cite>
directives to locate all of the necessary components needed to support
--- 568,572 ----
<p>Sensors that exist as part of a larger chip, like a MCU internal
voltage sensor, SHOULD be placed in a subdirectory of the chip's
! directory. "tos/chips/<chip>/sensors/<sensor>".</p>
<p>The <cite>.platform</cite> and <cite>.sensor</cite> files need to include enough <cite>-I</cite>
directives to locate all of the necessary components needed to support
***************
*** 625,628 ****
--- 629,638 ----
</tbody>
</table>
+ <table class="docutils citation" frame="void" id="tep108" rules="none">
+ <colgroup><col class="label" /><col /></colgroup>
+ <tbody valign="top">
+ <tr><td class="label"><a class="fn-backref" href="#id4" name="tep108">[TEP108]</a></td><td>TEP 108: Resource Arbitration</td></tr>
+ </tbody>
+ </table>
<table class="docutils citation" frame="void" id="tep114" rules="none">
<colgroup><col class="label" /><col /></colgroup>
***************
*** 634,638 ****
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="tep115">[TEP115]</a></td><td><em>(<a class="fn-backref" href="#id4">1</a>, <a class="fn-backref" href="#id5">2</a>)</em> TEP 115: Power Management of Non-Virtualized Devices</td></tr>
</tbody>
</table>
--- 644,648 ----
<colgroup><col class="label" /><col /></colgroup>
<tbody valign="top">
! <tr><td class="label"><a name="tep115">[TEP115]</a></td><td><em>(<a class="fn-backref" href="#id5">1</a>, <a class="fn-backref" href="#id6">2</a>)</em> TEP 115: Power Management of Non-Virtualized Devices</td></tr>
</tbody>
</table>
***************
*** 743,747 ****
uses interface GeneralIO;
! uses interface GpioInterrupt;
}
implementation {
--- 753,757 ----
uses interface GeneralIO;
! uses interface GpioInterrupt;
}
implementation {
***************
*** 779,785 ****
bool pinHigh;
pinHigh = m_pinHigh;
!
signal Notify.notify( pinHigh );
!
if ( pinHigh ) {
call GpioInterrupt.enableFallingEdge();
--- 789,795 ----
bool pinHigh;
pinHigh = m_pinHigh;
!
signal Notify.notify( pinHigh );
!
if ( pinHigh ) {
call GpioInterrupt.enableFallingEdge();
***************
*** 839,843 ****
tos/platforms/telosa/chips/sht11/SensirionSht11C.nc
! generic configuration SensirionSht11C() {
provides interface Read<uint16_t> as Temperature;
provides interface DeviceMetadata as TemperatureDeviceMetadata;
--- 849,853 ----
tos/platforms/telosa/chips/sht11/SensirionSht11C.nc
! generic configuration SensirionSht11C() {
provides interface Read<uint16_t> as Temperature;
provides interface DeviceMetadata as TemperatureDeviceMetadata;
***************
*** 872,876 ****
provides interface Read<uint16_t> as Humidity;
provides interface DeviceMetadata as HumidityDeviceMetadata;
!
uses interface Resource as TempResource;
uses interface Resource as HumResource;
--- 882,886 ----
provides interface Read<uint16_t> as Humidity;
provides interface DeviceMetadata as HumidityDeviceMetadata;
!
uses interface Resource as TempResource;
uses interface Resource as HumResource;
***************
*** 949,953 ****
SensirionSht11LogicP.CLOCK -> HplSensirionSht11C.SCK;
SensirionSht11LogicP.InterruptDATA -> HplSensirionSht11C.InterruptDATA;
!
components new TimerMilliC();
SensirionSht11LogicP.Timer -> TimerMilliC;
--- 959,963 ----
SensirionSht11LogicP.CLOCK -> HplSensirionSht11C.SCK;
SensirionSht11LogicP.InterruptDATA -> HplSensirionSht11C.InterruptDATA;
!
components new TimerMilliC();
SensirionSht11LogicP.Timer -> TimerMilliC;
***************
*** 977,980 ****
--- 987,991 ----
}
</pre>
+ <p>This section includes an <span class="target" id="arbiter-example">arbiter example</span>.</p>
<pre class="literal-block">
tos/platforms/telosa/chips/sht11/HplSensirionSht11C.nc
***************
*** 988,992 ****
implementation {
components HplMsp430GeneralIOC;
!
components new Msp430GpioC() as DATAM;
DATAM -> HplMsp430GeneralIOC.Port15;
--- 999,1003 ----
implementation {
components HplMsp430GeneralIOC;
!
components new Msp430GpioC() as DATAM;
DATAM -> HplMsp430GeneralIOC.Port15;
***************
*** 1015,1019 ****
components new FcfsArbiterC( "Sht11.Resource" ) as Arbiter;
Resource = Arbiter;
!
components new SplitControlPowerManagerC();
SplitControlPowerManagerC.SplitControl -> HplSensirionSht11P;
--- 1026,1030 ----
components new FcfsArbiterC( "Sht11.Resource" ) as Arbiter;
Resource = Arbiter;
!
components new SplitControlPowerManagerC();
SplitControlPowerManagerC.SplitControl -> HplSensirionSht11P;
***************
*** 1042,1046 ****
return SUCCESS;
}
!
event void Timer.fired() {
signal SplitControl.startDone( SUCCESS );
--- 1053,1057 ----
return SUCCESS;
}
!
event void Timer.fired() {
signal SplitControl.startDone( SUCCESS );
More information about the Tinyos-2-commits
mailing list