-
-
-
-
-
-
-.plasticBox {
- border-radius:5px;
- background:#eef;
- box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
-}
-
.debugFeature {
visibility:collapse;
}
width:320px;
padding:10px;
margin:50px 10px 0 30px;
- border-radius:5px;
- background:#eef;
- box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
}
#fileSelection {
display: inline;
}
-
+.stylishBox {
+ border-radius:5px;
+ background:#eef;
+ box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
+}
\ No newline at end of file
visibility:visible;
}
-#theConsole {
+#theConsoleContainer {
visibility:collapse;
+ margin:5px;
+ padding:10px;
+}
+
+#advancedOptionsContainer {
+ visibility:collapse;
+ margin:5px;
+ padding:10px;
}
.td_solid {
/* width:320px; */
/* padding:10px; */
margin:0px 0px 30px 0px;
- border-radius:5px;
- background:#eef;
- box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
}
.previewArea img{
width:320px;
padding:10px;
margin:50px 10px 0 30px;
- border-radius:5px;
- background:#eef;
- box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
}
-.sensorHeader{
-/* float:left; */
-/* position:relative; */
-/* width:700px; */
-/* min-height:50px; */
-/* padding:10px; */
- margin:50px 0 0 20px;
- border-radius:5px;
- background:#eef;
- box-shadow: 0 0 10px 5px #fff, 0 0 4px 1px #78b inset;
-}
\ No newline at end of file
sub makeTimeString{
- return strftime("set label 100 \"%H:%M:%S\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n", localtime())
+ return strftime("set label 100 \"%H:%M:%S\" at screen 0.02,0.02 left tc rgb \"#000044\" font \"monospace,8\"\n", localtime());
}
# $p->{$name}->{file}.".png".
# "\"");
plot_write($p->{$name}->{fh},makeTimeString());
+ #### show a label when no data is coming ####
+ if ( $p->{$name}->{value}->[1]->[-1] > $p->{$name}->{value}->[2]->[-1] ) { # test if min>max (impossible for real data)
+ plot_write($p->{$name}->{fh},"set label 101 \"no data from FEE\" at screen 0.52,0.55 center tc rgb \"#770000\" font \"monospace,14\"\n");
+ }else{
+ plot_write($p->{$name}->{fh},"set label 101 \"\"\n");
+ }
+ #### /show a label when no data is coming ####
plot_write($p->{$name}->{fh},"replot");
}
for(my $j=0; $j<$p->{$name}->{curves}; $j++) {
}
plot_write($p->{$name}->{fh},"e");
}
+
$p->{$name}->{run}++;
}
print h2 "Converter Board ADC Monitor";
-print '<div id="selectors" class="plasticBox">';
+print '<div id="selectors" class="stylishBox">';
print_selectors($q);
print '</div>';
-print '<div id="plotAreaBg" class="plasticBox plotArea">';
+print '<div id="plotAreaBg" class="stylishBox plotArea">';
print "<div class='header'>Plots</div>";
# print "plotAreaBg";
print '</div>';
-print '<div id="plotAreaFg" class="plasticBox plotArea">';
+print '<div id="plotAreaFg" class="stylishBox plotArea">';
# print "plotAreaFg";
print '</div>';
}
print <<EOF;
<h2>JTAG Configuration File Editor</h2>
-<div id="debug">
+<div id="debug" class="stylishBox">
<div class="header">Debug Output</div>
debug text
</div>
-<div id="fileSelection">
+<div id="fileSelection" class="stylishBox">
Current File: unknown
</div>
-<div id="roterBereich">
+<div id="roterBereich" class="stylishBox">
empty
</div>
-<div id="blauerBereich">
+<div id="blauerBereich" class="stylishBox">
empty
</div>
my $max = ($minmax >> 16 ) * $self->{scale} + ($self->{scaleoffset}||0); # upper 16 bit
# print $value."\n" if $myverbose;
HPlot::PlotAdd($self->{requestString},$value,0);
- HPlot::PlotAdd($self->{requestString},$min,1);
- HPlot::PlotAdd($self->{requestString},$max,2);
+ if ($min > $max){ # $min>$max means no real data
+ HPlot::PlotAdd($self->{requestString},$value+$self->{scale},1); # draw min and max close to last value ...
+ HPlot::PlotAdd($self->{requestString},$value-$self->{scale},2); # but still the wrong order
+ } else { # valid data
+ HPlot::PlotAdd($self->{requestString},$min,1);
+ HPlot::PlotAdd($self->{requestString},$max,2);
+ }
}
sub draw {
my $dummy;
$dummy =qx"./startup.pl $setupFile";
-$dummy.=qx"rm $dumpPath/te1*.hld 2>&1";
-$dummy.=qx"./preview/exec_evtbuild_t.pl -t $runtime -p $dumpPath -s $systemName -d $ports 2>&1";
-$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";
+unless($q->param('startupOnly') eq 'true'){
+ $dummy.=qx"rm $dumpPath/te1*.hld 2>&1";
+ $dummy.=qx"./preview/exec_evtbuild_t.pl -t $runtime -p $dumpPath -s $systemName -d $ports 2>&1";
+ $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";
+}
my $escapedDummy = escapeHTML($dummy);
$escapedDummy =~ s/\n/<br>/g;
print $escapedDummy;
# configure Converter Boards
local $CWD = XMLDBPATH;
-delete $ENV{'QUERY_STRING'};
+delete $ENV{'QUERY_STRING'}; # make sure put.pl is used in a command line and not in a web context
foreach my $cmd (@CbCommands){
my $entity = "CbController";
my $addr = $cmd->{addr};
}
+
+
+function startupOnly(){
+
+
+
+ var setupFile_ = encodeURIComponent(setupFile);
+ getdata("run.pl?startupOnly=true&runtime=0&setupFile="+setupFile_,"theConsole",false);
+
+
+
+
+}
\ No newline at end of file
print "</script>";
# end of that story
- print "<input type='button' value='show/hide debug output' onclick='toggleVis(\"theConsole\")'>";
+ print "<input type='button' value='show/hide debug output' onclick='toggleVis(\"theConsoleContainer\")'>";
+ print "<input type='button' value='show/hide advanced options' onclick='toggleVis(\"advancedOptionsContainer\")'>";
print "</td></tr>";
print "</table>";
print "</p>";
+
+ print "<div id='advancedOptionsContainer' class='stylishBox'>";
+ print "<div class='header'>advanced options</div>";
+ print "<div id='advancedOptions'>";
+
+ print "<table><tr><td>";
+ print q%<input type='button' onClick='startupOnly();' value='startup only'
+ title="only program JTAG settings and start the sensors, take no data">%;
+# print "</td><td>";
+ print "</td></tr></table>";
+
+
+ print "</div>";
+ print "</div>";
+
+
+ print "<div id='theConsoleContainer' class='stylishBox'>";
+ print "<div class='header'>debug output</div>";
print "<div id='theConsole'>[the \"console\"]</div>";
+ print "</div>";
print end_html;
print "<tr>";
my $previewAreaId = "preview_".$sensorId;
- print "<td class='previewArea'>";
+ print "<td class='previewArea stylishBox'>";
print "<div class='header' title='$sensorDescription'>$sensorName (id=$sensorId)</div>";
print "<div id='".$previewAreaId."' class='prevImgContainer'><div>[not run yet]</div></div>";
print "</td>";
$quickEditAreaId = "quickEdit_".$sensorId;
- print "<td id='".$quickEditAreaId."' class='quickEditArea'>";
+ print "<td id='".$quickEditAreaId."' class='quickEditArea stylishBox'>";
print_quickEditArea($sensorConfig);
print "</td>";
print "</tr>";