source: proiecte/ptvs/src/vnsim/applications/vitp/Statistics.java @ 31

Last change on this file since 31 was 31, checked in by (none), 14 years ago
File size: 4.9 KB
Line 
1/************************************************************************************
2 * Copyright (C) 2008 by Politehnica University of Bucharest and Rutgers University
3 * All rights reserved.
4 * Refer to LICENSE for terms and conditions of use.
5 ***********************************************************************************/
6package vnsim.applications.vitp;
7
8
9import java.util.*;
10
11import vnsim.applications.vitp.*;
12import vnsim.map.object.Globals;
13import vnsim.vehicular.simulator.RegularPersonality;
14
15
16
17public class Statistics {
18       
19       
20        public static int EVENTS=0;
21       
22        static long timeStart=System.currentTimeMillis();
23        static long timeEnd;
24       
25        public static long time1=0;
26        public static long time2=0;
27        public static long time3=0;
28        public static long time4=0;
29        public static long time5=0;
30        public static long time6=0;
31
32        public static void printTimeStatistics() {
33               
34                System.out.println("EVENTS="+EVENTS);
35                System.out.println("NVEHICLES="+Globals.engine.cars.size());
36               
37//              timeEnd=System.currentTimeMillis();
38//              System.out.println("TOTAL TIME="+(timeEnd-timeStart));
39//              System.out.println("TIME1="+time1);
40//              System.out.println("TIME2="+time2);
41//              System.out.println("TIME3="+time3);
42//              System.out.println("TIME4="+time4);
43//              System.out.println("TIME5="+time5);
44//              System.out.println("CODETIME="+trafficview.object.Globals.engine.codeTime);
45        }
46
47        public static HashMap<Integer, MessageStatistics> msgs=new HashMap<Integer, MessageStatistics>();
48       
49        public static void addHop(int ID) {
50                MessageStatistics ms=msgs.get(ID);
51                if(ms==null)
52                        ms=new MessageStatistics();
53                ms.nhops++;
54                ms.msgID=ID;
55                msgs.put(ID, ms);
56        }
57
58        public static void addBroadcast(int ID) {
59                MessageStatistics ms=msgs.get(ID);
60                if(ms==null)
61                        ms=new MessageStatistics();
62                ms.nbroadcasts++;
63                ms.msgID=ID;
64                msgs.put(ID, ms);
65        }
66       
67        public static void setReplyOK(int ID) {
68                MessageStatistics ms=msgs.get(ID);
69                if(ms==null)
70                        ms=new MessageStatistics();
71                ms.replyOk=true;
72                ms.msgID=ID;
73                msgs.put(ID, ms);
74        }
75       
76        public static void setInitialTime(int ID, double time) {
77                MessageStatistics ms=msgs.get(ID);
78                if(ms==null)
79                        ms=new MessageStatistics();
80                ms.initialTime=time;
81                ms.msgID=ID;
82                msgs.put(ID, ms);
83        }
84       
85        public static void setText(int ID, String text) {
86                MessageStatistics ms=msgs.get(ID);
87                if(ms==null)
88                        ms=new MessageStatistics();
89                ms.text=text;
90                ms.msgID=ID;
91                msgs.put(ID, ms);
92        }
93       
94        public static void setReplyTime(int ID, double time) {
95                MessageStatistics ms=msgs.get(ID);
96                if(ms==null)
97                        ms=new MessageStatistics();
98                ms.replyTime=time;
99                ms.msgID=ID;
100                msgs.put(ID, ms);
101        }
102
103        public static void setQueryDistance(int ID, double distance) {
104                MessageStatistics ms=msgs.get(ID);
105                if(ms==null)
106                        ms=new MessageStatistics();
107                ms.queryDistance=distance;
108                ms.msgID=ID;
109                msgs.put(ID, ms);
110        }
111
112        public static void printAll() {         
113
114                Collection<MessageStatistics> c=msgs.values();
115               
116                List<MessageStatistics> l=new ArrayList<MessageStatistics> (c);
117
118                Collections.sort(l, new Comparator<MessageStatistics> () {
119                        public int compare(MessageStatistics ms1, MessageStatistics ms2) {
120                                if(ms1.msgID<ms2.msgID)
121                                        return 1;
122                                return -1;
123                        }
124                });
125
126                Iterator<MessageStatistics> iter=l.iterator();
127
128                System.out.println("PRINTALL STATISTICS!!! :"+msgs.size());
129               
130                while(iter.hasNext()) {
131                        System.out.println(iter.next());
132                }
133        }
134       
135       
136       
137       
138       
139       
140        //functions for neighbor statistics
141        static int N1=0; // < 50
142        static int N2=0; // 50 - 100
143        static int N3=0; // 100 - 150
144        static int N4=0; // 150 - 200
145        static int N5=0; // 200 - 250
146        static int N6=0; // 250 - 300
147        static int N7=0; // 300 - 350
148        static int N8=0; // > 350
149       
150        public static void addNeighborDistance(double d) {
151                if(d<0.050) {
152                        N1++;
153                        return;
154                }
155                if(d<0.100) {
156                        N2++;
157                        return;
158                }
159                if(d<0.150) {
160                        N3++;
161                        return;
162                }
163                if(d<0.200) {
164                        N4++;
165                        return;
166                }
167                if(d<0.250) {
168                        N5++;
169                        return;
170                }
171                if(d<0.300) {
172                        N6++;
173                        return;
174                }
175                if(d<0.350) {
176                        N7++;
177                        return;
178                }
179                N8++;
180        }
181
182        public static void printNeighborStats() {
183                System.out.println("N1="+N1);
184                System.out.println("N2="+N2);
185                System.out.println("N3="+N3);
186                System.out.println("N4="+N4);
187                System.out.println("N5="+N5);
188                System.out.println("N6="+N6);
189                System.out.println("N7="+N7);
190                System.out.println("N8="+N8);
191        }
192}
193
194class MessageStatistics {
195        public int msgID;
196
197        public int nhops=0;
198       
199        public boolean replyOk=false;
200        public double initialTime=0.0;
201        public double replyTime=0.0;
202       
203        public double queryDistance=0.0;
204       
205        public int nbroadcasts=0;
206       
207        public String text;
208       
209        public String toString() {
210                String ret="ID="+msgID+"; HOPS="+nhops+"; REPLYOK="+replyOk+"; INITIALTIME="+initialTime+"; REPLYTIME="+replyTime;
211                ret=ret+"; DISTANCE="+queryDistance+"; NBROADCASTS="+nbroadcasts+"; TEXT="+text;
212
213                return ret;
214        }
215}
Note: See TracBrowser for help on using the repository browser.