⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plot_err.pl

📁 无线模拟仿真中
💻 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 + -