div.index {
margin: 0 30px 0 15px;
- background: #ffffff;
+ background: rgba(255,255,255,.5);
overflow: hidden;
padding: 5px;
}
padding:2px 10px;
}
-table#content, table#contentregs {
+table.content {
border:solid #ccc;
border-width:1px 0 0 1px;
margin:0 20px 20px 0;
border-spacing:0;
}
-table#contentregs td:first-child, table#contentregs th:first-child,
-table#content td:first-child, table#content th:first-child{
+table.content td:first-child, table.content th:first-child{
width:40px;
padding-right:0px;
-table#content td, table#content th, table#contentregs td, table#contentregs th{
+table.content td, table.content th {
border:solid #ccc;
border-width:0 1px 1px 0;
width:90px;
padding-right:15px;
}
-table#content, table#contentregs {
+table.content {
border:1px solid #ccc;
}
font-weight:bold;
}
-
+.content tr:nth-child(odd), .odd {
+ background:#f0f0f8;
+}
+
+.content tr:nth-child(even), .even {
+ background:#e0e0e8;
+}
+
.odd {
background:#f0f0f8;
}
-.odd:hover, .even:hover {
+.content tr:hover, .content tr:hover {
background:#ffe;
}
background:#e0e0e8;
}
-.head {
+tr.head th {
background:#333;
color:#eef;
}
-table#content td.over {
+table.content td.over {
width:50px;
margin:0 10px;
padding-right:10px;
background:#fcc;
}
-table#content td.under {
+table.content td.under {
width:50px;
margin:0 10px;
padding-right:10px;
}
-table#content tr:hover td.over {
+table.content tr:hover td.over {
background:#fdd;
border-color:#fdd;
}
-table#content tr:hover td.under {
+table.content tr:hover td.under {
background:#dfd;
border-color:#dfd;
}
width:182px;
}
+input.small {
+ width:90px;
+ text-align:right;
+ margin-right:-6px;
+}
+
#form_rate, #form_rate2, #form_min, #form_max {
width: 89px;
}
}
-#content .checkbox {
+.content .checkbox {
display: block;
float:left;
margin:0px -15px 2px 0px;
</table>
</form>
-<div style="float:left"><table id="content"><tr><th>Channel<th>Value</table></div>
-<div style="float:left"><table id="contentregs"><tr><th>Register<th>Values</table></div>
+<div style="float:left"><table class="content" id="content"><tr><th>Channel<th>Value</table></div>
+<div style="float:left"><table class="content" id="contentstat"><tr><th>Register<th>Values</table></div>
+<div style="float:left"><table class="content" id="contentctrl"><tr><th>Register<th>Values</table></div>
<script language="javascript">
var showenable = document.getElementById("form_enable").checked;
var oldvalues = {};
-
-var reglist = "0-c100-c104-c105-c106-c107-c108-c109-c10a-c10b-c10c-c10d-c10f-c110-c111-c112-c800-c801-c802-c803-c804";
+var regstatus = "c100-19-0";
+var regctrl = "c800-5-0";
+//var reglist = "0-c100-c104-c105-c106-c107-c108-c109-c10a-c10b-c10c-c10d-c10f-c110-c111-c112-c800-c801-c802-c803-c804";
//var reglist = "0-80-83-84-85-86-87-88-89-8a-8b-8c-8d-8f-90-c0-c2-c3";
-var regs = reglist.split('-');
-var regnames = new Array("Temperature","debug_wr<br>debug_rd<br>channels<br>ref input",
+// var regs = reglist.split('-');
+var regstatusnames = new Array("debug_wr<br>debug_rd<br>channels<br>ref input","","","",
"valid trg","valid tmg trg","valid notmg","invalid trg","multi trg",
- "spurious trg","wrong rdo","spikes","idle time","wait time",
- "releases","rdo time","timeout number","data finished number","Logic Anal.<br>Debug Mode<br>Run Mode",
- "window en.<br>window bef.<br>window aft.","act chan 1","act chan 2","data limit");
+ "spurious trg","wrong rdo","spikes","idle time","wait time","",
+ "releases","rdo time","timeout number","data finished number");
+var regctrlnames = new Array("Logic Anal.<br>Debug Mode<br>Run Mode",
+ "window en.<br>window bef.<br>window aft.","act chan 1","act chan 2","data limit");
var updateTask;
-var updateRegsTask;
+var updateStatRegsTask;
+var updateCtrlRegsTask;
var enableGroup = new Array();
for(i=0;i<1000;i++) enableGroup[i] = new Array();
if(time2 != -1) {
if(!time2) time2 = updaterate2;
- clearTimeout(updateRegsTask);
- updateRegsTask = setTimeout("getdata('../commands/getmultreg.pl?"+board+"-"+reglist+"',updateregs)",time2);
+ clearTimeout(updateStatRegsTask);
+ clearTimeout(updateCtrlRegsTask);
+ updateStatRegsTask = setTimeout("getdata('../commands/get.pl?"+board+"-"+regstatus+"',updatestatregs)",time2);
+ updateCtrlRegsTask = setTimeout("getdata('../commands/get.pl?"+board+"-"+regctrl+"',updatectrlregs)",time2);
}
}
}
}
for(i = 1; i <= channels; i++) {
- o += "<tr class=\""+(i%2?"odd":"even")+"\"><th>"+(i-1+0xc000).toString(16)+"<th>"+(i-1);
+ o += "<tr><th>"+(i-1+0xc000).toString(16)+"<th>"+(i-1);
for(j=0;j<b.length-1;j++) {
if(isShown[j]) {
if(differences) {
getdata("../commands/putbit.pl?"+board+"-"+reg.toString(16)+"-"+op+"-"+value.toString(16),0);
settimers(200,50);
}
+
+function setDataLimit(e,board) {
+ reg = 0xc804;
+ value = e.value;
+ getdata("../commands/put.pl?"+board+"-"+reg.toString(16)+"-"+(value*1.).toString(16),0);
+ settimers(200,50);
+ }
-function updateregs(data) {
- if(!document.getElementById("contentregs").innerHTML) return;
+
+function updatestatregs(data) {
+ if(!document.getElementById("contentstat").innerHTML) return;
var b = data.split("&");
var c = {};
var isShown = new Array();
if(isShown[j])
o += "<th>"+c[j][0];
}
-
- for(i = 0; i < 21; i++) {
- o += "<tr class=\""+(i%2?"odd":"even")+"\"><th>"+regs[i]+"<td>"+regnames[i];
+
+ for(i = 0; i < 19; i++) {
+ if(regstatusnames[i]=="") continue;
+ o += "<tr><th>"+(0xc100+i).toString(16)+"<td>"+regstatusnames[i];
for(j=0;j<b.length-1;j++) {
val = c[j][i+1];
o += "<td>";
if(i==0) {
- o += ((val>>20)/16).toFixed(1);
- }
- else if(i==1) {
o += (val&0xF).toString(16)+"<br>"+((val&0xF0)>>4).toString(16)+"<br>"+((val&0xff00)>>8)+"<br>";
if((val>>16 & 1))
o += "<span class=\"over\" style=\"background:#faa;display:block;width:100%;float:right\">";
if((val>>16 & 1))
o += "</span>";
}
- else if(i==16) {
+
+ else {
+ o += val;
+ }
+ }
+ }
+ }
+ document.getElementById("contentstat").innerHTML = o;
+ settimers(-1,0);
+ delete isShown;
+ }
+
+
+function updatectrlregs(data) {
+ if(!document.getElementById("contentctrl").innerHTML) return;
+ var b = data.split("&");
+ var c = {};
+ var isShown = new Array();
+ o = "<tr class=\"head\"><th>Reg<th>Content";
+
+ for(j=0;j<b.length-1;j++) {
+ c[j] = b[j].split(" ");
+ if(filter == "" || filter.indexOf(c[j][0]) != -1)
+ isShown[j] = 1;
+ else
+ isShown[j] = 0;
+ if(isShown[j])
+ o += "<th>"+c[j][0];
+ }
+
+ for(i = 0; i < 5; i++) {
+ o += "<tr><th>"+(0xc800+i).toString(16)+"<td>"+regctrlnames[i];
+
+ for(j=0;j<b.length-1;j++) {
+ if(isShown[j]) {
+ val = c[j][i+1];
+ o += "<td>";
+ if(i==0) {
o += (val&0xF)+"<br>"+((val&0x10)>>4)+"<br>";
- if(val>>12 & 1)
- o += "<input title=\"Current run mode is triggerless. The epoch and coarse counters are never reset.\" class=\"triggerbutton\" type=\"button\" onClick=\"setRunMode(this,'"+c[j][0]+"',0)\" value=\"Triggerless\">";
- else
- o += "<input title=\"Current run mode is triggered. The epoch and coarse counters are reset after every trigger window.\" class=\"triggerbutton\" type=\"button\" onClick=\"setRunMode(this,'"+c[j][0]+"',1)\" value=\"Triggered\">";
- }
- else if(i==17) {
- o += "<input class=\"onoffbutton\" type=\"button\" onClick=\"setEnableWindow(this,'"+c[j][0]+"',1)\" value=\"on\">";
- o += "<input class=\"onoffbutton\" type=\"button\" onClick=\"setEnableWindow(this,'"+c[j][0]+"',0)\" value=\"off\">";
- if ((val&0x80000000))
- o += "Enabled";
- else
- o += "Disabled";
- o += "<br>"+(val&0x7FF)+"<br>"+((val&0x7ff0000)>>16);
+ if(val>>12 & 1)
+ o += "<input title=\"Current run mode is triggerless. The epoch and coarse counters are never reset.\" class=\"triggerbutton\" type=\"button\" onClick=\"setRunMode(this,'"+c[j][0]+"',0)\" value=\"Triggerless\">";
+ else
+ o += "<input title=\"Current run mode is triggered. The epoch and coarse counters are reset after every trigger window.\" class=\"triggerbutton\" type=\"button\" onClick=\"setRunMode(this,'"+c[j][0]+"',1)\" value=\"Triggered\">";
+ }
+ else if(i==1) {
+ o += "<input class=\"onoffbutton\" type=\"button\" onClick=\"setEnableWindow(this,'"+c[j][0]+"',1)\" value=\"on\">";
+ o += "<input class=\"onoffbutton\" type=\"button\" onClick=\"setEnableWindow(this,'"+c[j][0]+"',0)\" value=\"off\">";
+ if ((val&0x80000000))
+ o += "Enabled";
+ else
+ o += "Disabled";
+ o += "<br>"+(val&0x7FF)+"<br>"+((val&0x7ff0000)>>16);
}
- else if(i==18 || i==19) {
+ else if(i==2 || i==3) {
o += (val*1.).toString(16);
if(i==18) enableGroup[j][0] = val*1.;
if(i==19) enableGroup[j][1] = val*1.;
}
+ else if(i==4) {
+ o += "<input onChange=\"setDataLimit(this,'"+c[j][0]+"')\" type=\"text\" id=\"datalimit\" name=\"datalimit\" class=\"small\" maxlength=\"4\" value=\""+val+"\">";
+ }
else {
o += val;
}
}
}
}
- document.getElementById("contentregs").innerHTML = o;
+
+ document.getElementById("contentctrl").innerHTML = o;
settimers(-1,0);
delete isShown;
}
-
+
+
settimers(200,50);
</script>