[Tinyos-2-commits] CVS: tinyos-2.x/tos/chips/tda5250/mac RedMacP.nc, 1.5, 1.6

akoepke andreaskoepke at users.sourceforge.net
Wed Mar 14 08:52:22 PDT 2007


Update of /cvsroot/tinyos/tinyos-2.x/tos/chips/tda5250/mac
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv16288/mac

Modified Files:
	RedMacP.nc 
Log Message:
corrected handling of cancel in prepareMsg, 
resume backoff timer corrected


Index: RedMacP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/chips/tda5250/mac/RedMacP.nc,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** RedMacP.nc	10 Mar 2007 22:14:21 -0000	1.5
--- RedMacP.nc	14 Mar 2007 15:52:18 -0000	1.6
***************
*** 288,292 ****
          if((shortRetryCounter) && (txBufPtr != NULL) && (isFlagSet(&flags, MESSAGE_PREPARED)) && 
             (macState == SLEEP) && (!isFlagSet(&flags, RESUME_BACKOFF)) && (!call Timer.isRunning())) {
!             sdDebug(40);
              macState = CCA;
              checkCounter = 0;
--- 288,292 ----
          if((shortRetryCounter) && (txBufPtr != NULL) && (isFlagSet(&flags, MESSAGE_PREPARED)) && 
             (macState == SLEEP) && (!isFlagSet(&flags, RESUME_BACKOFF)) && (!call Timer.isRunning())) {
!             // sdDebug(40);
              macState = CCA;
              checkCounter = 0;
***************
*** 297,303 ****
              if(shortRetryCounter) sdDebug(42);
              if(isFlagSet(&flags, MESSAGE_PREPARED)) sdDebug(43);
!             if(!call Timer.isRunning()) sdDebug(44);
!             if(!isFlagSet(&flags, RESUME_BACKOFF)) sdDebug(45);
!             if(macState == SLEEP) sdDebug(46);
          }
      }
--- 297,305 ----
              if(shortRetryCounter) sdDebug(42);
              if(isFlagSet(&flags, MESSAGE_PREPARED)) sdDebug(43);
!             if(txBufPtr) {
!                 if(macState == SLEEP) sdDebug(44);
!                 if(!isFlagSet(&flags, RESUME_BACKOFF)) sdDebug(45);
!                 if(!call Timer.isRunning()) sdDebug(46);
!             }
          }
      }
***************
*** 381,387 ****
          bool repeat;
          atomic {
!             if(isFlagSet(&flags, CANCEL_SEND)) txMacHdr->repetitionCounter = 0;
!             repeat = (txMacHdr->repetitionCounter >= 1);
!             txMacHdr->repetitionCounter--;
          }
          return repeat;
--- 383,393 ----
          bool repeat;
          atomic {
!             if(isFlagSet(&flags, CANCEL_SEND)) {
!                 repeat = txMacHdr->repetitionCounter = 0;
!             }
!             else {
!                 repeat = txMacHdr->repetitionCounter;
!                 txMacHdr->repetitionCounter--;
!             }
          }
          return repeat;
***************
*** 411,414 ****
--- 417,421 ----
          }
          sdDebug(3000 + e);
+         sdDebug(4000 + getHeader(m)->type);
          signal MacSend.sendDone(m, e);
      }
***************
*** 462,467 ****
                  restLaufzeit = call Random.rand16() & ZERO_BACKOFF_MASK;
              }
-             sdDebug(1000);
-             sdDebug(restLaufzeit);
              setFlag(&flags, RESUME_BACKOFF);
          }
--- 469,472 ----
***************
*** 473,478 ****
              restLaufzeit = backoff(longRetryCounter);
              updateRetryCounters();
-             sdDebug(80);
-             sdDebug(restLaufzeit);
          }
      }
--- 478,481 ----
***************
*** 698,705 ****
                  setFlag(&flags, ACTION_DETECTED);
                  if(call PacketSend.send(txBufPtr, txLen) == SUCCESS) {
!                     sdDebug(151);
                  }
                  else {
!                     sdDebug(152);
                  }
              }
--- 701,708 ----
                  setFlag(&flags, ACTION_DETECTED);
                  if(call PacketSend.send(txBufPtr, txLen) == SUCCESS) {
!                     // sdDebug(151);
                  }
                  else {
!                     // sdDebug(152);
                  }
              }
***************
*** 718,722 ****
  
      async event void RadioModes.SleepModeDone() {
!         // sdDebug(160);
          atomic {
              clearFlag(&flags, SWITCHING);
--- 721,725 ----
  
      async event void RadioModes.SleepModeDone() {
!         sdDebug(160);
          atomic {
              clearFlag(&flags, SWITCHING);
***************
*** 732,736 ****
                      // sdDebug(162);
                      if(isFlagSet(&flags, RESUME_BACKOFF)) {
!                         sdDebug(164);
                          clearFlag(&flags, RESUME_BACKOFF);
                          call Timer.start(restLaufzeit);
--- 735,739 ----
                      // sdDebug(162);
                      if(isFlagSet(&flags, RESUME_BACKOFF)) {
!                         // sdDebug(164);
                          clearFlag(&flags, RESUME_BACKOFF);
                          call Timer.start(restLaufzeit);
***************
*** 738,742 ****
                      }
                      else {
!                         sdDebug(165);
                          checkSend();
                      }
--- 741,745 ----
                      }
                      else {
!                         // sdDebug(165);
                          checkSend();
                      }
***************
*** 761,765 ****
              if((shortRetryCounter == 0) && (txBufPtr == NULL)) {
                  clearFlag(&flags, MESSAGE_PREPARED);
!                 sdDebug(170);
                  shortRetryCounter = 1;
                  longRetryCounter = 1;
--- 764,768 ----
              if((shortRetryCounter == 0) && (txBufPtr == NULL)) {
                  clearFlag(&flags, MESSAGE_PREPARED);
!                 sdDebug(5000 + getHeader(msg)->type);
                  shortRetryCounter = 1;
                  longRetryCounter = 1;
***************
*** 784,796 ****
          atomic {
              if(msg == txBufPtr) {
                  setFlag(&flags, CANCEL_SEND);
                  shortRetryCounter = MAX_SHORT_RETRY + 2;
                  longRetryCounter  = MAX_LONG_RETRY + 2;
                  if(macState == SLEEP) {
!                     sdDebug(320);
                      signalSendDone(ECANCEL);
                  }
                  err = SUCCESS;
              }
          }
          return err;
--- 787,808 ----
          atomic {
              if(msg == txBufPtr) {
+                 sdDebug(320);
                  setFlag(&flags, CANCEL_SEND);
                  shortRetryCounter = MAX_SHORT_RETRY + 2;
                  longRetryCounter  = MAX_LONG_RETRY + 2;
                  if(macState == SLEEP) {
!                     sdDebug(321);
                      signalSendDone(ECANCEL);
                  }
+                 else {
+                     sdDebug(322);
+                 }
+                 sdDebug(1000 + macState);
                  err = SUCCESS;
              }
+             else {
+                 sdDebug(323);
+                 sdDebug(1100 + macState);
+             }
          }
          return err;
***************
*** 802,805 ****
--- 814,818 ----
          rssiValue = INVALID_SNR;
          setFlag(&flags, ACTION_DETECTED);
+         call ChannelMonitor.rxSuccess();
          if(macState <= CCA_ACK) {
              if(macState == CCA) computeBackoff();
***************
*** 972,976 ****
      async event void PacketSend.sendDone(message_t* msg, error_t error) {
          if(macState == TX) {
!             sdDebug(220);
              macState = RX_ACK;
              setRxMode();
--- 985,989 ----
      async event void PacketSend.sendDone(message_t* msg, error_t error) {
          if(macState == TX) {
!             // sdDebug(220);
              macState = RX_ACK;
              setRxMode();
***************
*** 1101,1105 ****
                  }
                  else {
!                     sdDebug(255);
                      signalSendDone(SUCCESS);
                  }
--- 1114,1118 ----
                  }
                  else {
!                     // sdDebug(255);
                      signalSendDone(SUCCESS);
                  }
***************
*** 1114,1119 ****
               }
               else {
!                  sdDebug(257);
!                  checkSend();
               }
          }
--- 1127,1140 ----
               }
               else {
!                  if(isFlagSet(&flags, RESUME_BACKOFF)) {
!                      // sdDebug(261);
!                      clearFlag(&flags, RESUME_BACKOFF);
!                      call Timer.start(restLaufzeit);
!                      restLaufzeit = 0;
!                  }
!                  else {
!                      // sdDebug(262);
!                      checkSend();
!                  }
               }
          }



More information about the Tinyos-2-commits mailing list