cd $tmpdir
-exec uxterm -bg khaki -geometry 120x20+0+45 -e "/home/hadaq/bin/daq_evtbuild -m 1 -o ${dest} -x ${pref} -I 1 --ebnum 1 -q 32 -S test -d file ${extraopts}; read; bash" &
+exec uxterm -bg khaki -geometry 120x20+0+45 -e "/d/jspc22/trb/git/daqdata/hadaq/daq_evtbuild -m 1 -o ${dest} -x ${pref} -I 1 --ebnum 1 -q 32 -S test -d file ${extraopts}; read; bash" &
pid=$!
echo $pid > $tmpdir/.daq_evtbuild.pid
sleep 1
-exec uxterm -bg tan -geometry 120x20+0+345 -e "/home/hadaq/bin/daq_netmem -m 1 -i UDP:0.0.0.0:50000 -q 32 -d 1 -S test ; " &
+exec uxterm -bg tan -geometry 120x20+0+345 -e "/d/jspc22/trb/git/daqdata/hadaq/daq_netmem -m 1 -i UDP:0.0.0.0:50000 -q 32 -d 1 -S test ; " &
pid=$!
echo $pid > $tmpdir/.daq_netmem.pid
}
}
+ my $cmd = $setup[$active]->{cmd};
+ my $period = $setup[$active]->{period};
+ my $name = $setup[$active]->{name};
+ my ($cmdMod,$cmdAddr,$cmdReg) = split('-',$setup[$active]->{cmd});
+
+
print <<EOF;
<HTML>
<HEAD>
<div class="header">);
for ( my $s = 0; $s < scalar @setup; $s++) {
- print qq|<span class="|.(($active == $s)?"selected":"inactive").qq|"><a href="?|.$setup[$s]->{name}.qq|">|.$setup[$s]->{name}.qq|</a></span>|;
+ print qq|<span class="|.(($active == $s)?"selected":"inactive").qq|"><a href="?$setup[$s]->{name}">$setup[$s]->{name}</a></span>|;
}
print qq(</div>);
-if ($active!=-1) {
-
- if($setup[$active]->{refresh}) {
- print qq|<input type="button" class="stdbutton" onClick="refresh();" value="Refresh">|;
- }
- print qq|<div id="content"></div>|;
- print qq|<script language="javascript">
- setTimeout("refresh()",400);
- document.getElementById("content").addEventListener("click",editsetting,0);
- </script>|;
+print '<div class="head">';
+if($setup[$active]->{generic} == 1) {
+ print qq|
+ <input type="text" id="target" title="Enter any valid command in the form Module-Address-Name"
+ value="$cmd" onChange="settarget()" onLoad="settarget()"
+ style="width:150px;text-align:left">
+ |;
}
+if($setup[$active]->{address} == 1) {
+ print qq|
+ <input type="text" id="address" title="Enter any valid TrbNet address"
+ value="$cmdAddr" onChange="setaddress()" onLoad="setaddress()"
+ style="text-align:left">
+ |;
+ }
+
+print qq|
+<input type="text" id="period" title="Refresh interval in ms. Set to -1 to disable automatic refresh"
+ value="$period" onChange="setperiod()" onLoad="setperiod()">
+<input type="button" class="stdbutton" onClick="refresh(-1);" value="Refresh">
+</div>
+<div id="content"></div>|;
+
print <<EOF ;
</div>
print qq|
<script language="javascript" src="../scripts/scriptsnew.js"></script>
-
+<script language="javascript" src="../scripts/xmlpage.js"></script>
<script language="javascript">
-
+ var period = |.$setup[$n]->{period}.qq|;
+ var command="|.$setup[$n]->{cmd}.qq|";
+ var Timeoutvar;
- function editsetting(e) {
- if(e.target.getAttribute("class") && e.target.getAttribute("class").indexOf("editable")!=-1) {
- var text = e.target.getAttribute("cstr");
- text += "\\nCurrent Value: "+e.target.innerHTML+" ("+e.target.getAttribute("raw")+")\\n ";
- var newval = prompt(text,e.target.getAttribute("raw"));
- if (newval != null) {
- getdataprint('../xml-db/put.pl?'+e.target.getAttribute("cstr")+'-'+newval,'returntext',false,0,refresh);
- }
- }
+
+ if(period != -1) {
+ Timeoutvar = setTimeout("refresh(0)",400);
}
-
- function refresh() {
- getdataprint('../xml-db/get.pl?|.$setup[$n]->{cmd}.qq|','content',false,|.$setup[$n]->{period}.qq|);
+ else {
+ Timeoutvar = setTimeout("refresh(-1)",400);
}
+ setTimeout('document.getElementById("content").addEventListener("click",editsetting,0)',400);
+ setTimeout('document.getElementById("period").value = period;',300);
</script>
|;
<li><a href="tdc/tdcstatctrl.pl">TDC (xml-based)</a>
<li><a href="nxyter/index.pl">Nxyter Read-out</a>
<li><a href="jtag/index.pl">MVD Jtag Controller</a>
+<li><a href="network/generic.pl">Everything else</a>
</ul>
</div>
</div>
$page->{title} = "Jtag Controller Register";
$page->{link} = "../";
-#address should be 0xfe4d
-
my @setup;
$setup[0]->{name} = "Status";
-$setup[0]->{cmd} = "JtagController-0xf308-JtagStatus";
-$setup[0]->{refresh} = 1;
-$setup[0]->{period} = 0;
+$setup[0]->{cmd} = "JtagController-0xfe4d-JtagStatus";
+$setup[0]->{period} = 5000;
$setup[1]->{name} = "CommonCtrl";
-$setup[1]->{cmd} = "JtagController-0xf308-JtagCommonControl";
-$setup[1]->{refresh} = 1;
-$setup[1]->{period} = 0;
+$setup[1]->{cmd} = "JtagController-0xfe4d-JtagCommonControl";
+$setup[1]->{period} = -1;
$setup[2]->{name} = "Control";
-$setup[2]->{cmd} = "JtagController-0xf308-JtagControl";
-$setup[2]->{refresh} = 1;
-$setup[2]->{period} = 0;
+$setup[2]->{cmd} = "JtagController-0xfe4d-JtagControl";
+$setup[2]->{period} = -1;
xmlpage::initPage(\@setup,$page);
--- /dev/null
+&htsponse(200, "OK");
+print "Content-type: text/html\r\n\r\n";
+
+
+use CGI ':standard';
+use XML::LibXML;
+use POSIX;
+use CGI::Carp qw(fatalsToBrowser);
+
+use lib qw|../commands htdocs/commands|;
+use xmlpage;
+
+my $page;
+
+$page->{title} = "Generic Register Display";
+$page->{link} = "../";
+
+
+my @setup;
+$setup[0]->{name} = "AnyReg";
+$setup[0]->{cmd} = "TrbNet-0xffff-CompileTime";
+$setup[0]->{period} = -1;
+$setup[0]->{generic} = 1;
+
+
+xmlpage::initPage(\@setup,$page);
+
+
+
+
+1;
+
+
my @setup;
$setup[0]->{name} = "StatusRegisters";
$setup[0]->{cmd} = "TrbNet-0xffff-StatusRegisters";
-$setup[0]->{refresh} = 1;
-$setup[0]->{period} = 10000;
+$setup[0]->{period} = 2000;
+$setup[0]->{address} = 1;
$setup[1]->{name} = "BoardInfo";
$setup[1]->{cmd} = "TrbNet-0xffff-BoardInformation";
-$setup[1]->{refresh} = 1;
-$setup[1]->{period} = 0;
+$setup[1]->{period} = -1;
+$setup[1]->{address} = 1;
xmlpage::initPage(\@setup,$page);
use lib qw|../commands htdocs/commands|;
use xmlpage;
-
my $page;
+
$page->{title} = "Nxyter Register";
$page->{link} = "../";
my @setup;
$setup[0]->{name} = "DataValid";
$setup[0]->{cmd} = "Nxyter-0x3800-DataValidate";
-$setup[0]->{refresh} = 1;
-$setup[0]->{period} = 0;
+$setup[0]->{period} = -1;
+$setup[0]->{address} = 1;
+
$setup[1]->{name} = "TrigValid";
$setup[1]->{cmd} = "Nxyter-0x3800-TriggerValidate";
-$setup[1]->{refresh} = 1;
-$setup[1]->{period} = 0;
+$setup[1]->{period} = -1;
+$setup[1]->{address} = 1;
+
+$setup[2]->{name} = "OtherStuff";
+$setup[2]->{cmd} = "Nxyter-0x3800-TriggerValidate";
+$setup[2]->{period} = -1;
+$setup[2]->{generic} = 1;
xmlpage::initPage(\@setup,$page);
document.getElementById(destId).innerHTML = xmlhttp.responseText;
}
if(cb) {
- cb();
- }
- if(time) {
- setTimeout("getdataprint('"+cmd+"','"+destId+"','"+asynci+"','"+timei+"')",timei);
+ cb(time);
}
//cb(xmlhttp.responseText);
//document.getElementById(destId).innerHTML = xmlhttp.responseText;
--- /dev/null
+ function editsetting(e) {
+ if(e.target.getAttribute("class") && e.target.getAttribute("class").indexOf("editable")!=-1) {
+ var text = e.target.getAttribute("cstr");
+ text += "\\nCurrent Value: "+e.target.innerHTML+" ("+e.target.getAttribute("raw")+")\\n ";
+ var newval = prompt(text,e.target.getAttribute("raw"));
+ if (newval != null) {
+ getdataprint('../xml-db/put.pl?'+e.target.getAttribute("cstr")+'-'+newval,'returntext',false,-1,refresh);
+ }
+ }
+ }
+
+ function refresh(time = 0) {
+ if(time == -1) { //call immediately and only once
+ getdataprint('../xml-db/get.pl?'+command,'content',false,0);
+ }
+ else if (time > 0) { //call with timeout
+ clearTimeout(Timeoutvar);
+ Timeoutvar = setTimeout("getdataprint('../xml-db/get.pl?'+command,'content',false,"+period+",refresh)",period);
+ }
+ else { //call immediately, then with timeout
+ clearTimeout(Timeoutvar);
+ getdataprint('../xml-db/get.pl?'+command,'content',false,period,refresh);
+ }
+ }
+
+ function setperiod(e) {
+ period = document.getElementById("period").value;
+ if (period == -1) {
+ clearTimeout(Timeoutvar);
+ }
+ else if (period < 100) {
+ period = 1000;
+ document.getElementById("period").value = period;
+ refresh(period);
+ }
+ else {
+ refresh(period);
+ }
+ }
+
+
+ function settarget(e) {
+ command=document.getElementById("target").value;
+ refresh(period);
+ }
+
+ function setaddress(e) {
+ address=document.getElementById("address").value;
+ var part = command.split('-');
+ command=part[0]+"-"+address+"-"+part[2];
+ refresh(period);
+ }
\ No newline at end of file