#!/usr/bin/perl # Parseform Sub-Routine. # Usage: drop sub into CGI script. When you need to parse the form, # do a &parseform; . The data is stored in the %FORM hash. To access, # use the form $FORM{'field_name'} . # From http://www.cgi.tj/ sub parseform { if ($ENV{'REQUEST_METHOD'} eq 'GET') {@pairs = split(/&/, $ENV{'QUERY_STRING'});} elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); } else { print "Content-Type: text/html\n\n"; print "
";
print "Shutting down all applications...\n";
system("killall tcxServer") == 0
or print "Shutdown of tcxServer failed: $?";
system("killall laserServer");
sleep 2;
print "";
}
if ($FORM{'op_mode'} eq "Demo") {
print "";
print "Starting demo mode...\n";
# use Time::Local;
# ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
# print "timelocal finished...\n";
# Startup tcxServer, then wait 1 second
system("cd /home/bee; bin/tcxServer >'/home/httpd/html/logs/tcxServer.log' 2>&1 &") == 0
or print "tcxServer startup failed: $?";
sleep 1;
system("cd /home/bee; bin/baseServer >/home/httpd/html/logs/baseServer.log 2>&1 &") == 0
or print "baseServer startup failed: $?";
sleep 1;
system("cd /home/bee; bin/buttonServer >/home/httpd/html/logs/buttonServer.log 2>&1 &") == 0
or print "buttonServer startup failed: $?";
system("cd /home/bee; bin/pantiltServer >/home/httpd/html/logs/pantiltServer.log 2>&1 &") == 0
or print "pantiltServer startup failed: $?";
# This is really kudgy
system("export TCXHOST=zaza1; cd /home/bee; bin/laserServer >/dev/null 2>&1 &") == 0
or print "laserServer startup failed: $?";
sleep 8;
system("killall laserServer");
system("export TCXHOST=zaza1; cd /home/bee; bin/laserServer >/dev/null 2>&1 &") == 0
or print "laserServer startup failed: $?";
sleep 8;
system("killall laserServer");
system("export TCXHOST=zaza1; cd /home/bee; bin/laserServer >/home/httpd/html/logs/laserServer.log 2>&1 &") == 0
or print "laserServer startup failed: $?";
system("cd /home/bee-new; src/beeExamples/buttoncall >/home/httpd/html/logs/buttoncall.log 2>&1 &") == 0
or print "buttoncall startup failed: $?";
sleep 2;
# system("cd /home/brudy/bee; src/beeExamples/wander-laser -usePantilt=N -useLaser=N -exploreRange=800 >/dev/null 2>&1 &") == 0
# or print "wander-laser startup failed: $?";
}
print<
Zaza Control Interface
Zaza Control Interface
eof
system("ps -ax >/var/tmp/pslist");
open (PROCESSES, "/var/tmp/pslist");
$tcxServer_running = "red";
$baseServer_running = "red";
$buttonServer_running = "red";
$pantiltServer_running = "red";
$laserServer_running = "red";
$colliServer_running = "clear";
$wanderlaser_running = "clear";
$wander_running = "clear";
$wandercolli_running = "clear";
$buttoncall_running = "clear";
while () {
$_ =~ m/\d+:\d+.(.*)/;
if ($1 eq "bin/tcxServer ") {
$tcxServer_running = "green";
}
if ($1 eq "bin/baseServer ") {
$baseServer_running = "green";
}
if ($1 eq "bin/buttonServer ") {
$buttonServer_running = "green";
}
if ($1 eq "bin/pantiltServer ") {
$pantiltServer_running = "green";
}
if ($1 eq "bin/laserServer ") {
$laserServer_running = "green";
}
if ($1 eq "bin/colliServer ") {
$colliServer_running = "green";
}
if ($1 eq "src/beeExamples/buttoncall ") {
$buttoncall_running = "green";
}
if ($1 eq "src/beeExamples/wander ") {
$wander_running = "green";
}
if ($1 eq "src/beeExamples/wander-laser ") {
$wanderlaser_running = "green";
}
if ($1 eq "src/beeExamples/wander-colli ") {
$wandercolli_running = "green";
}
}
close PROCESSES;
# Check values returned from form, startup or shutdown servers and apps.
# Don't block while doing so, and return status when completed.
print "Servers Running
";
print "tcxServer ";
print "
";
print " baseServer ";
print "
";
print " buttonServer ";
print "
";
print " pantiltServer ";
print "
";
print " laserServer ";
print "
";
print " colliServer ";
print "
";
print "
";
print "
Applications Running
";
print "buttoncall ";
print "
";
print " wander ";
print "
";
print " wander-laser ";
print "
";
print " wander-colli ";
print "
";
print "
";
# print "The value of op_mode is:" . $FORM{'op_mode'} . "\n<\pre>\n";
print "