[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

Phil Levis scipio at users.sourceforge.net
Wed Oct 26 10:25:53 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/teps/txt
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13040/txt

Modified Files:
	tep106.txt tep110.txt tep111.txt tep112.txt 
Log Message:
Fixed formatting errors in some of my TEPs.


Index: tep106.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/txt/tep106.txt,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** tep106.txt	12 Jul 2005 18:20:28 -0000	1.12
--- tep106.txt	26 Oct 2005 17:25:51 -0000	1.13
***************
*** 367,378 ****
  
  .. [1] Erik Cota-Robles and James P. Held.  "A Comparison of Windows 
! Driver Model Latency Performance on Windows NT and Windows 98." In
! *Proceedings of the Third Symposium on Operating System Design
! and Implementation (OSDI).*
  
  .. [2] David Gay, Philip Levis, Rob von Behren, Matt Welsh, Eric Brewer
! and David Culler. "The *nesC* Language: A Holistic Approach to Networked
! Embedded Systems." In *Proceedings of the ACM SIGPLAN 2003 Conference on
! Programming Language Design and Implementation (PLDI).* 
  
  
--- 367,378 ----
  
  .. [1] Erik Cota-Robles and James P. Held.  "A Comparison of Windows 
!    Driver Model Latency Performance on Windows NT and Windows 98." In
!    *Proceedings of the Third Symposium on Operating System Design
!    and Implementation (OSDI).*
  
  .. [2] David Gay, Philip Levis, Rob von Behren, Matt Welsh, Eric Brewer
!    and David Culler. "The *nesC* Language: A Holistic Approach to Networked
!    Embedded Systems." In *Proceedings of the ACM SIGPLAN 2003 Conference on
!    Programming Language Design and Implementation (PLDI).* 
  
  

Index: tep110.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/txt/tep110.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tep110.txt	3 Sep 2005 01:59:31 -0000	1.3
--- tep110.txt	26 Oct 2005 17:25:51 -0000	1.4
***************
*** 248,252 ****
  
  **NOTE: These services are not supported as of the 2.x prerelease. 
! They will be supported by the first full release.*
  
  OSKI's third communication service is tree-based collection routing.
--- 248,252 ----
  
  **NOTE: These services are not supported as of the 2.x prerelease. 
! They will be supported by the first full release.**
  
  OSKI's third communication service is tree-based collection routing.
***************
*** 455,459 ****
  | 
  |   Service = AMServiceImplP.Service[unique("AMServiceImplP.Service")];
! |}
  
  Note that the two strings are the same, so that the uniqueCount() in
--- 455,459 ----
  | 
  |   Service = AMServiceImplP.Service[unique("AMServiceImplP.Service")];
! | }
  
  Note that the two strings are the same, so that the uniqueCount() in

Index: tep111.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/txt/tep111.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** tep111.txt	13 Aug 2005 22:12:05 -0000	1.1
--- tep111.txt	26 Oct 2005 17:25:51 -0000	1.2
***************
*** 55,105 ****
  definition, which is
  
! | ``typedef struct TOS_Msg {``
! | ``  /* The following fields are transmitted/received on the radio. */``
! | ``  uint16_t addr;``
! | ``  uint8_t type;``
! | ``  uint8_t group;``
! | ``  uint8_t length;``
! | ``  int8_t data[TOSH_DATA_LENGTH];``
! | ``  uint16_t crc;``
  |
! | ``  /* The following fields are not actually transmitted or received ``
! | ``   * on the radio! They are used for internal accounting only.``
! | ``   * The reason they are in this structure is that the AM interface``
! | ``   * requires them to be part of the TOS_Msg that is passed to``
! | ``   * send/receive operations.``
! | ``   */``
! | ``  uint16_t strength;``
! | ``  uint8_t ack;``
! | ``  uint16_t time;``
! | ``  uint8_t sendSecurityMode;``
! | ``  uint8_t receiveSecurityMode;``
! | ``} TOS_Msg;``
  
  while on a mote with a CC420 radio (e.g., micaZ), TOS_Msg is defined as:
  
! | ``typedef struct TOS_Msg {``
! | ``  /* The following fields are transmitted/received on the radio. */``
! | ``  uint8_t length;``
! | ``  uint8_t fcfhi;``
! | ``  uint8_t fcflo;``
! | ``  uint8_t dsn;``
! | ``  uint16_t destpan;``
! | ``  uint16_t addr;``
! | ``  uint8_t type;``
! | ``  uint8_t group;``
! | ``  int8_t data[TOSH_DATA_LENGTH];``
! | ````
! | ``  /* The following fields are not actually transmitted or received ``
! | ``   * on the radio! They are used for internal accounting only.``
! | ``   * The reason they are in this structure is that the AM interface``
! | ``   * requires them to be part of the TOS_Msg that is passed to``
! | ``   * send/receive operations.``
! | ``   */``
! | ``  uint8_t strength;``
! | ``  uint8_t lqi;``
! | ``  bool crc;``
! | ``  uint8_t ack;``
! | ``  uint16_t time;``
  | ``} TOS_Msg;``
  
--- 55,105 ----
  definition, which is
  
! |  ``typedef struct TOS_Msg {``
! |    ``// The following fields are transmitted/received on the radio.``
! |    ``uint16_t addr;``
! |    ``uint8_t type;``
! |    ``uint8_t group;``
! |    ``uint8_t length;``
! |    ``int8_t data[TOSH_DATA_LENGTH];``
! |    ``uint16_t crc;``
  |
! |    ``// The following fields are not actually transmitted or received``
! |    ``// on the radio! They are used for internal accounting only.``
! |    ``// The reason they are in this structure is that the AM interface``
! |    ``// requires them to be part of the TOS_Msg that is passed to``
! |    ``// send/receive operations.``
! |    
! |    ``uint16_t strength;``
! |    ``uint8_t ack;``
! |    ``uint16_t time;``
! |    ``uint8_t sendSecurityMode;``
! |    ``uint8_t receiveSecurityMode;``
! |  ``} TOS_Msg;``
  
  while on a mote with a CC420 radio (e.g., micaZ), TOS_Msg is defined as:
  
! |  ``typedef struct TOS_Msg {``
! |    ``// The following fields are transmitted/received on the radio.``
! |    ``uint8_t length;``
! |    ``uint8_t fcfhi;``
! |    ``uint8_t fcflo;``
! |    ``uint8_t dsn;``
! |    ``uint16_t destpan;``
! |    ``uint16_t addr;``
! |    ``uint8_t type;``
! |    ``uint8_t group;``
! |    ``int8_t data[TOSH_DATA_LENGTH];``
! |    
! |    ``// The following fields are not actually transmitted or received``
! |    ``// on the radio! They are used for internal accounting only.``
! |    ``// The reason they are in this structure is that the AM interface``
! |    ``// requires them to be part of the TOS_Msg that is passed to``
! |    ``// send/receive operations.``
! |    
! |    ``uint8_t strength;``
! |    ``uint8_t lqi;``
! |    ``bool crc;``
! |    ``uint8_t ack;``
! |    ``uint16_t time;``
  | ``} TOS_Msg;``
  
***************
*** 134,143 ****
  message_t structure is defined in ``tos/types/TOSMsg.h``:
  
! | ``typedef nx_struct message_t {``
! | ``  TOSRadioHeader header;``
! | ``  nx_uint8_t data[TOSH_DATA_LENGTH];``
! | ``  TOSRadioFooter footer;``
! | ``  TOSRadioMetadata metadata;``
! | ``} message_t;``
  
  This format keeps data at a fixed offset, which is important when
--- 134,143 ----
  message_t structure is defined in ``tos/types/TOSMsg.h``:
  
! |  ``typedef nx_struct message_t {``
! |    ``TOSRadioHeader header;``
! |    ``nx_uint8_t data[TOSH_DATA_LENGTH];``
! |    ``TOSRadioFooter footer;``
! |    ``TOSRadioMetadata metadata;``
! |  ``} message_t;``
  
  This format keeps data at a fixed offset, which is important when
***************
*** 155,176 ****
  structures in ``CC1000Msg.h``:
  
! | ``typedef nx_struct CC1KHeader {``
! | ``  nx_am_addr_t addr;``
! | ``  nx_uint8_t length;``
! | ``  nx_am_group_t group;``
! | ``  nx_am_id_t type;``
! | ``} CC1KHeader;``
! | ````
! | ``typedef nx_struct CC1KFooter {``
! | ``  nxle_uint16_t crc;  ``
! | ``} CC1KFooter;``
! | ````
! | ``typedef nx_struct CC1KMetadata {``
! | ``  nx_uint16_t strength;``
! | ``  nx_uint8_t ack;``
! | ``  nx_uint16_t time;``
! | ``  nx_uint8_t sendSecurityMode;``
! | ``  nx_uint8_t receiveSecurityMode;  ``
! | ``} CC1KMetadata;``
  
  Each link layer defines its structres, but a **platform** is responsible 
--- 155,176 ----
  structures in ``CC1000Msg.h``:
  
! |  ``typedef nx_struct CC1KHeader {``
! |    ``nx_am_addr_t addr;``
! |    ``nx_uint8_t length;``
! |    ``nx_am_group_t group;``
! |    ``nx_am_id_t type;``
! |  ``} CC1KHeader;``
! | 
! |  ``typedef nx_struct CC1KFooter {``
! |    ``nxle_uint16_t crc;``
! |  ``} CC1KFooter;``
! | 
! |  ``typedef nx_struct CC1KMetadata {``
! |    ``nx_uint16_t strength;``
! |    ``nx_uint8_t ack;``
! |    ``nx_uint16_t time;``
! |    ``nx_uint8_t sendSecurityMode;``
! |    ``nx_uint8_t receiveSecurityMode;``
! |  ``} CC1KMetadata;``
  
  Each link layer defines its structres, but a **platform** is responsible 
***************
*** 189,207 ****
  that has both a CC1000 and a CC2420 radio. Its RadioTOSMsg.h looks like this:
  
! | ``typedef union MegaMicaHeader {``
! | ``  CC1KHeader cc1k;``
! | ``  CC2420Header cc2420;``
! | ``} MegaMicaHeader;``
! |
! | ``typedef union MegaMicaFooter {``
! | ``  CC1KFooter cc1k;``
! | ``  CC2420Footer cc2420;``
! | ``} MegaMicaFooter;``
  |
! | ``typedef union MegaMicaMetadata {``
! | ``  CC1KMetadata cc1k;``
! | ``  CC2420Metadata cc2420;``
! | ``} MegaMicaMetadata;``
  |
  | ``typedef MegaMicaHeader TOSRadioHeader;``
  | ``typedef MegaMicaFooter TOSRadioFooter;``
--- 189,207 ----
  that has both a CC1000 and a CC2420 radio. Its RadioTOSMsg.h looks like this:
  
! |  ``typedef union MegaMicaHeader {``
! |    ``CC1KHeader cc1k;``
! |    ``CC2420Header cc2420;``
! |  ``} MegaMicaHeader;``
  |
! |  ``typedef union MegaMicaFooter {``
! |    ``CC1KFooter cc1k;``
! |    ``CC2420Footer cc2420;``
! |  ``} MegaMicaFooter;``
  |
+ |  ``typedef union MegaMicaMetadata {``
+ |    ``CC1KMetadata cc1k;``
+ |    ``CC2420Metadata cc2420;``
+ |  ``} MegaMicaMetadata;``
+ | 
  | ``typedef MegaMicaHeader TOSRadioHeader;``
  | ``typedef MegaMicaFooter TOSRadioFooter;``
***************
*** 251,265 ****
  example, consider this case:
  
! | ``typedef struct HeaderA {``
! | ``  uint8_t a;``
! | ``}``
! | ``typedef struct HeaderB {``
! | `` uint16_t b;``
! | ``}``
! | ``typedef union MyHeader {``
! | ``  HeaderA A;``
! | ``  HeaderB B;``
! | ``}``
! | ``typedef MyHeader TOSRadioHeader;``
  
  Given nesC nx_struct layout, when TOSRadioHeader is specified as a union
--- 251,265 ----
  example, consider this case:
  
! |  ``typedef struct HeaderA {``
! |    ``uint8_t a;``
! |  ``}``
! |  ``typedef struct HeaderB {``
! |    ``uint16_t b;``
! |  ``}``
! |  ``typedef union MyHeader {``
! |    ``HeaderA A;``
! |    ``HeaderB B;``
! |  ``}``
! |  ``typedef MyHeader TOSRadioHeader;``
  
  Given nesC nx_struct layout, when TOSRadioHeader is specified as a union
***************
*** 277,284 ****
  returns the field ``a`` of HeaderA. Its code looks like this:
  
! | ``command uint8_t APacket.a(message_t* msg) { ``
! | ``  HeaderA* hdr = (HeaderA*)(msg->data - sizeof(HeaderA));``
! | ``  return hdr->a;``
! | ``}``
  
  We can trust the C compiler to optimize the call into a static offset
--- 277,284 ----
  returns the field ``a`` of HeaderA. Its code looks like this:
  
! |  ``command uint8_t APacket.a(message_t* msg) {``
! |    ``HeaderA* hdr = (HeaderA*)(msg->data - sizeof(HeaderA));``
! |    ``return hdr->a;``
! |  ``}``
  
  We can trust the C compiler to optimize the call into a static offset
***************
*** 288,302 ****
  It is an example of what components MUST NOT do:
  
! | ``command uint8_t APacket.a(message_t* msg) { ``
! | ``  HeaderA* hdr = (HeaderA*)(msg->header);``
! | ``  return hdr->a;``
! | ``}``
  
  The following example is also incorrect, as it directly accesses the
  header structure. It is an example of what components MUST NOT do.
  
! | ``command uint8_t APacket.a(message_t* msg) { ``
! | ``  return msg->header.A.a;``
! | ``}``
  
  
--- 288,302 ----
  It is an example of what components MUST NOT do:
  
! |  ``command uint8_t APacket.a(message_t* msg) {``
! |    ``HeaderA* hdr = (HeaderA*)(msg->header);``
! |    ``return hdr->a;``
! |  ``}``
  
  The following example is also incorrect, as it directly accesses the
  header structure. It is an example of what components MUST NOT do.
  
! |  ``command uint8_t APacket.a(message_t* msg) {``
! |    ``return msg->header.A.a;``
! |  ``}``
  
  
***************
*** 313,320 ****
  field of the structure.
  
- 
- 
- 
- 
  The placement of the packet footer is implementation dependent.
  
--- 313,316 ----

Index: tep112.txt
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/teps/txt/tep112.txt,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tep112.txt	27 Sep 2005 20:11:45 -0000	1.4
--- tep112.txt	26 Oct 2005 17:25:51 -0000	1.5
***************
*** 1,5 ****
! ============================
  Microcontroller Power Management
! ============================
  
  :TEP: 112
--- 1,5 ----
! ====================================================================
  Microcontroller Power Management
! ====================================================================
  
  :TEP: 112



More information about the Tinyos-beta-commits mailing list