]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/chips/rf230/RF230LayerP.nc
IRIS: reworked the time sync implementation
[tinyos-2.x.git] / tos / chips / rf230 / RF230LayerP.nc
index 1485d226d8e23e092c2db96e854cd1de38b581d6..b2a9bb4921d7f71e218ad1de2976dadef1cf3327 100644 (file)
@@ -634,6 +634,7 @@ implementation
                if( isSpiAcquired() )
                {
                        uint16_t time;
+                       uint32_t time32;
                        uint8_t irq;
                        uint8_t temp;
                        
@@ -713,7 +714,11 @@ implementation
                                         * CMD_TRANSMIT.
                                         */
                                        if( irq == RF230_IRQ_RX_START ) // just to be cautious
-                                               call PacketTimeStamp.set(rxMsg, time - RX_SFD_DELAY);
+                                       {
+                                               time32 = call LocalTime.get();
+                                               time32 += (int16_t)(time - RX_SFD_DELAY) - (int16_t)(time32);
+                                               call PacketTimeStamp.set(rxMsg, time32);
+                                       }
                                        else
                                                call PacketTimeStamp.clear(rxMsg);