#!D:\perl\bin\perl -w #!/usr/local/bin/perl -w #http://127.0.0.1/cgi-bin/serservo.pl?num=1&pos=127 #zuerst in dos-box: mode com2: baud=9600 parity=n data=8 #IP ermitteln $IP=$ENV{REMOTE_ADDR}; $query=$ENV{'QUERY_STRING'}; if (length($query) == 0) { print "Content-type: text/html\n\n"; print "keine parameter gefunden"; exit; } &parse_data; if (length($Data{'num'}) == 0) { print "Content-type: text/html\n\n"; print "num parameter fehlt"; exit; } if (length($Data{'pos'}) == 0) { print "Content-type: text/html\n\n"; print "pos parameter fehlt"; exit; } ¶mcheck; #print "Content-type: text/html\n\n"; #print "
$par1
$par2\n"; print "Content-type: text/plain", "\n"; print "Status: 204 No Response", "\n\n"; &opencom; exit; #----------------------------------------------------------------- sub paramcheck { $par1 = $Data{'num'}; $par2 = $Data{'pos'}; if ($par1 >= 8) { print "Content-type: text/html\n\n"; print "dieses servo gibts nicht"; exit; } if ($par1 <= 0) { print "Content-type: text/html\n\n"; print "dieses servo gibts nicht"; exit; } if ($par2 >= 254) { $par2 = 254; }; if ($par2 <= 1) { $par2 = 6; }; } #----------------------------------------------------------------- sub opencom { open(USRFILE,">>com2:") || print "Could not open com port"; printf USRFILE "%c%c%c",255,$par1,$par2; close(USRFILE); } #----------------------------------------------------------------- # Daten aus dem Query-String parsen sub parse_data { # Splitten des Query_String in Datenpaare @pairs = split(/&/, $ENV{'QUERY_STRING'}); # Foreach Schleife foreach $pair (@pairs) { # Splitten der Paare in einzelne Variablen local($name,$value) = split(/=/, $pair); # Unerwünschte Zeichen ausfiltern $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Server-Side Includes ausfiltern $value =~ s///g; # Liste Data anlegen # Übergebene Daten können dann aus der Liste $Data durch # Angabe von $name ausgelesen werden, es wird $value ausgegeben # Bsp. $data{'action'} liefert den Wert von action= aus dem Query-String $Data{$name} = "$Data{$name}$value"; } # Ende Foreach Schleife } # Ende Daten aus dem Query_String parsen #-----------------------------------------------------------------