</div>
</div>
-
- <div class="expandable expanded" id="cts-expander">
- <div class="header"><span class="indicator"></span> CTS Details</div>
-
+ <div class="expandable expanded" id="readout-expander">
+ <div class="header"><span class="indicator"></span> Readout</div>
+
<div class="content">
<div class="left">
<table class="">
<td> </td>
<td class="value"><input type="checkbox" class="autoupdate autocommit" slice="cts_readout_config.timestamp" /> Timestamp</td>
</tr>
+ </table>
+ </div>
- <tr class="eventbuilder_rr alt"><td colspan="2"> </td><tr>
-<!--
+ <div class="right">
+ <table class="">
<tr class="eventbuilder_rr">
- <td>Active Event Builder</td>
- <td class="value">
+ <td>Active Event Builder
+ <div id="rr_warning" slice="cts_eventbuilder.rr_interval" class="autoupdate"
+ format="var f=function(x, y, e) {e.setStyle('display', parseInt(x) ? 'none' : 'block'); return e.get('html')}; f">
+ Disabled as <emph>Round-Robin<br />Bin Size</emph> is set to <pre>0</pre>
+ </div>
+ </td>
+ <td class="value" style="padding-bottom: 5px">
<pre>15</pre> <input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[15]">
<input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[14]">
<input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[13]">
<input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[3]">
<input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[2]">
<input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[1]">
- <input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[0]"> <pre>0</pre>
+ <input type="checkbox" class="autoupdate autocommit" slice="cts_eventbuilder.mask[0]"> <pre>0</pre> <br />
+
</td>
</tr>
<tr class="alt eventbuilder_rr">
<td>Round-Robin Bin Size</td>
<td class="value">
- <input class="text autoupdate autocommit" slice="cts_eventbuilder.rr_interval" /> events
+ <input class="text autoupdate autocommit" slice="cts_eventbuilder.rr_interval"
+ inputhint="Enter the number of consequtive events (<pre>0</pre> to <pre>255</pre>) that should be send to<br /> the same EB. The default value (<pre>0</pre>) disables the Round Robin distribution <br />and sends all data (with a possible exception of type 0xe triggers) to EB0."
+ /> events
</td>
</tr>
<input id="eb_rr" class="text autoupdate autocommit" slice="cts_eventbuilder.cal_eb" />
</td>
</tr>
--->
</table>
</div>
-
- <div class="right">
+ </div>
+ </div>
+
+ <div class="expandable expanded" id="cts-expander">
+ <div class="header"><span class="indicator"></span> CTS Details</div>
+ <div class="content">
+ <div class="left">
<table>
<tr>
<td class="label">DAQOP SERVER</td>
<td class="value" id="trb_compiletime">n/a</td>
</tr>
- <tr><td colspan="2"> </td><tr>
+ <tr class="alt">
+ <td class="label">TD FSM Limit (debug only):</td>
+ <td class="value">
+ <input class="autocommit autoupdate text" slice="cts_fsm_limits.td"
+ format="var f=function(x){return parseInt(x)==0xffff ? 'disabled' : (parseInt(x) ? x + ' events' : 'active')}; f"
+ interpret="var f=function(x){return (x.trim() == '' || x.match(/disabled|off/)) ? 0xffff : (isNaN(parseInt(x))?0:parseInt(x))}; f" />
+ </td>
+ </tr>
+ <tr>
+ <td class="label">RO FSM Limit (debug only):</td>
+ <td class="value">
+ <input class="autocommit autoupdate text" slice="cts_fsm_limits.ro"
+ format="var f=function(x){return parseInt(x)==0xffff ? 'disabled' : (parseInt(x) ? x + ' events' : 'active')}; f"
+ interpret="var f=function(x){return (x.trim() == '' || x.match(/disabled|off/)) ? 0xffff : (isNaN(parseInt(x))?0:parseInt(x))}; f" />
+ </td>
+ </tr>
+ </table>
+ </div>
+ <div class="right">
+ <table>
<tr>
<td class="label">TD FSM State</td>
<td class="value autoupdate" slice="cts_td_fsm_state.state">n/a</td>
<td class="label">Buffered Trigger (15:0)</td>
<td class="value autoupdate" slice="cts_buf_trg_state" format="var x=function(x,data){return '<pre>'+ data.f.mask + '</pre>, Type: '+data.f.type}; x">n/a</td>
</tr>
-
- <tr><td colspan="2"> </td><tr>
-
- <tr class="alt">
- <td class="label">TD FSM Limit (debug only):</td>
- <td class="value">
- <input class="autocommit autoupdate text" slice="cts_fsm_limits.td"
- format="var f=function(x){return parseInt(x)==0xffff ? 'disabled' : (parseInt(x) ? x + ' events' : 'active')}; f"
- interpret="var f=function(x){return (x.trim() == '' || x.match(/disabled|off/)) ? 0xffff : (isNaN(parseInt(x))?0:parseInt(x))}; f" />
- </td>
- </tr>
-
- <tr>
- <td class="label">RO FSM Limit (debug only):</td>
- <td class="value">
- <input class="autocommit autoupdate text" slice="cts_fsm_limits.ro"
- format="var f=function(x){return parseInt(x)==0xffff ? 'disabled' : (parseInt(x) ? x + ' events' : 'active')}; f"
- interpret="var f=function(x){return (x.trim() == '' || x.match(/disabled|off/)) ? 0xffff : (isNaN(parseInt(x))?0:parseInt(x))}; f" />
- </td>
- </tr>
</table>
</div>
</div>
writeRegisters: function(values) {
var arrValues = [];
Object.each(values, function(v,r) {arrValues.push(r); arrValues.push(v)});
- console.debug(values, arrValues);
(new Request.JSON({
url: 'cts.pl?write,' + arrValues.join(','),
onSuccess: function(json, text) {
+ console.log(json)
+ console.log(text)
+
if (!json) {
var m = text.match(/<pre>(.*)<\/pre>/i);
+
+ console.log(m)
+
if (m) alert("Server send error response:\n"+m[1]);
else alert("An unknown error occured while writing register");
}
// hard-reset. if request's timeout fails, this is the last resort ...
var manualTimeout = (function(e) {
- if (console)
- console.log(e.stack);
- window.location.reload.delay(10000);
+ window.location.reload();
}).delay(10000, this, new Error());
new Request.JSON({
});
function xhrFailure(xhr){
- console.log(xhr.responseText);
+ console.log(xhr);
var m = xhr.responseText.match(/<pre>([\s\S]*)<\/pre>/im);
- if (m) alert("Server send error response:\n"+m[1].trim());
+
+
+ if (m) {
+ text = m[1];
+ m = text.match(/^\s*-+ More[\w\s]+ -+\s+(.+)$/im)
+ if (m) text = m[1];
+
+ alert("Server send error response:\n"+text.trim());
+ }
+
+
+
else alert("An unknown error while contacting the sever. Did you open this file locally? Did the connection or server crash?");
}