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

📄 raw2xg

📁 ns2.1b5版本中cbrp碼
💻
字号:
eval 'exec perl -S $0 ${1+"$@"}'		# -*-perl-*-	if 0;($progname) = ($0 =~ m!([^/]+)$!);sub usage {    print STDERR <<END;usage: $progname [options] [trace files...]options:    -a		plot acks    -s SCALE    scale TCP sequence numbers by SCALE    -m MODULUS  treat TCP sequence numbers as mod MODULUS    -q		show queueing delay by connecting lines    -l		show packet length    -t TITLE    title of testTraditional ``wrapping'' ns plots (as called from the test scripts)can be generated with -s 0.01 -m 90.END    exit 1;};$usage = "usage: $progname [-a] [trace files...]\n";require 'getopts.pl';&Getopts('as:m:qlt:') || usage;$c = 0;@p = @a = @d = @lu = @ld = ();%q_time_seg = ();$modulus = defined($opt_m) ? $opt_m : 2 ** 31;$scale = defined($opt_s) ? $opt_s : 1;$plot_acks = defined($opt_a);$file = $acks = '';sub translate_point {    my($time, $seq, $flow) = @_;    return ($time, $flow + ($seq % $modulus) * $scale);}while (<>) {    $dfile = $ARGV;    @F = split;    /testName/ && ($file = $F[2], next);    /^[\+-] / && do {	$c = $F[7] if ($c < $F[7]);	$is_ack = ($F[4] eq 'ack');	next if ($is_ack && !$plot_acks);	($x, $y) = translate_point(@F[1, 10, 7]);	if (defined($opt_q)) {	    if (/^\+/) {		$statement = undef;		$q_time_seg{$is_ack,$y} = $x;	    };	    $statement = "move $q_time_seg{$is_ack,$y} $y\ndraw $x $y\n"		if (/^\-/);	} else {	    $statement = "$x $y\n";	};	if (defined($statement)) {	    if ($is_ack) { 		push(@a, $statement);	    } else {	        push(@p, $statement);	    };	};	next;    };    /^d / && do {	($x, $y) = translate_point(@F[1, 10, 7]);	push(@d, "$x $y\n");	next;    };    /link-down/ &&	(push(@ld, $F[1]), next);    /link-up/ &&	(push(@lu, $F[1]), next);}	if ($file eq '') {	($file) = ($dfile =~ m!([^/]+)$!);}$title  = defined($opt_t) ? $opt_t : $file;print "TitleText: $title\n" .    "Device: Postscript\n" .    "BoundBox: true\n" .    "Ticks: true\n" .    (defined($opt_q) ? "" : "NoLines: true\n") .    "Markers: true\n" .    "XUnitText: time\n" .    "YUnitText: packets\n";@sorted_p = sort (@p);print "\n\"packets\n", @p;# insert dummy data sets so we get X's for marks in data-set 4if (!defined($a[0])) {    push(@a, "0 1\n");}printf "\n\"skip-1\n0 1\n";if ($plot_acks) {    @sorted_a = sort (@a);    print "\n\"acks\n", @sorted_a;} else {    printf "\n\"skip-2\n0 1\n";}## Repeat the first line twice in the drops file because often we have only# one drop and xgraph won't print marks for data sets with only one point.#@sorted_d = sort (@d);print "\n\"drops\n", @d[0..3], @sorted_d;$c++;print "\n";foreach $i (@ld) {	print "\"link-down\n$i 0\n$i $c\n";}foreach $i (@lu) {	print "\"link-up\n$i 0\n$i $c\n";}exit 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -