]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/cc2420/csma/CC2420CsmaP.nc
Merge TinyOS 2.1.1 into master.
[tinyos-2.x.git] / tos / chips / cc2420 / csma / CC2420CsmaP.nc
index df6ffb25cec5260ef3d602d8ff3ff1d984085440..42e087c86ed40bccdcddaa2e1932a6f7cabeaae3 100644 (file)
@@ -34,7 +34,7 @@
  * @version $Revision$ $Date$
  */
 
-module CC2420CsmaP {
+module CC2420CsmaP @safe() {
 
   provides interface SplitControl;
   provides interface Send;
@@ -72,7 +72,6 @@ implementation {
   
   /****************** Prototypes ****************/
   task void startDone_task();
-  task void startDone_task();
   task void stopDone_task();
   task void sendDone_task();
   
@@ -134,8 +133,12 @@ implementation {
       m_msg = p_msg;
     }
 
-    header->length = len;
+    header->length = len + CC2420_SIZE;
+#ifdef CC2420_HW_SECURITY
+    header->fcf &= ((1 << IEEE154_FCF_ACK_REQ)|(1 << IEEE154_FCF_SECURITY_ENABLED));
+#else
     header->fcf &= 1 << IEEE154_FCF_ACK_REQ;
+#endif
     header->fcf |= ( ( IEEE154_TYPE_DATA << IEEE154_FCF_FRAME_TYPE ) |
                     ( 1 << IEEE154_FCF_INTRAPAN ) |
                     ( IEEE154_ADDR_SHORT << IEEE154_FCF_DEST_ADDR_MODE ) |
@@ -144,7 +147,7 @@ implementation {
     metadata->ack = FALSE;
     metadata->rssi = 0;
     metadata->lqi = 0;
-    metadata->timesync = FALSE;
+    //metadata->timesync = FALSE;
     metadata->timestamp = CC2420_INVALID_TIMESTAMP;
 
     ccaOn = TRUE;
@@ -157,7 +160,7 @@ implementation {
 
   command void* Send.getPayload(message_t* m, uint8_t len) {
     if (len <= call Send.maxPayloadLength()) {
-      return (void* COUNT_NOK(len))m->data;
+      return (void* COUNT_NOK(len ))(m->data);
     }
     else {
       return NULL;