[Tinyos-2-commits] CVS: tinyos-2.x/doc/txt tep116.txt,1.6,1.7
Phil Levis
scipio at users.sourceforge.net
Tue Mar 13 18:50:42 PDT 2007
Update of /cvsroot/tinyos/tinyos-2.x/doc/txt
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv22244/txt
Modified Files:
tep116.txt
Log Message:
Incorporated comments.
Index: tep116.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/doc/txt/tep116.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** tep116.txt 28 Feb 2007 22:33:28 -0000 1.6
--- tep116.txt 14 Mar 2007 01:50:40 -0000 1.7
***************
*** 95,99 ****
*Send* interfaces are for transmitting packets, and are
distinguished by their addressing scheme.
! Finally, the *Receive* interface is for handling packet reception events.
2.1 Packet interfaces
--- 95,102 ----
*Send* interfaces are for transmitting packets, and are
distinguished by their addressing scheme.
! The *Receive* interface is for handling packet reception events.
! Finally, depending on whether the protocol has a dispatch identifier
! field, the Receive and Send interfaces may be parameterized in order
! to support multiple higher-level clients.
2.1 Packet interfaces
***************
*** 270,273 ****
--- 273,294 ----
both Packet and the sending interface for basic use cases.
+ When called with a length that is too long for the underlying
+ maximum transfer unit (MTU), the send command MUST return ESIZE.
+
+ The ``Send`` and ``AMSend`` interfaces have an explicit queue of
+ depth one. A call to ``send`` on either of these interfaces MUST
+ return EBUSY if a prior call to ``send`` returned SUCCESS but no
+ ``sendDone`` event has been signaled yet. More explicitly::
+
+ if (call Send.send(...) == SUCCESS &&
+ call Send.send(...) == SUCCESS) {
+ // This block is unreachable.
+ }
+
+ Systems that need send queues have two options. They can
+ use a QueueC (found in tos/system) to store pending packet pointers
+ and serialize them onto sending interface, or they can introduce
+ a new sending interface that supports multiple pending transmissions.
+
2.3 Receive interface
--------------------------------------------------------------------
***************
*** 310,316 ****
handles a receive event:
! 1) Return ``msg`` without touching it.
! 2) Copy some data out of ``payload`` and return ``msg``.
! 3) Store ``msg`` in its local frame and return a different ``message_t*`` for the lower layer to use.
These are simple code examples of the three cases::
--- 331,337 ----
handles a receive event:
! 1) Return ``msg`` without touching it.
! 2) Copy some data out of ``payload`` and return ``msg``.
! 3) Store ``msg`` in its local frame and return a different ``message_t*`` for the lower layer to use.
These are simple code examples of the three cases::
***************
*** 351,356 ****
A packet protocol MAY have a dispatch identifier. This generally manifests
! as the protocol component provided parameterized interfaces (rather than
! a single interface instances). A dispatch identifier allows multiple
services to use a protocol independently. If a protocol provides a
dispatch mechanism, then each dispatch identifier SHOULD correspond to
--- 372,377 ----
A packet protocol MAY have a dispatch identifier. This generally manifests
! as the protocol component providing parameterized interfaces (rather than
! a single interface instance). A dispatch identifier allows multiple
services to use a protocol independently. If a protocol provides a
dispatch mechanism, then each dispatch identifier SHOULD correspond to
***************
*** 488,492 ****
AMSnooperC, or AMReceiverC with the same am_id_t.
! 4.5 AMSender
--------------------------------------------------------------------
--- 509,513 ----
AMSnooperC, or AMReceiverC with the same am_id_t.
! 4.5 AMSenderC
--------------------------------------------------------------------
***************
*** 510,514 ****
available transmission bandwidth.
! 4.6 Power Management
--------------------------------------------------------------------
--- 531,542 ----
available transmission bandwidth.
! 5. Power Management and Local Address
! ============================================================================
!
! In addition to standard datapath interfaces for sending and
! receiving packets, an active message layer also has control interfaces.
!
!
! 5.1 Power Management
--------------------------------------------------------------------
***************
*** 521,524 ****
--- 549,564 ----
"on."
+ 5.2 Local Active Message Address
+ --------------------------------------------------------------------
+
+ An application can change ActiveMessageC's local AM address
+ at runtime. This will change which packets a node receives and
+ the source address it embeds in packets. To change the local AM
+ address at runtime, a component can wire to the component
+ ``ActiveMessageAddressC``. This component only changes the
+ AM address of the default radio stack (AMSenderC, etc.); if
+ a radio has multiple stacks those may have other components
+ for changing their addresses in a stack-specific fashion.
+
5. HAL Requirements
============================================================================
More information about the Tinyos-2-commits
mailing list