while(defined(my $i = <LESEN>)) {
- if( $i =~ /^PWRSPLY:([^:]+):([^:]+):([^:]+):([^:]+)/g ) {
+ if( $i =~ /^PWRSPLY:([^:]+):([^:]+):([^:]+):([^:]+):([^:]+)/g ) {
my $ser_dev=$1;
- my $dev_id=$2;
- my $type=$3;
- my $channels=$4;
+ my $speed=$2;
+ my $dev_id=$3;
+ my $type=$4;
+ my $channels=$5;
if($type eq "PSP") {
print <<EOF;
<p>
-<iframe name="inlineframe" src="pwr.htm?device=$ser_dev&id=$dev_id" frameborder="0" scrolling="auto" width="800" height="340" ></iframe>
+<iframe name="inlineframe" src="pwr.htm?device=$ser_dev&id=$dev_id&speed=$speed" frameborder="0" scrolling="auto" width="800" height="340" ></iframe>
</p>
EOF
}
if($type =~ /HMP/) {
print <<EOF;
<p>
-<iframe name="inlineframe" src="pwr_hmp.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels" frameborder="0" scrolling="auto" width="1000" height="400" ></iframe>
+<iframe name="inlineframe" src="pwr_hmp.htm?device=$ser_dev&id=$dev_id&type=$type&channels=$channels&speed=$speed" frameborder="0" scrolling="auto" width="800" height="340" ></iframe>
</p>
EOF
}
my $ser_type = shift(@new_command);
$ser_type = "PSP" unless defined $ser_type;
+my $ser_speed = shift(@new_command);
+$ser_speed = "2400" unless defined $ser_speed;
+
+
my $port = new Device::SerialPort($ser_dev);
unless ($port)
{
}
$port->user_msg('ON');
-$port->baudrate(2400) if $ser_type eq "PSP";
-$port->baudrate(115200) if $ser_type eq "HMP";
+$port->baudrate($ser_speed);
$port->parity("none");
$port->databits(8);
$port->stopbits(1);
$port->write("$command\r\n");
# print "i sent the command: $command\n";
#print "\n\nokay.\n";
- usleep 1E5;
+ usleep 5E4;
while(my $a = $port->lookfor) {
print $a."&"; # debug output
}
<form acion="">
<table id="settings" class="smallboxes">
-<tr><th><th colspan=2>Chan 1<th colspan=2>Chan 2<th colspan=2>Chan 3<th colspan=2>Chan 4
+<tr><th><th colspan=2 id="chan1">Chan 1<th colspan=2 id="chan2">Chan 2<th colspan=2 id="chan3">Chan 3<th colspan=2 id="chan4">Chan 4
<tr class="sep"><td align="right">Voltage [V]
<td><input type="text" id="form_v1" name="voltage" value=""><td><input type="button" onClick="set_v(1)" value="set">
<td><input type="text" id="form_v2" name="voltage" value=""><td><input type="button" onClick="set_v(2)" value="set">
var dev_id = getParameterByName("id");
var type = getParameterByName("type");
var channels = getParameterByName("channels");
+var speed = getParameterByName("speed");
+if (channels<2) {
+ document.getElementById("chan2").style.color = "#eee";
+ }
+if (channels<3) {
+ document.getElementById("chan3").style.color = "#eee";
+ }
+if (channels<4) {
+ document.getElementById("chan4").style.color = "#eee";
+ }
function set_v(chan) {
+ if (chan > channels) return;
var value = parseFloat(document.getElementById("form_v"+chan).value);
var command;
if(type=="HMP") command = "INST OUT"+chan+"&VOLT "+value.toFixed(3);
}
function set_v_lim(chan) {
+ if (chan > channels) return;
var value = parseInt(document.getElementById("form_v_lim"+chan).value);
var command;
if(type=="HMP") command = "INST OUT"+chan+"&VOLT:PROT "+value.toFixed(3);
}
function set_c_lim(chan) {
+ if (chan > channels) return;
var value = parseFloat(document.getElementById("form_c_lim"+chan).value);
var command;
if(type=="HMP") command = "INST OUT"+chan+"&CURR "+value.toFixed(3);
}
function turn_on(chan) {
+ if (chan > channels) return;
if(type=="HMP") new_commands.push("INST OUT"+chan+"&OUTP ON");
}
function turn_off(chan) {
+ if (chan > channels) return;
if(type=="HMP") new_commands.push("INST OUT"+chan+"&OUTP OFF");
}
function updatereads(data) {
- if(document.getElementById("readings"))
- document.getElementById("readings").innerHTML=data;
var e = data.split("&");
for(i=0;i<channels;i++) {
document.getElementById("vol"+(i+1)).value=e[i*2];
cmds = new_commands.join('&');
if (cmds != "") {
clearInterval(updateTask);
- getdata('pwr.pl?'+ser_dev+'&'+type+'&'+cmds,update);
+ getdata('pwr.pl?'+ser_dev+'&'+type+"&"+speed+'&'+cmds,update);
}
else if(document.getElementById("showreadings").checked) {
clearInterval(updateTask);
cmds = "";
for(i=1;i<=channels;i++)
cmds +="&INST OUT"+i+"&MEAS:VOLT%3F&MEAS:CURR%3F";
- getdata('pwr.pl?'+ser_dev+'&'+type+cmds,updatereads);
+ getdata('pwr.pl?'+ser_dev+'&'+type+"&"+speed+cmds,updatereads);
}
new_commands = new Array();
}