From: Jan Michel Date: Tue, 20 Aug 2013 11:44:07 +0000 (+0200) Subject: Fixed unpacker bug with events with size 0 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=60e1745414579b395ccaf8026936fc8fa300913b;p=mvdsensorcontrol.git Fixed unpacker bug with events with size 0 --- diff --git a/tools/preview/unpack_hld.pl b/tools/preview/unpack_hld.pl index 2ee7e90..a3f1ac8 100755 --- a/tools/preview/unpack_hld.pl +++ b/tools/preview/unpack_hld.pl @@ -4,6 +4,7 @@ use English; use strict; use Getopt::Long; use Data::Dumper; +use Data::TreeDumper; use FileHandle; use feature "switch"; use POSIX qw/strftime/; @@ -419,8 +420,9 @@ sub analyzeData() { #Could it be...? if($SensorHead != 0xffffffff) { #Something is really wrong with data. Skip SubEvent! - printf("Broken Sensor Header\n") if $opt_frameinfo; - $Statistics->{$SensorId}->{Broken}++; + printf("Broken Sensor Header $EvtId\n") if $opt_frameinfo; + $Statistics->{$SensorId}->{RealBroken}++; + last SSELoop; } @@ -445,6 +447,10 @@ sub analyzeData() { printf("\t\t\tHeader\t%08x\tFrame\t%08x\tLength\t%i\n", $SensorDummy, $SensorNumber, $SensorLength) if $opt_frameinfo; + if($SensorLength == 0) { + $pos+=2; + next ; + } my $FrameEndPos = $pos + $SensorLength*2; my ($d, $line, $column, $pixels, $statecnt, $ovf) = (0,0,0,0,0,0); while(1) { @@ -514,14 +520,14 @@ sub WriteResults { my $s = sprintf("%04x",$id); print $fg strftime("set label 100 \"%H:%M:%S\" at screen 0.98,0.02 right tc rgb \"#000044\" font \"monospace,8\"\n", localtime()); - print $fg "set label 101 \"".$hitcount->{$id}." States, $Statistics->{$id}->{Valid} good, $Statistics->{$id}->{Broken} broken\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n" ; + print $fg "set label 101 \"".$hitcount->{$id}." States, ".($Statistics->{$id}->{Valid}||0)." good, ".($Statistics->{$id}->{Broken}||0)." broken, ".($Statistics->{$id}->{RealBroken}||0)." invalid\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n" ; print $fg "set output '$opt_picpath/image_recalibrated_$s$num.png';\n"; print $fg "plot '-' matrix with image\n"; } else { my $s = sprintf("%04x",$id); print $fg strftime("set label 100 \"%H:%M:%S\" at screen 0.98,0.02 right tc rgb \"#000044\" font \"monospace,8\"\n", localtime()); - print $fg "set label 101 \"".$hitcount->{$id}." States, $Statistics->{$id}->{Valid} good, $Statistics->{$id}->{Broken} broken\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n" ; + print $fg "set label 101 \"".$hitcount->{$id}." States, ".($Statistics->{$id}->{Valid}||0)." good, ".($Statistics->{$id}->{Broken}||0)." broken, ".($Statistics->{$id}->{RealBroken}||0)." invalid\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n" ; print $fg "set output '$opt_picpath/image_recalibrated_$s$num.png';\n"; print $fg "replot\n"; @@ -545,7 +551,7 @@ sub WriteResults { $fg->close(); $fg = undef; } - + print DumpTree $Statistics; }