/************************************************************************************ * Copyright (C) 2008 by Politehnica University of Bucharest and Rutgers University * All rights reserved. * Refer to LICENSE for terms and conditions of use. ***********************************************************************************/ package vnsim.applications.vitp; import java.util.*; import vnsim.applications.vitp.*; import vnsim.map.object.Globals; import vnsim.vehicular.simulator.RegularPersonality; public class Statistics { public static int EVENTS=0; static long timeStart=System.currentTimeMillis(); static long timeEnd; public static long time1=0; public static long time2=0; public static long time3=0; public static long time4=0; public static long time5=0; public static long time6=0; public static void printTimeStatistics() { System.out.println("EVENTS="+EVENTS); System.out.println("NVEHICLES="+Globals.engine.cars.size()); // timeEnd=System.currentTimeMillis(); // System.out.println("TOTAL TIME="+(timeEnd-timeStart)); // System.out.println("TIME1="+time1); // System.out.println("TIME2="+time2); // System.out.println("TIME3="+time3); // System.out.println("TIME4="+time4); // System.out.println("TIME5="+time5); // System.out.println("CODETIME="+trafficview.object.Globals.engine.codeTime); } public static HashMap msgs=new HashMap(); public static void addHop(int ID) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.nhops++; ms.msgID=ID; msgs.put(ID, ms); } public static void addBroadcast(int ID) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.nbroadcasts++; ms.msgID=ID; msgs.put(ID, ms); } public static void setReplyOK(int ID) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.replyOk=true; ms.msgID=ID; msgs.put(ID, ms); } public static void setInitialTime(int ID, double time) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.initialTime=time; ms.msgID=ID; msgs.put(ID, ms); } public static void setText(int ID, String text) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.text=text; ms.msgID=ID; msgs.put(ID, ms); } public static void setReplyTime(int ID, double time) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.replyTime=time; ms.msgID=ID; msgs.put(ID, ms); } public static void setQueryDistance(int ID, double distance) { MessageStatistics ms=msgs.get(ID); if(ms==null) ms=new MessageStatistics(); ms.queryDistance=distance; ms.msgID=ID; msgs.put(ID, ms); } public static void printAll() { Collection c=msgs.values(); List l=new ArrayList (c); Collections.sort(l, new Comparator () { public int compare(MessageStatistics ms1, MessageStatistics ms2) { if(ms1.msgID iter=l.iterator(); System.out.println("PRINTALL STATISTICS!!! :"+msgs.size()); while(iter.hasNext()) { System.out.println(iter.next()); } } //functions for neighbor statistics static int N1=0; // < 50 static int N2=0; // 50 - 100 static int N3=0; // 100 - 150 static int N4=0; // 150 - 200 static int N5=0; // 200 - 250 static int N6=0; // 250 - 300 static int N7=0; // 300 - 350 static int N8=0; // > 350 public static void addNeighborDistance(double d) { if(d<0.050) { N1++; return; } if(d<0.100) { N2++; return; } if(d<0.150) { N3++; return; } if(d<0.200) { N4++; return; } if(d<0.250) { N5++; return; } if(d<0.300) { N6++; return; } if(d<0.350) { N7++; return; } N8++; } public static void printNeighborStats() { System.out.println("N1="+N1); System.out.println("N2="+N2); System.out.println("N3="+N3); System.out.println("N4="+N4); System.out.println("N5="+N5); System.out.println("N6="+N6); System.out.println("N7="+N7); System.out.println("N8="+N8); } } class MessageStatistics { public int msgID; public int nhops=0; public boolean replyOk=false; public double initialTime=0.0; public double replyTime=0.0; public double queryDistance=0.0; public int nbroadcasts=0; public String text; public String toString() { String ret="ID="+msgID+"; HOPS="+nhops+"; REPLYOK="+replyOk+"; INITIALTIME="+initialTime+"; REPLYTIME="+replyTime; ret=ret+"; DISTANCE="+queryDistance+"; NBROADCASTS="+nbroadcasts+"; TEXT="+text; return ret; } }