my @o;
foreach my $b (@store) {
if ($b->{parent} == $parent) {
- push(@o,sprintf("%04x#%d#%d#%04x#%d#%s&",$b->{parent},$b->{port},$layer,$b->{addr},$b->{type},time2str('%Y-%m-%d %H:%M',$b->{ctime}))); $o[-1] .= printlist($b->{addr},$layer+1);
+ push(@o,sprintf("%04x#%d#%d#%04x#%d#%s&",$b->{parent},$b->{port},$layer,$b->{addr},$b->{type},time2str('%Y-%m-%d %H:%M',$b->{ctime})));
+ $o[-1] .= printlist($b->{addr},$layer+1);
}
}
return join("",sort @o);
}
-sprintf("%4s\t%s\t%8s",$a, time2str('%Y-%m-%d %H:%M',hex($t)),$t);
+#sprintf("%4s\t%s\t%8s",$a, time2str('%Y-%m-%d %H:%M',hex($t)),$t);
# parent port layer board type compiletime
<form acion="">
<table class="form"><tr class="head"><th colspan=2>Configuration
<tr><td>Board<td><input onChange="setValues()" type="text" id="form_board" name="board" maxlength="4" value="fe48">
+<tr><td>Filter<td><input onChange="setValues()" type="text" id="form_filter" name="filter" value="">
<tr><td># of Channels<td><input onChange="setValues()" type="text" id="form_channels" name="channels" maxlength="3" value="65">
<tr><td>Update Interval (ms)<td><input onChange="setValues()" type="text" id="form_rate" name="rate" maxlength="5" value="2000"><input onChange="setValues()" type="text" id="form_rate2" name="rate2" maxlength="5" value="5000">
<tr><td>Split Table<td><input onChange="setValues()" type="checkbox" id="form_split" name="split" value="2">
<script language="javascript">
var updaterate = document.getElementById("form_rate").value;
var updaterate2= document.getElementById("form_rate2").value;
+var filter = document.getElementById("form_filter").value;
var board = document.getElementById("form_board").value;
var channels = document.getElementById("form_channels").value;
var split = document.getElementById("form_split").checked?"-2":"";
if(!document.getElementById("content").innerHTML) return;
var b = data.split("&");
var c = {};
+ var isShown = new Array();
o = "<tr class=\"head\"><th>Reg<th>Channel";
for(j=0;j<b.length-1;j++) {
c[j] = b[j].split(" ");
if(!oldvalues[j]) oldvalues[j] = c[j];
- o += "<th>"+c[j][0];
+ if(filter == "" || filter.indexOf(c[j][0]) != -1)
+ isShown[j] = 1;
+ else
+ isShown[j] = 0;
+ if(isShown[j])
+ o += "<th>"+c[j][0];
}
if(showenable) {
o += "<tr><td><td>Channel group";
for(i = 1; i <= channels; i++) {
o += "<tr class=\""+(i%2?"odd":"even")+"\"><th>"+(i-1+0xc000).toString(16)+"<th>"+(i-1);
for(j=0;j<b.length-1;j++) {
- if(differences) {
- val = (c[j][i] & 0xFFFFFF)- ((oldvalues[j][i]||0) & 0xFFFFFF);
- if (val < 0) {
- val += 0x1000000;
+ if(isShown[j]) {
+ if(differences) {
+ val = (c[j][i] & 0xFFFFFF)- ((oldvalues[j][i]||0) & 0xFFFFFF);
+ if (val < 0) {
+ val += 0x1000000;
+ }
+ }
+ else {
+ val = c[j][i] & 0xFFFFFF;
+ }
+ if(showstatus)
+ o += "<td class=\""+((c[j][i] &0x80000000)?"over":"under")+"\">";
+ else
+ o += "<td>";
+ o += (val);
+ if(showenable && i!=1) {
+ checked = (enableGroup[j][Math.floor((i-2)/32)]&1<<(i-2)%32)?"checked":"";
+ o += "<input class=\"checkbox\" type=\"checkbox\" onClick=\"setEnable(this,'"+c[j][0]+"',"+(i-2)+")\" "+checked+">";
}
- }
- else {
- val = c[j][i] & 0xFFFFFF;
- }
- if(showstatus)
- o += "<td class=\""+((c[j][i] &0x80000000)?"over":"under")+"\">";
- else
- o += "<td>";
- o += (val);
- if(showenable && i!=1) {
-// if(i==2) alert(enableGroup[j][0]+enableGroup[j][1]);
- checked = (enableGroup[j][Math.floor((i-2)/32)]&1<<(i-2)%32)?"checked":"";
- o += "<input class=\"checkbox\" type=\"checkbox\" onClick=\"setEnable(this,'"+c[j][0]+"',"+(i-2)+")\" "+checked+">";
}
}
}
updaterate = document.getElementById("form_rate").value;
updaterate2= document.getElementById("form_rate2").value;
board = document.getElementById("form_board").value;
+ filter = document.getElementById("form_filter").value;
split = document.getElementById("form_split").checked?"-2":"";
differences= document.getElementById("form_diff").checked;
showstatus = document.getElementById("form_status").checked;
if(!document.getElementById("contentregs").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(" ");
- o += "<th>"+c[j][0];
+ 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 < 18; 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&0xFF).toString(16)+"<br>"+((val&0xff00)>>8)+"<br>";
- if((val>>16 & 1))
- o += "<span class=\"over\" style=\"background:#faa;display:block;width:100%;float:right\">";
- o += (val>>16 & 1);
- if((val>>16 & 1))
- o += "</span>";
- }
- else if(i==2) {
- o += (val&0x7FF)+"<br>"+((val&0x7ff0000)>>16);
- }
- else if(i==17 || i==16 || i==15) {
- o += (val*1).toString(16);
- if(i==16) enableGroup[j][0] = val*1.;
- if(i==17) enableGroup[j][1] = val*1.;
- }
- else {
- o += val;
+ if(isShown[j]) {
+ val = c[j][i+1];
+ o += "<td>";
+ if(i==0) {
+ o += ((val>>20)/16).toFixed(1);
+ }
+ else if(i==1) {
+ o += (val&0xFF).toString(16)+"<br>"+((val&0xff00)>>8)+"<br>";
+ if((val>>16 & 1))
+ o += "<span class=\"over\" style=\"background:#faa;display:block;width:100%;float:right\">";
+ o += (val>>16 & 1);
+ if((val>>16 & 1))
+ o += "</span>";
+ }
+ else if(i==2) {
+ o += (val&0x7FF)+"<br>"+((val&0x7ff0000)>>16);
+ }
+ else if(i==17 || i==16 || i==15) {
+ o += (val*1).toString(16);
+ if(i==16) enableGroup[j][0] = val*1.;
+ if(i==17) enableGroup[j][1] = val*1.;
+ }
+ else {
+ o += val;
+ }
}
}
}