From: Jan Michel Date: Wed, 17 Apr 2019 07:44:42 +0000 (+0200) Subject: add first display of trigger inputs with RJ-Adapter X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=965f638c008c386a3992113339502a1bb8733eb6;p=daqtools.git add first display of trigger inputs with RJ-Adapter --- diff --git a/web/htdocs/network/trigger.pl b/web/htdocs/network/trigger.pl index d50790d..800ace4 100755 --- a/web/htdocs/network/trigger.pl +++ b/web/htdocs/network/trigger.pl @@ -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."
"; + + $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 { #; } + if ($type eq 'rjkel') { + my $b = $boards->[0]; + $out .= ""; + $out .= "
XJIHGDCBA"; + + foreach my $i (0..3) { + $out .= "
".($i+1); + + foreach my $c (0..7) { + $out .= "".makeinputbitsslice($data->{$b},$i,7-$c); + } + + } + $out .= sprintf("
0x%04x",$b); + if ($data->{$boards->[0]}{0x33} != 0) { + $out .= "mult >=".(($data->{$boards->[0]}{0x32} >> 16)&0xFF)." "; + } + + $out .= "
"; + + $out .= qq# +

The lines in each cell are the two input boards.
+ 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});