robotrack.php3 3.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<?php
#
# EMULAB-COPYRIGHT
# Copyright (c) 2000-2005 University of Utah and the Flux Group.
# All rights reserved.
#
chdir("..");
include("defs.php3");

$uid = GETLOGIN();
LOGGEDINORDIE($uid);

PAGEHEADER("Real Time Robot Tracking Applet");

#
# One robot map right now ...
# 
$building = "MEB-ROBOTS";
$floor    = 4;
Leigh B. Stoller's avatar
Leigh B. Stoller committed
20 21 22 23 24 25 26 27 28 29 30 31
$ppm      = 1;

#
# Grab pixel_per_meters for above map.
#
$query_result =
    DBQueryFatal("select pixels_per_meter from floorimages ".
		 "where building='$building' and floor='$floor'");
if (mysql_num_rows($query_result)) {
    $row = mysql_fetch_array($query_result);
    $ppm = $row["pixels_per_meter"];
}
32

Leigh B. Stoller's avatar
Tweaks.  
Leigh B. Stoller committed
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#
# Draw the legend and some explanatory text.
#
echo "<table cellspacing=5 cellpadding=5 border=0 class=\"stealth\">
      <tr>
       <td align=\"left\" valign=\"top\" class=\"stealth\">
         <table>
           <tr><th colspan=2>Legend</th></tr>
           <tr>
             <td><img src=\"../floormap/map_legend_node.gif\"></td>
             <td nowrap=1>Robot Actual Position</td>
           </tr>
           <tr>
             <td><img src=\"../floormap/map_legend_node_dst.gif\"></td>
             <td nowrap=1>Robot Destination Position</td>
           </tr>
         </table>
       </td>
       <td class=stealth>This applet allows you to view the robots
52 53
                         as they move around, as well as move the robots
                         with drag and drop. The table at the bottom
Leigh B. Stoller's avatar
Tweaks.  
Leigh B. Stoller committed
54
                         shows the current position (x, y, orientation),
Leigh B. Stoller's avatar
Leigh B. Stoller committed
55
                         the destination position,
Leigh B. Stoller's avatar
Tweaks.  
Leigh B. Stoller committed
56
                         and the battery level (percentage and voltage).
Leigh B. Stoller's avatar
Leigh B. Stoller committed
57
                         The shaded areas (blue border) are <em>exclusion</em>
Leigh B. Stoller's avatar
Leigh B. Stoller committed
58
                         zones where robots are not allowed to go. You can
59 60 61
                         <b>right click</b> on a robot to bring up its
                         info page. See below for instructions on how to
                         use the <b>drag and drop</b> features.
Leigh B. Stoller's avatar
Tweaks.  
Leigh B. Stoller committed
62 63 64 65
        </td>
      </tr>
      </table><hr>\n";

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
#
# Create a tempfile to use as a unique prefix; it is not actually used but
# serves the same purpose (The script uses ${prefix}.jpg and ${prefix}.map .)
# 
$prefix = tempnam("/tmp", "floormap");

#
# Get the unique part to send back.
#
if (!preg_match("/^\/tmp\/([-\w]+)$/", $prefix, $matches)) {
    TBERROR("Bad tempnam: $prefix", 1);
}
$uniqueid = $matches[1];

$perl_args = "-o $prefix -t -z -n -x -y -f $floor $building";

$retval = SUEXEC($uid, "nobody", "webfloormap $perl_args",
		 SUEXEC_ACTION_IGNORE);

if ($retval) {
    SUEXECERROR(SUEXEC_ACTION_USERERROR);
    # Never returns.
    die("");
}

$auth    = $HTTP_COOKIE_VARS[$TBAUTHCOOKIE];
$pipeurl = "robopipe.php3?foo=bar";
$baseurl = "../floormap_aux.php3?prefix=$uniqueid";

# Temp for debugging.
Leigh B. Stoller's avatar
Leigh B. Stoller committed
96 97
if (isset($fake))
     $pipeurl .= "&fake=yes";
98 99 100 101 102 103 104 105 106
     
echo "<applet code='RoboTrack.class'
              archive='tracker.jar'
              width='900' height='600'
              alt='You need java to run this applet'>
            <param name='pipeurl' value='$pipeurl'>
            <param name='baseurl' value='$baseurl'>
            <param name='uid' value='$uid'>
            <param name='auth' value='$auth'>
Leigh B. Stoller's avatar
Leigh B. Stoller committed
107
            <param name='ppm' value='$ppm'>
108 109
          </applet>\n";

110 111 112 113 114 115 116 117 118 119 120 121 122 123
<br>
<center>
<h3>Using the Robot Tracker Applet</h3>
<ul>
<li> Right Click over a robot or mote will pop up a browser window showing
     information about the robot/mote.
<li> Left click and drag over a (stationary) robot allows you to setup a
     move to a new position. Remember to edit the orientation in the table,
     if needed. Cancel by moving back to its original position. 
<li> Left click over the background image brings up a menu to submit your 
     moves (start the robots on their way), or cancel the moves.
<li> Only one move per robot at a time. 
</ul>

124 125
PAGEFOOTER();
?>