]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
PacketTimeSyncOffset: removed fixed costants for enums MAC_HEADER_SIZE,MAC_FOOTER_SIZ...
authorkusy <kusy>
Sun, 13 Jul 2008 03:26:02 +0000 (03:26 +0000)
committerkusy <kusy>
Sun, 13 Jul 2008 03:26:02 +0000 (03:26 +0000)
tos/chips/cc2420/packet/CC2420PacketP.nc

index 9bca8ae494773663209a225723ed2b9b9282401e..0a730484f83c8dcf06837f507b5d3b0cd05d6fd6 100644 (file)
@@ -38,6 +38,7 @@
 #include "IEEE802154.h"
 #include "message.h"
 #include "CC2420.h"
+#include "CC2420TimeSyncMessage.h"
 
 module CC2420PacketP @safe() {
 
@@ -159,12 +160,18 @@ implementation {
     return ((call CC2420PacketBody.getMetadata( msg ))->timesync);
   }
 
+  //returns offset of timestamp from the beginning of cc2420 header which is
+  //          sizeof(cc2420_header_t)+datalen-sizeof(timesync_radio_t)
+  //uses packet length of the message which is
+  //          MAC_HEADER_SIZE+MAC_FOOTER_SIZE+datalen
   async command uint8_t PacketTimeSyncOffset.get(message_t* msg)
   {
-    // minus 1 because one less byte is transmitted
-    return (call CC2420PacketBody.getHeader(msg))->length - 1 - sizeof(uint32_t);
+    return (call CC2420PacketBody.getHeader(msg))->length
+            + (sizeof(cc2420_header_t) - MAC_HEADER_SIZE)
+            - MAC_FOOTER_SIZE
+            - sizeof(timesync_radio_t);
   }
-
+  
   async command void PacketTimeSyncOffset.set(message_t* msg)
   {
     (call CC2420PacketBody.getMetadata( msg ))->timesync = TRUE;