From e62795a482bf13e9ff3b376e676e7901666867a4 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Fri, 6 Jan 2023 12:45:42 +0100 Subject: [PATCH] extend Trigger GUI for backplane CTS --- web/htdocs/network/trigger.pl | 52 +++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/web/htdocs/network/trigger.pl b/web/htdocs/network/trigger.pl index 37e7e65..1c0feca 100755 --- a/web/htdocs/network/trigger.pl +++ b/web/htdocs/network/trigger.pl @@ -179,33 +179,51 @@ sub makeinputbitsslice { sub makemasterkel { - my ($data,$outp) = @_; + my ($data,$outp,$type) = @_; my $o = ""; - my $val = ($data->{$outp*4}>>22) | ($data->{$outp*4+1} << 10); - my $act = ($data->{0x8c}>>22) | ($data->{0x8d} << 10); - + my $val; my $act; + if($type eq 'trb3sc') { + $val = ($data->{$outp*4} >> 22) | ($data->{$outp*4+1} << 10); + $act = ($data->{0x8c} >> 22) | ($data->{0x8d} << 10); + } + if ($type eq 'trb3sc_cts') { + $val = ($data->{$outp*4} >> 2) | ($data->{$outp*4+1} << 30); + $act = ($data->{0x8c} >> 2) | ($data->{0x8d} << 30); + } + my $tmp = sprintf("%016b",$val & 0xFFFF); - $tmp = convbox($tmp,0,0,0,$act,16); + $tmp = convbox($tmp,0,0,0,$act,16); $o .= $tmp."
"; - $tmp = sprintf("%016b",$val>>16 & 0xFFFF); - $tmp = convbox($tmp,0,0,0,$act>>16,16); + $tmp = sprintf("%016b",$val>>16 & 0xFFFF); + $tmp = convbox($tmp,0,0,0,$act>>16,16); $o .= $tmp; + return $o; } sub makemasterbits { my ($d,$i,$s,$t) = @_; #data,slot,output,type my $o = ""; + + if($t eq 'trb3sc_cts') { + $s += 36 - 32; #starting in 36, but shifted to second register + $o .= "".(($d->{1} & (1<<($i*2+$s)))?'➊':'◻')." "; + $o .= "".(($d->{5} & (1<<($i*2+$s)))?'➋':'◻')."
"; + $o .= "".(($d->{0x35} & (1<<($i*2+$s)))?'◼':'◻').""; + $o .= "".(($d->{0x39} & (1<<($i*2+$s)))?'◼':'◻').""; + $o .= "".(($d->{0x3b} & (1<<($i*2+$s)))?'◼':'◻').""; + } if($t eq 'trb3sc') { $o .= "".(($d->{0} & (1<<($i*2+$s)))?'➊':'◻')." "; $o .= "".(($d->{4} & (1<<($i*2+$s)))?'➋':'◻')."
"; $o .= "".(($d->{0x33} & (1<<($i*2+$s)))?'◼':'◻').""; - $o .= "".(($d->{0x33} & (1<<($i*2+$s)))?'◼':'◻').""; - $o .= "".(($d->{0x33} & (1<<($i*2+$s)))?'◼':'◻').""; + $o .= "".(($d->{0x38} & (1<<($i*2+$s)))?'◼':'◻').""; + $o .= "".(($d->{0x3a} & (1<<($i*2+$s)))?'◼':'◻').""; } + if($t eq 'trb3') { $o .= "".(($d->{0} & (1<<($i*4+$s)))?'➊':'◻')." "; $o .= "".(($d->{4} & (1<<($i*4+$s)))?'➋':'◻')."
"; @@ -222,7 +240,7 @@ sub gettable { my $pos = getposition(@{$boards}); my $out = ""; - if($type eq 'trb3sc') { + if($type =~ /^trb3sc/) { $out .= ""; $out .= "
Board @@ -236,8 +254,8 @@ sub gettable { if($i==4) { $out .= sprintf("
0x%04x",$b,$b); - $out .= "".makemasterkel($data->{$b},0); - $out .= "".makemasterkel($data->{$b},1); + $out .= "".makemasterkel($data->{$b},0,$type); + $out .= "".makemasterkel($data->{$b},1,$type); $out .= "  "; $out .= ""; @@ -393,10 +411,16 @@ sub createsetup { my $masterstring = shift @_; $masterstring =~ /0x(\w\w\w\w)/; my $master = hex($1); - my $o = trb_register_read(0xffff,0x42); + my $o = trb_register_read(0xffff,0x42); + my $if = trb_register_read(0xffff,0x41); 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';} + if (($o->{$master}>>24 & 0xff) == 0x95) { + $types->{$masterstring} = 'trb3sc'; + if($if->{$master} & 0x10000000) { #if USE_BACKPLANE + $types->{$masterstring} = 'trb3sc_cts'; + } + } push(@{$setups->{$masterstring}},$master); return if $types->{$masterstring} eq 'rjkel'; -- 2.43.0