open(LESEN,$file)
or die "Fehler beim oeffnen von : $!\n";
-
+my $j = 0;
while(defined(my $i = <LESEN>)) {
-
+ $j++;
if( $i =~ /^PWRSPLY:([^:]+):([^:]+):([^:]+):([^:]+):([^:]+)/g ) {
my @arr = split(':',$i);
shift @arr;
if($type eq "PSP") {
print <<EOF;
-<p>
-<iframe name="inlineframe" src="pwr_psp.htm?device=$ser_dev&id=$dev_id&speed=$speed&type=$type" frameborder="0" scrolling="auto" width="800" height="340" style="float:left" ></iframe>
-</p>
+<h3 onClick="Enable($j)" id="$j">Power Supply <b>$dev_id</b> [connected to <b>$ser_dev</b>]</h3>
+<iframe id="iframe$j" name="inlineframe" data-src="pwr_psp.htm?device=$ser_dev&id=$dev_id&speed=$speed&type=$type" frameborder="0" scrolling="auto" width="800" data-height="350" height="0"></iframe>
+
EOF
}
if($type =~ /HMP/ or $type =~ /HMC/ or $type =~ /PST/) {
print <<EOF;
-<p>
-<iframe name="inlineframe" src="pwr_hmp.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels&speed=$speed&names=$names" frameborder="0" scrolling="auto" width="800" height="340" style="float:left" ></iframe>
-</p>
+<h3 onClick="Enable($j)" id="$j">Power Supply <b>$dev_id</b> [connected to <b>$ser_dev</b>]</h3>
+<iframe id="iframe$j" name="inlineframe" data-src="pwr_hmp.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels&speed=$speed&names=$names" frameborder="0" scrolling="auto" width="800" data-height="340" height="0"></iframe>
+
EOF
}
if($type =~ /PWRSW/) {
print <<EOF;
-<p>
-<iframe name="inlineframe" src="pwr_switch.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels&speed=$speed&names=$names" frameborder="0" scrolling="auto" width="800" height="340" style="float:left" ></iframe>
-</p>
+<h3 onClick="Enable($j)" id="$j">Power Supply <b>$dev_id</b> [connected to <b>$ser_dev</b>]</h3>
+<iframe id="iframe$j" name="inlineframe" data-src="pwr_switch.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels&speed=$speed&names=$names" frameborder="0" scrolling="auto" width="800" data-height="340" height="0"></iframe>
+
EOF
}
getdata('build_index.pl',update);
</script>
+<h3>Configuration File</h3>
<p id="conf_area" style="clear:both">
Note that you need to have libdevice-serialport-perl or perl-Device-SerialPort<br>
installed and that the /dev/ttyUSBn need to be accessible by normal users.<br>
//PWRSPLY:/dev/ttyUSB0:9600:PST3202:PST:3
//PWRSPLY:/dev/ttyUSB0:115200:HMP4030:HMP:3
//PWRSPLY:IP192.168.0.56:5050:HMP4040:HMP:4
-PWRSPLY:/dev/FTDI_FT232R_USB_UART_AH02HFZW:2400:PSP2010:PSP:1
//PWRSPLY:/dev/FTDI_FT232R_USB_UART_A702HE33:2400:PSP405:PSP:1
//PWRSPLY:IP192.168.0.56:5050:HMP4040 DiRich:HMP:4:LP1:LP2:LP3:DCDC
-PWRSPLY:/dev/FTDI_Xmatter_TTL_ALR1AJS:57600:Desk:PWRSW:6:TestAdrian:Pulser:::TrgDistr:ADC
//PWRSPLY:SERpi@192.168.0.230/dev/FTDI_FT232R_USB_UART_AH02HFZW:2400:PSP2010:PSP:1
//PWRSPLY:SERpi@192.168.0.230/dev/TRB3_Power48_00002:0:Rack48:PWRSW:4:Crate:::
-//PWRSPLY:/dev/HAMEG_HO732_VCP023842636:0:HMP4040:HMP:4
-//PWRSPLY:IP192.168.0.56:5050:HMP4040 DiRich:HMP:4:LP1:LP2:LP3:DCDC
//PWRSPLY:/dev/TRB3_Power48_00002:0:Rack48:PWRSW:4:Desk:::
+
+PWRSPLY:/dev/FTDI_FT232R_USB_UART_AH02HFZW:2400:PSP2010:PSP:1
+PWRSPLY:/dev/FTDI_Xmatter_TTL_ALR1AJS:57600:Desk:PWRSW:6:TestAdrian:Pulser:::TrgDistr:ADC
+PWRSPLY:/dev/HAMEG_HO732_VCP023842636:0:HMP4040:HMP:4
+PWRSPLY:IP192.168.0.56:5050:HMP4040 DiRich:HMP:4:LP1:LP2:LP3:DCDC
+PWRSPLY:IP192.168.0.139:5025:HMC8043:HMC:3:::
my $port = IO::Socket::INET->new(PeerAddr => $ser_dev, PeerPort => $ser_speed, Proto => "tcp", Type => SOCK_STREAM, Timeout => 1)
or (print("Device not found") && return);
-
while ( my $command = shift(@new_command) ) {
$command = uri_unescape($command);
my $x = getValue($port,$command,$cnt++);
my $x = "";
if ($ser_type eq 'PSP') {$command .= "\r";} else {$command .= "\n";}
print $fh "$command";
+# print $command;
if($ser_type eq 'PWRSW' || $forceread || $command =~ /\?/) {
for my $i (0..500) {
$x .= <$fh>;
usleep(1000);
}
}
+ else {
+ usleep(1000);
+ }
return $x;
}
sub getValue {
my ($fh,$cmd,$cnt,$forceread) = @_;
- if (defined $db->{$cmd.$cnt}{tim} && $db->{$cmd.$cnt}{tim} > time()-2) {
+ if (0 && defined $db->{$cmd.$cnt}{tim} && $db->{$cmd.$cnt}{tim} > time()-2) {
return $db->{$cmd.$cnt}{val};
}
else {
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-<link href="../styles.css" rel="stylesheet" type="text/css"/>
-<script src="../scripts.js" type="text/javascript"></script>
+<link href="styles.css" rel="stylesheet" type="text/css"/>
+<script src="scripts.js" type="text/javascript"></script>
<title>Power Supply Monitor and Access</title>
</head>
<body style="font-family: sans-serif;" >
-<h3 id="headline">Power Supply Access</h3>
+<!-- <h3 id="headline">Power Supply Access</h3> -->
}
updateTask = setTimeout("update()",updaterate);
-document.getElementById("headline").innerHTML = "Power Supply "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
+//document.getElementById("headline").innerHTML = "Power Supply "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
for(i=1;i<=channels;i++) {
if(typeof Vnames[i-1] !== 'undefined')
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-<link href="../styles.css" rel="stylesheet" type="text/css"/>
-<script src="../scripts.js" type="text/javascript"></script>
+<link href="styles.css" rel="stylesheet" type="text/css"/>
+<script src="scripts.js" type="text/javascript"></script>
<title>Power Supply Monitor and Access</title>
</head>
<body style="font-family: sans-serif;" >
-<p style="bold" id="headline">Power Supply Access</p>
+<!-- <p style="bold" id="headline">Power Supply Access</p> -->
<table align=center id="layout" style="
updateTask = setInterval("communication()",updaterate);
-document.getElementById("headline").innerHTML = "Power Supply "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
+//document.getElementById("headline").innerHTML = "Power Supply "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
</script>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-<link href="../styles.css" rel="stylesheet" type="text/css"/>
-<script src="../scripts.js" type="text/javascript"></script>
+<link href="styles.css" rel="stylesheet" type="text/css"/>
+<script src="scripts.js" type="text/javascript"></script>
<title>Power Supply Monitor and Access</title>
</head>
<body style="font-family: sans-serif;" class="powerswitch">
-<h3 id="headline"></h3>
+<!-- <h3 id="headline"></h3> -->
}
updateTask = setTimeout("communication()",updaterate);
-document.getElementById("headline").innerHTML = "Power Switch "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
+//document.getElementById("headline").innerHTML = "Power Switch "+'<b>'+dev_id+'</b>'+" [connected to "+'<b>'+ser_dev+'</b>'+"]" ;
maketable();
</script>
xmlhttp.open("GET",command,true);
xmlhttp.send(null);
}
+
+
+function Enable(ob) {
+ frob = "iframe"+ob;
+ var frame = document.getElementById(frob);
+ var h = document.getElementById(ob);
+
+ if(frame.getAttribute("height") == 0) {
+ frame.setAttribute("height", frame.getAttribute("data-height"));
+ frame.setAttribute("src",frame.getAttribute("data-src"));
+ h.style.color = "black";
+ }
+ else {
+ frame.setAttribute("height", "0");
+ frame.setAttribute("src","");
+ h.style.color = "darkblue";
+ }
+ }
// function reload() {
// xmlhttp=new XMLHttpRequest();
// xmlhttp.open("GET","get.cgi?$.$ENV{'QUERY_STRING'}.qq$",true);
// xmlhttp.send(null);
// document.getElementById("stop").style.background="#111";
-// }
\ No newline at end of file
+// }
.powerswitch td {
border-left:1px solid black;
text-align:center;
-}
\ No newline at end of file
+}
+
+h3 {
+ cursor : pointer;
+ margin-bottom:5px;
+ padding-bottom:5px;
+ font-weight:normal;
+ color:darkblue;
+}