📄 plot_err.pl
字号:
#!/usr/bin/perl$event_filter = "[rs]";@ptype_filter = ("tcp", "cbr", "exp");$ttype_filter = "MAC";if (@ARGV < 1) { printf "usage plot_tp.pl [-s size] <trace file> [node1, ...]\n"; exit;}$tracenametmp = shift;$numith =shift;$errorlevel=shift;@trace_type = ();print "tracenametmp=$tracenametmp numith=$numith errorlevel=$errorlevel\n";$tt=1;@iteration=();while($tt<=$numith){ push @iteration,$tt; $tt=$tt+1; }$totalarverror=0.0;$indith=0;$maxseqno=0;foreach $ith (@iteration){ $indith=$indith+1; $tracename="$tracenametmp$ith"; $totalpktsize=0; @src =(); @mh1 =(); open(infile, $tracename) or die "couldn't open $tracename"; while ($line = <infile>) { ++$line_no; @entry = split(/[\s\(\)\[\]]+/, $line); $event = $entry[0]; $time = $entry[1]; # check for trace format and parse entry if ($entry[2] =~ /_+(\d+)_+/) { # mobile $to = $1; next if ($entry[3] ne $ttype_filter); $pktid = $entry[5]; #die "packet error $pktid (line $line_no)" if ($packet_source{$pktid} == undef); $from = $packet_source{$pktid}; $type = $entry[6]; $size = $entry[7]; $packet_source{$pktid} = $to; $seqno=$entry[17]; #print "$time $entry[3] $type $size to=$to seqno=$entry[17]\n"; } else { # standard $to = $entry[3]; $pktid = $entry[11]; $from = $entry[2]; $type = $entry[4]; $size = $entry[5]; $seqno=$entry[10]; $packet_source{$pktid} = $to; } if(($event eq "r")&&($type eq "cbr")) { $tmpname="mh1"; # print "$seqno\n"; if ($to == 2) { push @$tmpname,{ SEQNO => $seqno,TIME => $time}; #print "to=2:)SEQNO => $seqno,TIME => $time\n"; } if($to == 1){ #print "$seqno\n"; push @src ,{ SEQNO => $seqno,TIME => $time}; #print "to=1:)SEQNO => $seqno,TIME => $time\n"; } } } close($infile); open(datafile, ">data_raw") or die "couldn't open data"; $error=0; $maxseqno=0; $tmpmaxseqno=0; foreach $srcdata (@src) { $tmpname="mh1"; $chk=0; #print "HAAAAAAAAAAAAAAAAAAAAAAAAAAMH &&&&&&&&&&&&&& \t $srcdata->{SEQNO}\n"; foreach $mhdata (@$tmpname) { # print "seqno $mhdata->{SEQNO}\n"; if($srcdata->{SEQNO}==$mhdata->{SEQNO}){ if ($chk==0) { # print "$srcdata->{SEQNO}\n"; print datafile "$srcdata->{SEQNO}\n"; $chk=1; }else { $dup=$dup+1; } } } if ($chk==0) { $error=$error+1; #print " ERROR $srcdata->{SEQNO}\n" } if($srcdata->{SEQNO}>$maxseqno){ $maxseqno=$srcdata->{SEQNO}; } } print "errr $error\t $maxseqno\n"; $arverror=$error/$maxseqno*100; $totalarverror=$totalarverror+$arverror;} $arverror=$totalarverror/$numith;print "Average error =\t$arverror \tpercent\n";open(cmd, ">>data.out");printf cmd "$errorlevel\t$arverror\n";close(cmd);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -