]> jspc29.x-matter.uni-frankfurt.de Git - daqtools.git/commitdiff
changed tdc GUI to mem read for better performance. Added control of data limit
authorJan Michel <j.michel@gsi.de>
Tue, 14 May 2013 09:26:22 +0000 (11:26 +0200)
committerJan Michel <j.michel@gsi.de>
Tue, 14 May 2013 09:26:22 +0000 (11:26 +0200)
web/htdocs/layout/styles.css
web/htdocs/tdc/tdc.htm

index 3e859d72c6250df8ae36a55faf8c4d2c9d1d9fcb..e738a0ec63ac5d83524401140d546b66e3e6eeed 100644 (file)
@@ -33,7 +33,7 @@ h3 {
 
 div.index {
   margin: 0 30px 0 15px;
-  background: #ffffff;
+  background: rgba(255,255,255,.5);
   overflow: hidden;
   padding: 5px;
 }
@@ -60,15 +60,14 @@ table.form td {
   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;
@@ -77,7 +76,7 @@ table#content td:first-child, table#content th:first-child{
 
 
 
-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;
@@ -86,7 +85,7 @@ table#content td, table#content th, table#contentregs td, table#contentregs th{
  padding-right:15px;
 }
 
-table#content, table#contentregs {
+table.content {
  border:1px solid #ccc; 
 }
 
@@ -117,12 +116,19 @@ div#bar2 div {
   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;
 }
 
@@ -130,12 +136,12 @@ div#bar2 div {
   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;
@@ -145,7 +151,7 @@ table#content td.over {
   background:#fcc;
 }
 
-table#content td.under {
+table.content td.under {
   width:50px;
   margin:0 10px;
   padding-right:10px;
@@ -156,12 +162,12 @@ table#content td.under {
 }
 
 
-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;
 }
@@ -170,6 +176,12 @@ input {
   width:182px;
 }
 
+input.small {
+  width:90px;
+  text-align:right;
+  margin-right:-6px;
+}
+
 #form_rate, #form_rate2, #form_min, #form_max {
 width: 89px;
 }
@@ -180,7 +192,7 @@ width: 89px;
 }
 
 
-#content .checkbox {
+.content .checkbox {
   display: block;
   float:left;
   margin:0px -15px 2px 0px;
index 1034db18172bc5b755a3ca9b8e681bb9862373cd..682f1d3b07873ced166e23573a63ec0a243700d1 100644 (file)
@@ -33,8 +33,9 @@
 </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">
@@ -49,19 +50,22 @@ var showstatus = document.getElementById("form_status").checked;
 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();
 
@@ -75,8 +79,10 @@ function settimers(time1,time2) {
     
   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);
     }
   }
 
@@ -118,7 +124,7 @@ function update(data) {
       }
     }
   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) {
@@ -192,9 +198,17 @@ function setEnableWindow(e,board,val) {
    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();
@@ -209,9 +223,10 @@ function updateregs(data) {
     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++) {
@@ -219,9 +234,6 @@ function updateregs(data) {
         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\">";
@@ -229,39 +241,81 @@ function updateregs(data) {
           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>