[Tinyos-beta-commits] CVS: tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain Drain.java, 1.7, 1.8

Gilman Tolle gtolle at users.sourceforge.net
Fri Jul 8 14:05:01 PDT 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24248/tools/java/net/tinyos/drain

Modified Files:
	Drain.java 
Log Message:
Changed the DrainNextHop attributes to Lists, because we can now have more than one route. Changed the Drain tool to support runtime selection of whether we're building a default tree (that takes messages addressed to 0) or just a regular tree (that takes messages addressed to the specific root node, or MOTEID address of the TOSBase).

Index: Drain.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain/Drain.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Drain.java	7 Jul 2005 20:29:32 -0000	1.7
--- Drain.java	8 Jul 2005 21:04:43 -0000	1.8
***************
*** 50,57 ****
    public void buildTree(int delay) {
  
!     buildTree(delay, treeInstance);
    }
  
!   public void buildTree(int delay, int treeInstance) {
  
      DrainBeaconMsg beaconMsg = new DrainBeaconMsg();
--- 50,57 ----
    public void buildTree(int delay) {
  
!     buildTree(delay, treeInstance, true);
    }
  
!   public void buildTree(int delay, int treeInstance, boolean defaultRoute) {
  
      DrainBeaconMsg beaconMsg = new DrainBeaconMsg();
***************
*** 75,153 ****
      beaconMsg.set_beaconDelay((byte)delay);
      beaconMsg.set_beaconOffset((short)0);
-     
-     send(beaconMsg);
-   }
  
! /*
!   public void send(int to, int type, Message m, int size) {
!     
!     DrainMsg drainMsg = new DrainMsg(DrainMsg.DEFAULT_MESSAGE_SIZE + size);
! 
!     int numBits = DRAIN_MAX_CHILDREN;
!     int index = to & (int)(Math.pow(2,numBits) - 1);
!     
!     int remainderAddr = to >> numBits;
!     
!     System.err.println("bitsNeeded=" + numBits + 
! 		       ", index=" + index + 
! 		       ", remainderAddr=" + remainderAddr);
!     
!     int linkDest = ((Integer)children.get(index)).intValue();
!     
!     System.err.println("linkDest=" + linkDest);
!     
!     drainMsg.set_type((byte)type);
!     drainMsg.set_dir((byte)1);
!     drainMsg.set_ttl((byte)15);
!     drainMsg.set_source(spAddr);
!     drainMsg.set_dest(remainderAddr);
!     drainMsg.dataSet(m.dataGet(), 0, drainMsg.offset_data(0), size);
      
!     System.err.println(drainMsg);
! 
!     sendTo(linkDest, drainMsg);
    }
  
-   synchronized public void messageReceived(int to, Message m) {
-     DrainRegisterMsg regMsg = (DrainRegisterMsg) m;
- 
-     if (to == spAddr) {
- 
-       Integer addr = new Integer(regMsg.get_linkSource()); 
- 
-       if (children.size() >= DRAIN_MAX_CHILDREN) {
- 
- 	regMsg.set_linkSource(spAddr);
- 	regMsg.set_op((byte)DrainConsts.DRAIN_REGISTER_OP_FULL);
- 	
- 	sendTo(addr.intValue(), regMsg);
- 	return;
-       } 
- 	
-       int index;
- 
-       if (children.contains(addr)) {
- 	System.out.println("Repeat child: linkAddr=" + addr + 
- 			   ", childNum=" + children.indexOf(addr) +
- 			   ", totalChildren=" + (children.size() - 1));
- 
-       } else {	
- 
- 	children.add(addr);
- 	System.out.println("New child: linkAddr=" + addr + 
- 			   ", childNum=" + children.indexOf(addr) +
- 			   ", totalChildren=" + (children.size() - 1));
-       }
- 	
-       regMsg.set_linkSource(spAddr);
-       regMsg.set_destAddr(children.indexOf(addr));
-       regMsg.set_addrLength((byte)DRAIN_MAX_CHILDREN_LOG2);
-       regMsg.set_op((byte)DrainConsts.DRAIN_REGISTER_OP_JOINED);
-       
-       sendTo(addr.intValue(), regMsg);
-     }
-   }
- */
-   
    private class DrainListener implements MessageListener {
      
--- 75,88 ----
      beaconMsg.set_beaconDelay((byte)delay);
      beaconMsg.set_beaconOffset((short)0);
  
!     if (defaultRoute) {
!       beaconMsg.set_defaultRoute((short)1);
!     } else {
!       beaconMsg.set_defaultRoute((short)0);
!     }
      
!     send(beaconMsg);
    }
  
    private class DrainListener implements MessageListener {
      
***************
*** 190,194 ****
  		  System.err.println("Sending beacon...");
  	      }
! 	      buildTree(delay, treeInstance);
  	      try {
  		  Thread.sleep(delay * 1000);
--- 125,129 ----
  		  System.err.println("Sending beacon...");
  	      }
! 	      buildTree(delay, treeInstance, true);
  	      try {
  		  Thread.sleep(delay * 1000);



More information about the Tinyos-beta-commits mailing list