[Tinyos-beta-commits] CVS: tinyos-1.x/beta/Drip/tools/java/net/tinyos/drip Drip.java, 1.4, 1.5

Gilman Tolle gtolle at users.sourceforge.net
Fri Jul 15 15:21:27 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/Drip/tools/java/net/tinyos/drip
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18556

Modified Files:
	Drip.java 
Log Message:
Fixed a bug in the seqno handling that would cause the nodes to enter wakeup mode unexpectedly.

Index: Drip.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Drip/tools/java/net/tinyos/drip/Drip.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Drip.java	6 Jul 2005 22:03:03 -0000	1.4
--- Drip.java	15 Jul 2005 22:21:25 -0000	1.5
***************
*** 20,24 ****
    public static boolean DEBUG = false;
    public static int SEND_COUNT = 6;
!   public static int SEND_RATE = 1024;
  
    public static int WAKEUP_SEND_COUNT = 25;
--- 20,24 ----
    public static boolean DEBUG = false;
    public static int SEND_COUNT = 6;
!   public static int SEND_RATE = DripConsts.DRIP_TIMER_PERIOD;
  
    public static int WAKEUP_SEND_COUNT = 25;
***************
*** 118,169 ****
      
    class DripSender extends TimerTask {
  
!       public void run() {
! 
! 	  //System.out.println("drip task running");
! 	  if (sendCount > maxSendCount) {
! 	      //System.out.println("sendCount > max");
! 	      trickle.cancel();
! 	      trickleTask.cancel();
! 	      sendDone();
! 	  }
! 	
! 	  dripMsg.set_metadata_id((short)id);
! 
! 	  switch (state) {
! 	  case PROBING:
! 	      //System.out.println("probing");
! 	      dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_OLDEST);
! 	  case SENDING_SEQNO:
! 	      if (sendCount == maxSendCount) {
! 		  //System.out.println("sending last");
! 		  // last chance
! 		  dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_NEWEST);
! 		  state = SENT_SEQNO;
! 	      } else {
! 		  //System.out.println("sending"+seqno);
! 		  dripMsg.set_metadata_seqno((byte)seqno);
! 	      }
! 	  case SENT_SEQNO:
! 	      //System.out.println("cancelling");
! 	      trickle.cancel();
! 	      trickleTask.cancel();
! 	      sendDone();
! 	  case SENDING_NEW:
! 	      //System.out.println("sending new");
! 	      dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_NEWEST);
! 	  default:
! 	  }
! 
! 	  if (wakeupMsg == true) {
! 	      dripMsg.set_metadata_seqno((short)((dripMsg.get_metadata_seqno()+1) % 256));
! 	  }
! 
! 	  if (DEBUG) {
! 	  System.out.println("Sending Msg: id=" + id + ",seqno=" + seqno);
! 	  }
! 	  send(dripMsg);
! 	  sendCount++;
        }
    }
  
--- 118,174 ----
      
    class DripSender extends TimerTask {
+     
+     public void run() {
+       
+       if (DEBUG) { System.err.println("drip task running"); }
  
!       dripMsg.set_metadata_id((short)id);
!       
!       switch (state) {
!       case PROBING:
! 	if (sendCount < maxSendCount) {
! 	  if (DEBUG) { System.err.println("probing"); }
! 	  dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_OLDEST);
! 	} else {
! 	  if (DEBUG) { System.err.println("sending last"); }
! 	  // last chance
! 	  dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_NEWEST);
! 	  state = SENT_SEQNO;
! 	}
! 	break;
!       case SENDING_SEQNO:
! 	if (sendCount < maxSendCount) {
! 	  if (DEBUG) { System.err.println("sending "+seqno); }
! 	  dripMsg.set_metadata_seqno((byte)seqno);
! 	} else {
! 	  if (DEBUG) { System.err.println("sending last"); }
! 	  // last chance
! 	  dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_NEWEST);
! 	  state = SENT_SEQNO;
! 	}
! 	break;
!       case SENT_SEQNO:
! 	if (DEBUG) { System.err.println("cancelling"); }
! 	trickle.cancel();
! 	trickleTask.cancel();
! 	sendDone();
! 	return;
!       case SENDING_NEW:
! 	if (DEBUG) { System.err.println("sending new"); }
! 	dripMsg.set_metadata_seqno((byte)DripConsts.DRIP_SEQNO_NEWEST);
! 	break;
!       default:
!       }
!       
!       if (wakeupMsg == true) {
! 	dripMsg.set_metadata_seqno((short)((dripMsg.get_metadata_seqno()+1) % 256));
        }
+       
+       if (DEBUG) {
+ 	System.err.println("Sending Msg " + sendCount + ": id=" + id + ",seqno=" + dripMsg.get_metadata_seqno());
+       }
+       send(dripMsg);
+       sendCount++;
+     }
    }
  
***************
*** 191,195 ****
  	
      if (DEBUG) {
!       System.out.println("Received Msg: id=" + newId + ",seqno=" + newSeqno);
      }
  
--- 196,200 ----
  	
      if (DEBUG) {
!       System.err.println("Received Msg: id=" + newId + ",seqno=" + newSeqno);
      }
  
***************
*** 202,206 ****
        if (seqno == newSeqno) {
  	if (DEBUG) {
! 	  System.out.println("Message Injected Successfully");
  	}
  	state = SENT_SEQNO;
--- 207,211 ----
        if (seqno == newSeqno) {
  	if (DEBUG) {
! 	  System.err.println("Message Injected Successfully");
  	}
  	state = SENT_SEQNO;
***************
*** 211,214 ****
--- 216,227 ----
      
    private void incrementSeqno() {
+     if (wakeupMsg && ((seqno & DripConsts.DRIP_WAKEUP_BIT) == 0)) {
+       seqno = (seqno + 1) % 256;      
+     }
+ 
+     if (!wakeupMsg && ((seqno & DripConsts.DRIP_WAKEUP_BIT) == 1)) {
+       seqno = (seqno + 1) % 256;
+     }
+ 
      seqno = (seqno + 1) % 256;
      seqno = (seqno + 1) % 256;



More information about the Tinyos-beta-commits mailing list