[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