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

📄 time.pl

📁 ns 2.28 下 SPAN节能协议源码
💻 PL
字号:
#!/usr/bin/perl$nodes = 120;$nodes_skip = 20;$stop_time = 590;$dump_period = 20;my $period = 0;my @time;my @nannounce;my @announce;my @jtime;my @jstart;my @jdrain;$coordinators = 0;for (my $i=1; $i<=$nodes; $i++) { $time[$i] = 0; $nannounce[$i] = 0; $announce[$i] = 0; $jstart[$i] = 0; $jdrain[$i] = 0; $jtime[$i] = 0;}$now = 0;while (<>) {  if ($_ =~ /StartOfDump/) {    my $cur = 40+$period*$dump_period;    if ($cur > $stop_time) {      last;    }    else {      $now = $cur;    }    $period++;  }  if ($_ =~ /# ([\d.]+): (\d+) out of energy/) {    $nodes--;    print "$now $nodes\n";    exit;  }  elsif ($_ =~ /# ([\d.]+): (\d+) announce coordinator/) {    $announce[$2] = $1;     $nannounce[$2]++;     $coordinators++;  }  elsif ($_ =~ /# ([\d.]+): (\d+) withdraw coordinator/) {    $time[$2] += ($1-$announce[$2])+2;    $announce[$2] = 0;    $coordinators--;  }  elsif ($_ =~ /^([0-9.]+) ([0-9.]+) ([0-9]+) ([cn])([0-9]+) [0-9]+ [0-9]+ [0-9.]+ ([0-9.]+) ([0-9.]+)/) {     # posx $1 posy $2 node $3 n/c $4 neighbor $5 Eremain $6 Einit $7     if ($jstart[$3] == 0) {       $jstart[$3] = $6;       $jtime[$3] = $now;     }     $jdrain[$3] = $6;  }}$totalTime = 0;$totalNA = 0;$totalDrain = 0;for (my $i=$nodes_skip+1; $i<=$nodes; $i++) {  if ($announce[$i] > 0) {    $time[$i] += ($stop_time-$announce[$i]);    $announce[$i] = 0;  }  $totalTime  += $time[$i];  $totalNA += $nannounce[$i];  $drain = ($jstart[$i]-$jdrain[$i])/($now-$jtime[$i]);  $totalDrain += $drain;  # print "$i $time[$i] $jstart[$i] $jtime[$i] $jdrain[$i] $drain\n";}if ($nodes > 0) {  printf("# now:              %d\n", $now);  printf("# avg time:         %3.3f\n", $totalTime/($nodes-$nodes_skip));  printf("# avg announces:    %3.3f\n", $totalNA/($nodes-$nodes_skip));  printf("# avg consumption:  %3.3f\n", $totalDrain/($nodes-$nodes_skip));  printf("# total nodes:      %d\n",    $nodes);}

⌨️ 快捷键说明

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