INET Framework for OMNeT++/OMNEST
rip/skript.py
Go to the documentation of this file.
00001 import sys
00002 
00003 subor=file('scenario1.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) + 20.0):
00089             if (sent_time["appData-" + str(number)] < float(event) + 21.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