]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/byte_radio/PacketSerializerP.nc
Merge over into the trunk.
[tinyos-2.x.git] / tos / lib / byte_radio / PacketSerializerP.nc
index 73e172edd76addfe40a2e4c8ad2f79f1af0ea6c9..e495ef595c9646d5a3cfb41a7d2badb47bf9fa5e 100644 (file)
@@ -100,7 +100,6 @@ implementation {
   }
   
   async event void PhyPacketTx.sendHeaderDone() {
-    signal RadioTimeStamping.transmittedSFD(0, (message_t*)txBufPtr); 
     TransmitNextByte();
   }
 
@@ -115,6 +114,7 @@ implementation {
   void TransmitNextByte() {
     message_radio_header_t* header = getHeader((message_t*) txBufPtr);
     if (byteCnt < header->length + sizeof(message_header_t) ) {  // send (data + header), compute crc
+        if(byteCnt == sizeof(message_header_t)) signal RadioTimeStamping.transmittedSFD(0, (message_t*)txBufPtr); 
         crc = crcByte(crc, ((uint8_t *)(txBufPtr))[byteCnt]);
         call RadioByteComm.txByte(((uint8_t *)(txBufPtr))[byteCnt++]);
     } else if (byteCnt == (header->length + sizeof(message_header_t))) {
@@ -139,7 +139,6 @@ implementation {
       crc = 0;
       getHeader(rxBufPtr)->length = sizeof(message_radio_header_t); 
       signal PhyReceive.receiveDetected();
-      signal RadioTimeStamping.receivedSFD(0);
     }
   }
 
@@ -160,6 +159,7 @@ implementation {
     message_radio_footer_t* footer = getFooter((message_t*)rxBufPtr);
     ((uint8_t *)(rxBufPtr))[byteCnt++] = data;
     if ( byteCnt < getHeader(rxBufPtr)->length + sizeof(message_radio_header_t) ) {
+      if(byteCnt == sizeof(message_radio_header_t)) signal RadioTimeStamping.receivedSFD(0);
       crc = crcByte(crc, data);
       if (getHeader(rxBufPtr)->length > TOSH_DATA_LENGTH) { 
         // this packet is surely corrupt, so whatever...