[Tinyos-beta-commits]
CVS: tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain
DrainTest.java, NONE, 1.1 Drain.java, 1.10, 1.11 Makefile, 1.3, 1.4
Gilman Tolle
gtolle at users.sourceforge.net
Wed Aug 17 23:38:39 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-serv28874
Modified Files:
Drain.java Makefile
Added Files:
DrainTest.java
Log Message:
Client-side performance testing tool for DrainTest traffic generator.
--- NEW FILE: DrainTest.java ---
package net.tinyos.drain;
import java.io.*;
import java.text.*;
import java.util.*;
import net.tinyos.message.*;
import net.tinyos.util.*;
import net.tinyos.drain.*;
import org.apache.log4j.*;
public class DrainTest implements MessageListener {
private Logger log = Logger.getLogger(DrainTest.class.getName());
private Map nodes = new HashMap();
public DrainTest() {
DrainConnector mhConnector = new DrainConnector();
Timer t = new Timer();
t.schedule(new PrintTask(), 0, 4000);
mhConnector.registerListener(254, this);
}
public void messageReceived(int to, Message m) {
DrainMsg mhMsg = (DrainMsg) m;
DrainTestMsg dtMsg =
new DrainTestMsg(mhMsg, mhMsg.offset_data(0),
mhMsg.dataLength()
- mhMsg.offset_data(0));
log.debug("seqno=" + dtMsg.get_seqno() + ", " +
"time=" + (dtMsg.get_time() * 1000 / 65535));
if (nodes.containsKey(new Integer(mhMsg.get_source()))) {
NodeRec rec = (NodeRec) nodes.get(new Integer(mhMsg.get_source()));
if (dtMsg.get_seqno() > rec.lastSeqno) {
rec.received++;
rec.sent += dtMsg.get_seqno() - rec.lastSeqno;
rec.lastSeqno = dtMsg.get_seqno();
}
if (dtMsg.get_seqno() < rec.lastSeqno) {
rec.lastSeqno = dtMsg.get_seqno();
}
} else {
NodeRec rec = new NodeRec();
rec.received = rec.sent = 1;
rec.lastSeqno = dtMsg.get_seqno();
nodes.put(new Integer(mhMsg.get_source()), rec);
}
}
private class NodeRec {
int received;
int lastReceived;
int sent;
int lastSeqno;
}
private class PrintTask extends TimerTask {
public void run() {
log.info("Status Report");
double aggTraffic = 0;
for(Iterator it = nodes.keySet().iterator();
it.hasNext(); ) {
Integer addr = (Integer) it.next();
NodeRec rec = (NodeRec) nodes.get(addr);
double receiveRate = (rec.received - rec.lastReceived) / 4.0;
aggTraffic += receiveRate;
rec.lastReceived = rec.received;
log.info(addr + ": " + "sent= " + rec.sent + " received= " + rec.received + " success=" + 100*((float)rec.received / rec.sent) + " pps=" + receiveRate);
}
log.info("Aggregate pps=" + aggTraffic);
}
}
public static void main(String args[]) {
new DrainTest();
}
}
Index: Drain.java
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain/Drain.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** Drain.java 4 Aug 2005 03:18:57 -0000 1.10
--- Drain.java 18 Aug 2005 06:38:37 -0000 1.11
***************
*** 33,37 ****
public boolean usingTosBase = true;
public int treeInstance = (int)((double)Math.random() * (double)255);
!
public Drain() {
spAddr = DrainLib.setSPAddr();
--- 33,39 ----
public boolean usingTosBase = true;
public int treeInstance = (int)((double)Math.random() * (double)255);
!
! public boolean isCommandLine = false;
!
public Drain() {
spAddr = DrainLib.setSPAddr();
***************
*** 116,119 ****
--- 118,124 ----
count--;
}
+ if (isCommandLine) {
+ System.exit(0);
+ }
}
}
***************
*** 139,144 ****
drain.maintainTree();
-
- System.exit(0);
}
--- 144,147 ----
***************
*** 147,150 ****
--- 150,155 ----
ArrayList cleanedArgs = new ArrayList();
+ drain.isCommandLine = true;
+
for(int i = 0; i < args.length; i++) {
if (args[i].startsWith("--")) {
***************
*** 175,178 ****
--- 180,185 ----
drain.spAddr = 0xfffe;
drain.usingTosBase = false;
+ } else if (opt.equals("i")) {
+ drain.treeInstance = Integer.parseInt(args[++i]);
} else if (opt.equals("h")) {
usage();
***************
*** 189,192 ****
--- 196,200 ----
private static void usage() {
System.err.println("usage: java net.tinyos.nucleus.Drain <opts>");
+ System.err.println(" -i <instance number>");
System.err.println(" -t <rebroadcast delay in secs>");
System.err.println(" -c <number of beacons to transmit>");
Index: Makefile
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/Drain/tools/java/net/tinyos/drain/Makefile,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Makefile 16 Jul 2005 21:26:35 -0000 1.3
--- Makefile 18 Aug 2005 06:38:37 -0000 1.4
***************
*** 7,11 ****
# List of message classes to build
! MSGS = DrainMsg.java DrainBeaconMsg.java DrainGroupRegisterMsg.java DrainConsts.java
CONSTS =
INITIAL_TARGETS = $(MSGS) $(CONSTS)
--- 7,11 ----
# List of message classes to build
! MSGS = DrainMsg.java DrainBeaconMsg.java DrainGroupRegisterMsg.java DrainConsts.java DrainTestMsg.java
CONSTS =
INITIAL_TARGETS = $(MSGS) $(CONSTS)
***************
*** 24,27 ****
--- 24,30 ----
$(MIG) -java-classname=$(PACKAGE).DrainGroupRegisterMsg $(BETA)/Drain/Drain.h DrainGroupRegisterMsg -o $@
+ DrainTestMsg.java: $(BETA)/Drain/DrainTest.h
+ $(MIG) -java-classname=$(PACKAGE).DrainTestMsg $(BETA)/Drain/DrainTest.h DrainTestMsg -o $@
+
DrainConsts.java: $(BETA)/Drain/Drain.h
$(NCG) -java-classname=$(PACKAGE).DrainConsts -I$(BETA)/Drain $(BETA)/Drain/Drain.h Drain.h -o $@
More information about the Tinyos-beta-commits
mailing list