]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
add first display of trigger inputs with RJ-Adapter
authorJan Michel <j.michel@gsi.de>
Wed, 17 Apr 2019 07:44:42 +0000 (09:44 +0200)
committerJan Michel <j.michel@gsi.de>
Wed, 17 Apr 2019 07:44:52 +0000 (09:44 +0200)
web/htdocs/network/trigger.pl

index d50790d45170dbaa71997f1b2b8251ea5398ed52..800ace4df6789e4d2ae518c1dbf00031abf705b5 100755 (executable)
@@ -26,25 +26,25 @@ my @regs = (0,1,2,4,5,6,8,9,10,12,13,14,0x31,0x32,0x33,0x34);
 
 
 my $setups = {
- '0x8a00' => [0x8a00,0x6010,0x6011,0x6012,0x6003,0x6004,0x6005,0x6006],
- '0x8a01' => [0x8a01,0x6020,0x6021,0x6022,0x6013,0x6014,0x6015,0x6016],
- '0x8a02' => [0x8a02,0x6030,0x6031,0x6032,0x6023,0x6024,0x6025,0x6026],
- '0x8a03' => [0x8a03,0x6040,0x6041,0x6042,0x6033,0x6034,0x6035,0x6036],
- '0x8a04' => [0x8a04,0x6050,0x6051,0x6052,0x6043,0x6044,0x6045,0x6046],
- '0x8a05' => [0x8a05,0x6000,0x6001,0x6002,0x6053,0x6054,0x6055,0x6056],
+ '0x8a00' => [0x8a00,0x6010,0x6011,0x6012,0x6003,0x6004,0x6005,0x6006],
+ '0x8a01' => [0x8a01,0x6020,0x6021,0x6022,0x6013,0x6014,0x6015,0x6016],
+ '0x8a02' => [0x8a02,0x6030,0x6031,0x6032,0x6023,0x6024,0x6025,0x6026],
+ '0x8a03' => [0x8a03,0x6040,0x6041,0x6042,0x6033,0x6034,0x6035,0x6036],
+ '0x8a04' => [0x8a04,0x6050,0x6051,0x6052,0x6043,0x6044,0x6045,0x6046],
+ '0x8a05' => [0x8a05,0x6000,0x6001,0x6002,0x6053,0x6054,0x6055,0x6056],
  '0x0100' => [0x0100],
- '0x8880' => [0x8880,0x5000,0x5001,0x5002,0x5003],
+ '0x8880' => [0x8880,0x5000,0x5001,0x5002,0x5003],
 };
 
 my $types = {
- '0x8a00' => 'trb3sc',
- '0x8a01' => 'trb3sc',
- '0x8a02' => 'trb3sc',
- '0x8a03' => 'trb3sc',
- '0x8a04' => 'trb3sc',
- '0x8a05' => 'trb3sc',
+ '0x8a00' => 'trb3sc',
+ '0x8a01' => 'trb3sc',
+ '0x8a02' => 'trb3sc',
+ '0x8a03' => 'trb3sc',
+ '0x8a04' => 'trb3sc',
+ '0x8a05' => 'trb3sc',
  '0x0100' => 'rjkel',
- '0x8880' => 'trb3',
+ '0x8880' => 'trb3',
 };
 
 
@@ -123,6 +123,31 @@ sub makeinputbits {
   return $o;  
   }
 
+sub makeinputbitsslice {
+  my ($data,$outp,$slice) = @_;
+  my $o = "";
+  my $multtmp = $data->{0x33};
+     $multtmp = 0 if (! ($data->{0x34} & (1 << (8+$outp))));
+
+  $multtmp = ($multtmp >> (4*$slice))  & 0xF;
+  $tmp     = ($data->{$outp*4}  >> (4*$slice))  & 0xF;
+       
+  $multtmp = sprintf("%04b", $multtmp);
+      $tmp = sprintf("%04b", $tmp);
+  $tmp = convbox($tmp,$multtmp);
+  $o .= $tmp."<br>";
+
+  $multtmp = sprintf("%04b",0);
+  $tmp = ($data->{$outp*4+1}  >> (4*$slice))  & 0xF;
+  $tmp = sprintf("%04b",$tmp);
+  $tmp = convbox($tmp,$multtmp);
+  $o .= $tmp;    
+  
+  return $o;  
+  }
+  
+  
+  
 sub makemasterbits {
   my ($d,$i,$s,$t) = @_;  #data,slot,output,type
   my $o = "";
@@ -248,6 +273,32 @@ sub gettable {
                    </table>#;
     }
     
+  if ($type eq 'rjkel') {
+    my $b = $boards->[0];
+    $out .= "<table class=\"triggermap\">";    
+    $out .= "<tr><th>X<th>J<th>I<th>H<th>G<th>D<th>C<th>B<th>A";
+
+    foreach my $i (0..3) {
+      $out .= "<tr><th>".($i+1);
+      
+      foreach my $c (0..7) {
+        $out .= "<td>".makeinputbitsslice($data->{$b},$i,7-$c);
+        }
+      
+      }
+    $out .= sprintf("<tr class=\"master\"><td>0x%04x<td colspan=\"8\">",$b);
+    if ($data->{$boards->[0]}{0x33} != 0) {
+      $out .= "mult >=".(($data->{$boards->[0]}{0x32} >> 16)&0xFF)." ";
+      }
+    
+    $out .= "</table>";
+    
+     $out .= qq#
+     <p>The lines in each cell are the two input boards. <br> 
+        X1..4 are the outputs on the first board.
+     #;
+    }
+    
   return $out;
   }  
   
@@ -259,12 +310,14 @@ sub createsetup {
   unless ($o->{$master}) {print "Master not found.\n"; return;}
   if (($o->{$master}>>24 & 0xff) == 0x90) {$types->{$masterstring} = 'trb3';}
   if (($o->{$master}>>24 & 0xff) == 0x95) {$types->{$masterstring} = 'trb3sc';}
+  push(@{$setups->{$masterstring}},$master);    
+  return if $types->{$masterstring} eq 'rjkel';
   
   my @list = ($master);
   foreach my $b (keys %{$o}) {
     push(@list,$b);  
     }
-  push(@{$setups->{$masterstring}},$master);    
   my $pos = getposition(@list);
   foreach my $b (keys %{$pos}) {
     push(@{$setups->{$masterstring}},$pos->{$b});