die("can not connect to trbnet-daemon on the $ENV{'DAQOPSERVER'}");
}
-my ($board,$addr,$amount) = split('-',$ENV{'QUERY_STRING'});
+my ($board,$addr,$amount,$split) = split('-',$ENV{'QUERY_STRING'});
$board = hex($board);
$addr = hex($addr);
$amount = 1 unless $amount;
+$split = 1 unless $split;
+
if($amount != 1) {
- my $hits = trb_register_read_mem($board,$addr,0,$amount);
- foreach my $b (sort keys %$hits) {
- printf ("%04x",$b);
- for(my $c =0; $c < $amount; $c++) {
- printf(" %d",$hits->{$b}->[$c]);
+ if ($split <= 1) {
+ my $hits = trb_register_read_mem($board,$addr,0,$amount);
+ foreach my $b (sort keys %$hits) {
+ printf ("%04x",$b);
+ for(my $c =0; $c < $amount; $c++) {
+ printf(" %d",$hits->{$b}->[$c]);
+ }
+ print "&";
+ }
+ }
+ else {
+ my $chunk = $amount/$split;
+ my $i = 0;
+ my @hits;
+ do {
+ $hits[$i] = trb_register_read_mem($board,$addr+$i*$chunk,0,$amount/$split);
+# print ($board." ".($addr+$i*$chunk)." ".($amount/$split)."\n");
+ } while(++$i < $split);
+ foreach my $b (sort keys %{$hits[0]}) {
+ printf ("%04x",$b);
+ for(my $i = 0; $i < scalar @hits; $i++) {
+ for(my $c =0; $c < $chunk; $c++) {
+ printf(" %d",$hits[$i]->{$b}->[$c]);
+ }
+ }
+ print "&";
}
- print "&";
}
}
else {
border:solid #ccc;
border-width:1px 0 0 1px;
margin:0 20px 20px 0;
-/* border-collapse:collapse; */
-border-spacing:0;
+ border-spacing:0;
}
table#contentregs td:first-child, table#contentregs th:first-child,
padding-right:10px;
border-left: 5px solid #fcc;
border-right:5px solid #fcc;
- border-radius:180px 180px;
+ border-radius:20px 20px;
background:#fcc;
}
padding-right:10px;
border-left: 5px solid #cfc;
border-right:5px solid #cfc;
- border-radius:180px 180px;
+ border-radius:20px 20px;
background:#cfc;
}
<tr><td>Board<td><input onChange="setValues()" type="text" id="form_board" name="board" maxlength="4" value="ffff">
<tr><td># of Channels<td><input onChange="setValues()" type="text" id="form_channels" name="channels" maxlength="3" value="65">
<tr><td>Update Interval (ms)<td><input onChange="setValues()" type="text" id="form_rate" name="rate" maxlength="5" value="1000">
+<tr><td>Split Table<td><input onChange="setValues()" type="checkbox" id="form_split" name="split" value="2">
<tr><td>Differences<td><input onChange="setValues()" type="checkbox" id="form_diff" name="diff" value="1">
<tr><td>Input Status<td><input onChange="setValues()" type="checkbox" id="form_status" name="status" value="1">
<tr><td><td><input type="button" onClick="setValues()" value="OK">
var updaterate = document.getElementById("form_rate").value;
var board = document.getElementById("form_board").value;
var channels = document.getElementById("form_channels").value;
+var split = document.getElementById("form_split").checked?"-2":"";
var differences= document.getElementById("form_diff").checked;
var showstatus = document.getElementById("form_status").checked;
var oldvalues = {};
function setValues() {
updaterate = document.getElementById("form_rate").value;
board = document.getElementById("form_board").value;
+ split = document.getElementById("form_split").checked?"-2":"";
differences= document.getElementById("form_diff").checked;
showstatus = document.getElementById("form_status").checked;
channels = document.getElementById("form_channels").value;
clearInterval(updateTask);
- updateTask = setInterval("getdata('get.pl?"+board+"-c000-"+channels+"',update)",updaterate);
+ updateTask = setInterval("getdata('get.pl?"+board+"-c000-"+channels+split+"',update)",updaterate);
clearInterval(updateRegsTask);
updateRegsTask = setInterval("getdata('getmultreg.pl?"+board+"-"+reglist+"',updateregs)",updaterate);
-updateTask = setInterval("getdata('get.pl?"+board+"-c000-"+channels+"',update)",updaterate);
+updateTask = setInterval("getdata('get.pl?"+board+"-c000-"+channels+split+"',update)",updaterate);
updateRegsTask = setInterval("getdata('getmultreg.pl?"+board+"-"+reglist+"',updateregs)",updaterate);