]> jspc29.x-matter.uni-frankfurt.de Git - mvdsensorcontrol.git/commitdiff
minor fixes to adcread, run.pl and testgui, added label with (F)HR of individual...
authorwww@jspc55 <www@jspc55>
Wed, 18 Jun 2014 09:47:13 +0000 (11:47 +0200)
committerwww@jspc55 <www@jspc55>
Wed, 18 Jun 2014 09:47:13 +0000 (11:47 +0200)
tools/adcread.pl
tools/preview/unpack_hld.pl
tools/run.pl
tools/testgui.pl

index ecac69edf0d31caa7ed7853043f88acaf4a6a8f0..d8ad61c87bcea47617848c984108b7d2b69a8f63 100755 (executable)
@@ -19,6 +19,9 @@ use HADES::TrbNet;
 use AccessXmlDb;
 use CGI ':standard';
 require Common;
+use FindBin;
+use lib "$FindBin::Bin/..";
+use Environment;
 
 
 use FindBin;
@@ -73,7 +76,7 @@ trb_init_ports() or die trb_strerror();
 
 my @vals;
 
-minMax();
+minMax(); # throw away stale data, min and max are taken relative to last read
 
 $delay /= 1000;
 
@@ -86,6 +89,10 @@ for (my $i = 0; $i < $n; $i++){
 
 my( $min, $max) = minMax();
 
+if ($min > $max ) {
+  die "Error, not getting fresh values from converter board connected to FPGA $FPGA!\n";
+}
+
 my $mean = average(\@vals);
 my $stdev = stdev(\@vals);
 print "unit = 1 ".$self->{unit}."\n" if $verbose;
index 8af12d45e6715bb32da32921365be9ae1e55e423..c37c48dd55333843dd162fba151616d20dee41f2 100755 (executable)
@@ -475,7 +475,7 @@ sub analyzeData() {
             $column = ($d >> 2) & 0x7FF;
             printf("\t$line, $column x %d\n",$pixels+1) if $opt_frameinfo;
             $hitcount->{$SensorId}++;
-            $pixelcount->{$SensorId}->[$column/288]+=$pixels;
+            $pixelcount->{$SensorId}->[int($column/288)]+=$pixels+1;
             $matrix->[$line]->[$column]++;
             if ($pixels > 0) {
               $matrix->[$line]->[$column+1]++;
@@ -522,6 +522,7 @@ sub WriteResults {
     #No frames? No plot!
     if(!defined $Statistics->{$id}->{Valid}) {next;}
     
+    my @hitrates;
     if($opt_hitrates) {
       
       printf("%s\t%i\t%i\t%i\t%i\t%10i\t%10i\t%10i\t%10i\n",
@@ -535,6 +536,18 @@ sub WriteResults {
                $pixelcount->{$id}->[2]||0,
                $pixelcount->{$id}->[3]||0
                );
+      printf ("HR Bank0\tHR Bank1\tHR Bank2\tHR Bank3\n");
+      $hitrates[0] = ($pixelcount->{$id}->[0]||0) /(288*576*($Statistics->{$id}->{Valid}||0));
+      $hitrates[1] = ($pixelcount->{$id}->[1]||0) /(288*576*($Statistics->{$id}->{Valid}||0));
+      $hitrates[2] = ($pixelcount->{$id}->[2]||0) /(288*576*($Statistics->{$id}->{Valid}||0));
+      $hitrates[3] = ($pixelcount->{$id}->[3]||0) /(288*576*($Statistics->{$id}->{Valid}||0));
+      printf("%e\t%e\t%e\t%e\n",
+               $hitrates[0],
+               $hitrates[1],
+               $hitrates[2],
+               $hitrates[3]
+               );
+
       }    
     
     if(!defined $fg) {
@@ -549,14 +562,30 @@ 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}||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 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.01 left tc  rgb \"#000044\" font \"monospace,8\"\n" ;
+      print $fg  "set label 102 \"hit rates: ".
+      sprintf("A: %.3e B: %.3e C: %.3e D:%.3e",
+               $hitrates[0],
+               $hitrates[1],
+               $hitrates[2],
+               $hitrates[3]
+               )
+      ."\" at screen 0.4,0.01 left tc  rgb \"#000044\" font \"monospace,8\"\n" if($opt_hitrates);
       print $fg  "set output '$opt_picpath/".$system."_$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}||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 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.01 left tc  rgb \"#000044\" font \"monospace,8\"\n" ;
+      print $fg  "set label 102 \"hit rates: ".
+      sprintf("A: %.3e B: %.3e C: %.3e D:%.3e",
+               $hitrates[0],
+               $hitrates[1],
+               $hitrates[2],
+               $hitrates[3]
+               )
+      ."\" at screen 0.4,0.01 left tc  rgb \"#000044\" font \"monospace,8\"\n" if($opt_hitrates);
       print $fg  "set output '$opt_picpath/".$system."_$s$num.png';\n";
       print $fg  "replot\n";
     
@@ -583,4 +612,3 @@ sub WriteResults {
   #print DumpTree $Statistics;
 
   }
-
index a6f5dc30f2f38cf18115a39df7ebac040afba35f..0c9bde8326b1567c5994e5d8966cc56aeb24cc99 100755 (executable)
@@ -86,7 +86,7 @@ unless($q->param('startupOnly') eq 'true'){
   $dummy.=qx"rm $dumpPath/temp.hld 2>&1";
   $dummy.=qx"mv $dumpPath/te1* $dumpPath/temp.hld 2>&1";
   $dummy.=qx"rm $picPath/$systemName*.png 2>&1"; # delete old pictures
-  $dummy.=qx"./preview/unpack_hld.pl -f $dumpPath/temp.hld -p $picPath -s $systemName 2>&1";
+  $dummy.=qx"./preview/unpack_hld.pl -r -f $dumpPath/temp.hld -p $picPath -s $systemName 2>&1";
 }
 my $escapedDummy = escapeHTML($dummy);
 $escapedDummy =~ s/\n/<br>/g;
index 0113da98d1cced3baaeb6a2eba23028084d2ba2a..843583c30c9b8dbf6025e9cf93021e9cfebac166 100755 (executable)
@@ -255,17 +255,8 @@ sub print_setupStructure {
       unless(scalar(@sensors)>0) { die "no sensors attached to chain $chainName\n";}
       for my $sensor (@sensors) {
         
-#         my $sensorId = $systemName.'_'.$sensor->findvalue("./\@id");
-#         my $sensorName = $sensor->findvalue("./\@name");
-#         my $sensorConfig = $sensor->findvalue("./\@config");
-#         my $sensorEnabled = $sensor->findvalue("./\@enabled");
-#         my $sensorSerial = $sensor->findvalue("./\@serial");
-#         my $sensorPosition = $sensor->findnodes("./position")->shift();
-#         my $sensorDescription = $sensor->findvalue("./description");
-        
-#         print h5("Sensor name:$sensorName id:$sensorId");
-#         print "<p>description: $sensorDescription</p>";
-        print_sensorArea($sensor);
+
+        print_sensorArea($controller,$sensor);
       }
       
     }
@@ -280,11 +271,15 @@ sub print_setupStructure {
 #### html output subs ###########
 
 sub print_sensorArea {
-
-  my $sensor = $_[0];
+  
+  my $controller = $_[0];
+  my $sensor = $_[1];
   # this is an xml object that contains the sensor node
   # from the setup file
-  my $sensorId = $systemName.'_'.$sensor->findvalue("./\@id");
+  
+  my $controllerAddress = $controller->findvalue("./\@address");
+  
+  my $sensorId = $systemName.'_0x'.$controllerAddress.'_'.$sensor->findvalue("./\@id");
   my $sensorName = $sensor->findvalue("./\@name");
   my $sensorConfig = $sensor->findvalue("./\@config");
   my $sensorEnabled = $sensor->findvalue("./\@enabled");