|
INET Framework for OMNeT++/OMNEST
|
00001 import sys 00002 00003 subor=file('scenario3.xml','r') 00004 00005 i = 0 00006 00007 ev_starts = [] 00008 convergence_time = [] 00009 00010 for riadok in subor: 00011 stlpce= riadok.split() 00012 if (len(stlpce) > 1) and (stlpce[0] == "<at"): 00013 ev_starts.append(int(stlpce[1][3:stlpce[1].rfind('"')])) 00014 subor.close() 00015 00016 00017 subor=file('out.txt','r') 00018 00019 packet_send = 0 00020 packet_received = 0 00021 00022 sent_time = {} 00023 receive_list = {} 00024 receive_delay = {} 00025 00026 index = 0; 00027 event = ev_starts[index] 00028 started = 0 00029 00030 for riadok in subor: 00031 stlpce= riadok.split() 00032 if (len(stlpce) > 1): 00033 if (len(stlpce) == 6) and (stlpce[1][0:8] == "appData-"): 00034 if (stlpce[0] == "Send:"): 00035 packet_send = packet_send + 1 00036 sent_time[stlpce[1]] = float(stlpce[5]) 00037 receive_list[stlpce[1]] = 0 00038 if (float(event) <= float(stlpce[5])): 00039 started = 1; 00040 if (started == 1) and (index + 1 < len(ev_starts)) and (float(ev_starts[index + 1]) <= float(stlpce[5])): 00041 convergence_time.append(-1.0) 00042 index = index + 1 00043 if (index < len(ev_starts)): 00044 event = ev_starts[index] 00045 else: 00046 event = 99999999 00047 if (stlpce[0] == "Arrive:"): 00048 packet_received = packet_received + 1 00049 receive_list[stlpce[1]] = 1 00050 receive_delay[stlpce[1]] = float(stlpce[5]) - sent_time[stlpce[1]] 00051 if (started == 1): 00052 convergence_time.append(float(stlpce[5])-float(event)) 00053 started = 0 00054 index = index + 1 00055 if (index < len(ev_starts)): 00056 event = ev_starts[index] 00057 else: 00058 event = 99999999 00059 if (started == 1): 00060 convergence_time.append(-1.0) 00061 subor.close() 00062 00063 if (len(sys.argv)>1) and (sys.argv[1] == "dropped"): 00064 print "============================================" 00065 print "Convergence time" 00066 print "============================================" 00067 index = 1; 00068 for cislo in convergence_time: 00069 if(cislo > 0.0): 00070 print "%d->%d:" % (index,index + 1),"%.6f"%(cislo) 00071 else: 00072 print "%d->%d:" % (index,index + 1),"infinite" 00073 index = index + 1; 00074 00075 print 00076 print "============================================" 00077 print "Sent packets: ",packet_send 00078 print "Dropped packets: ",packet_send - packet_received 00079 print "============================================" 00080 00081 stage_delay = [] 00082 if (len(sys.argv)>1) and (sys.argv[1] == "delay"): 00083 index = 0; 00084 inserted = 0; 00085 event = 100 00086 rangelist = range(len(receive_list)) 00087 for number in rangelist: 00088 if (sent_time["appData-" + str(number)] > float(event) + 18.0): 00089 if (sent_time["appData-" + str(number)] < float(event) + 19.0): 00090 if (receive_list["appData-" + str(number)] == 1) and (inserted == 0): 00091 stage_delay.append(float(receive_delay["appData-" + str(number)])) 00092 inserted = 1; 00093 else: 00094 if (index < len(ev_starts)): 00095 event = ev_starts[index] 00096 else: 00097 event = 99999999 00098 index = index + 1 00099 inserted = 0 00100 print 00101 print "============================================" 00102 print "Packet delay" 00103 print "============================================" 00104 index = 1; 00105 for cislo in stage_delay: 00106 print "Stage %d:" % (index),"%.6f"%(cislo) 00107 index = index + 1; 00108 00109 00110 conv_droped = [] 00111 00112 if (len(sys.argv)>1) and (sys.argv[1] == "dropped"): 00113 index = 0; 00114 droped = 0; 00115 event_st = float(ev_starts[index]) 00116 event_end = float(ev_starts[index]) + convergence_time[index] 00117 00118 rangelist = range(len(receive_list)) 00119 00120 for number in rangelist: 00121 if (sent_time["appData-" + str(number)] >= event_st): 00122 if (sent_time["appData-" + str(number)] <= event_end): 00123 if (receive_list["appData-" + str(number)] == 0): 00124 droped = droped + 1 00125 else: 00126 conv_droped.append(droped) 00127 droped = 0 00128 index = index + 1 00129 if (index < len(convergence_time)): 00130 event_st = float(ev_starts[index]) 00131 event_end = float(ev_starts[index]) + convergence_time[index] 00132 else: 00133 event_st = 999999999.9 00134 event_end = 999999999.9 00135 00136 00137 print 00138 print "============================================" 00139 print "Dropped packets" 00140 print "============================================" 00141 index = 1; 00142 for cislo in conv_droped: 00143 if(convergence_time[index-1] > 0.0): 00144 print "%d->%d:" % (index,index + 1),"%d"%(cislo) 00145 else: 00146 print "%d->%d:" % (index,index + 1),"all" 00147 index = index + 1; 00148 00149 print