#!/usr/bin/perl $max_seq = 0; for($i = 0; $i < 1000; $i++) { $max_radio[$i] = 0; $min_radio[$i] = 10000; } while(<>) { if(/P (\d+)\.\d+ (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+)/) { $node = $1; $seq = $2; $all_cpu = $3; $all_lpm = $4; $all_tx = $5; $all_rx = $6; $all_idle_tx = $7; $all_idle_rx = $8; $cpu = $9; $lpm = $10; $tx = $11; $rx = $12; $idle_tx = $13; $idle_rx = $14; $nodes{$node} = 1; $radio_now = $tx + $rx; $idle_now = $idle_tx + $idle_rx; $cpu_now = $lpm + $cpu; $dutycycle = $radio_now / $cpu_now; $dutycycle_for_node[$node][$seq] = $dutycycle; $idle_for_node[$node][$seq] = $idle_now / $cpu_now; if($seq > $max_seq) { $max_seq = $seq; } } } foreach $j (keys %nodes) { $avg = 0; for($i = 0; $i < $max_seq; $i++) { $avg += $dutycycle_for_node[$j][$i]; } $idle_avg = 0; for($i = 0; $i < $max_seq; $i++) { $idle_avg += $idle_for_node[$j][$i]; } print $avg / $max_seq . " " . $idle_avg / $max_seq . " $j\n"; $total_avg += $avg; $total_idle += $idle_avg; } print "\n"; print STDERR "Idle percentage " . $total_idle / $total_avg . "\n"; #print STDERR "Mean duty cycle " . 100 * $mean / $num_mean . "\n";