osd-contiki/examples/sky/sky-collect-plots/extract
2008-01-08 08:07:23 +00:00

96 lines
2.5 KiB
Perl
Executable file

#!/usr/bin/perl
while(<>) {
if(/^(\d+) (\d+) (\d+) \d+ \d+ \d+ \d+ \d+ \d+ (\d+) \d+ \d+ (\d+) (\d+) (\d+) (\d+) (\d+) \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ \d+ (\d+)/) {
$t = $1 - $10 / 4096;
$node{$2}{$t} = $_;
$lpm{$2}{$t} = $5;
$cpu{$2}{$t} = $6;
$rx{$2}{$t} = $7;
$tx{$2}{$t} = $8;
$rled{$2}{$t} = $9;
$totallpm{$2} = $5;
$totalcpu{$2} = $6;
$totalrx{$2} = $7;
$totaltx{$2} = $8;
$totalrled{$2} = $9;
$div = $t - $lasttime{$2};
if($lasttime{$2} > 0 && $div != 0 && $lastseqno{$2} != $3) {
$lpmpower{$2}{$t} = ($lpm{$2}{$t} - $lpm{$2}{$lasttime{$2}}) / $div;
$cpupower{$2}{$t} = ($cpu{$2}{$t} - $cpu{$2}{$lasttime{$2}}) / $div;
$rxpower{$2}{$t} = ($rx{$2}{$t} - $rx{$2}{$lasttime{$2}}) / $div;
$txpower{$2}{$t} = ($tx{$2}{$t} - $tx{$2}{$lasttime{$2}}) / $div;
$rledpower{$2}{$t} = ($rled{$2}{$t} - $rled{$2}{$lasttime{$2}}) / $div;
}
$lasttime{$2} = $t;
if($lastparent{$2} != $4) {
$parent{$2}{$t} = $4;
}
$lastparent{$2} = $4;
if($lastseqno{$2} == $3) {
$dup{$2}{$t} = 1;
}
if($lastseqno{$2} > $3 && $lastseqno{$2} > $3 + 256) {
print "Reordering at seqno $3 for node $2\n";
}
if(defined $lastseqno{$2} &&
$3 != ($lastseqno{$2} + 1 % 256)) {
$lost{$2}{$t} = 1;
}
$lastseqno{$2} = $3;
if($firsttime{$2} == 0) {
$firsttime{$2} = $t;
}
}
}
open(F, "> power");
close(F);
foreach $n (sort {$a <=> $b} keys %node) {
# print "$n ";
open(F, "> data-$n");
foreach $k (sort keys %{$node{$n}}) {
print F $node{$n}{$k};
}
close(F);
open(F, "> dup-data-$n");
foreach $k (sort keys %{$node{$n}}) {
if($dup{$n}{$k} == 1) {
print F "$k $dup{$n}{$k}\n";
}
}
close(F);
open(F, "> lost-data-$n");
foreach $k (sort keys %{$node{$n}}) {
if($lost{$n}{$k} == 1) {
print F "$k $lost{$n}{$k}\n";
}
}
close(F);
open(F, "> parent-data-$n");
foreach $k (sort keys %{$node{$n}}) {
if($parent{$n}{$k} != 0) {
print F "$k $parent{$n}{$k}\n";
}
}
close(F);
open(F, "> power-data-$n");
foreach $k (sort keys %{$lpmpower{$n}}) {
print F "$k $lpmpower{$n}{$k} $cpupower{$n}{$k} $rxpower{$n}{$k} $txpower{$n}{$k} $rledpower{$n}{$k}\n";
}
close(F);
open(F, ">> total-power");
print F ($lasttime{$n} - $firsttime{$n}) . " $n $totallpm{$n} $totalcpu{$n} $totalrx{$n} $totaltx{$n} $totalrled{$n}\n";
close(F);
print "\n";
}