apps/dvr/php/camera.php

Go to the documentation of this file.
00001 <?php
00002     
00003 #    header ('Content-type: text/plain');
00004     header ('Content-type: text/xml');
00005 
00006     include "tag.php";
00007     include "def.php";
00008     include "db.php";
00009     include "check.php";
00010     
00011     define ("DELETE",   1);    
00012     define ("UNDELETE", 0);
00013     
00014 
00015     function addCam ($mac, $id, $ip1, $ip2, $place)
00016     {
00017         $mac_orig = $mac;
00018         
00019         if ( (checkMac ($mac) == -1) || (! $mac))
00020         {
00021             return error ("Error: Wrong MAC='" . $mac . "' ", "cameras");
00022         }
00023         
00024         $mac = checkMac ($mac);
00025         
00026         $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' " ;
00027         
00028         $query_resp     = @mysql_query ($query, $id);
00029         $num            = @mysql_numrows ($query_resp);
00030 
00031         if ($num > 0)
00032         {
00033             $err = '';
00034             if (mysql_result ($query_resp, $i, "del") == 1)  $err = ' and marked as deleted';
00035             return error ("Error: Camera with MAC='" . $mac_orig ."' already registered" . $err . "!", "cameras");
00036         }
00037         
00038         $query          = "INSERT INTO cameras VALUES ('" . $mac . "', '" . $ip1 . "', '" . $ip2 . "', '" . $place . "', '0')";
00039         $query_resp     = @mysql_query ($query, $id);
00040         
00041         $ret            = formClosedTag ("OK", "add", "") . "\n";
00042         $ret            = formClosedTag ($ret, "cameras", "\n") . "\n";
00043         
00044         return $ret;
00045     
00046     }
00047 
00048     function editCam ($mac, $id, $ip1, $ip2, $place)
00049     {
00050         $mac_orig = $mac;
00051         
00052 
00053         if ( (checkMac ($mac) == -1) || (! $mac))
00054         {
00055             return error ("Error: Wrong MAC='" . $mac . "' ", "cameras");
00056         }
00057         
00058         $mac = checkMac ($mac);
00059         
00060         $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0" ;
00061         
00062         $query_resp     = @mysql_query ($query, $id);
00063         $num            = @mysql_numrows ($query_resp);
00064 
00065         if ($num < 1)
00066         {
00067             return error ("Error: Camera with MAC='" . $mac_orig ."' is not found!", "cameras");
00068         }
00069         
00070         $flag           = 0;    
00071         $query          = "UPDATE cameras SET ";
00072         if ($ip1)
00073         {
00074             $flag        = 1;
00075             $query      .= "ip1='" . $ip1 . "' ";
00076         }
00077         if ($ip2)
00078         {
00079             if ($flag == 1) 
00080             {
00081                 $query  .= ", ";
00082             }
00083             $flag        = 1;
00084             $query      .= "ip2='" . $ip2 . "' ";
00085         }
00086         if ($place)
00087         {
00088             if ($flag == 1) 
00089             {
00090                 $query  .= ", ";
00091             }
00092             $flag        = 1;
00093             $query      .= "place='" . $place . "' ";
00094         }
00095         
00096         $query          .= "   WHERE mac='" . $mac . "' AND del=0";
00097         
00098         if ($flag == 1)
00099         {
00100             $query_resp         = @mysql_query ($query, $id);
00101         }
00102         
00103         $ret            = formClosedTag ("OK", "edit", "") . "\n";
00104         $ret            = formClosedTag ($ret, "cameras", "\n") . "\n";
00105         
00106         return $ret;
00107     }
00108 
00109 
00110     function delUndelCam ($mac, $id, $action)
00111     {
00112         $mac_orig = $mac;
00113         
00114         if (($mac = checkMac ($mac)) == -1)
00115         {
00116             return error ("Error: Wrong MAC=" . $mac, "cameras");
00117         }
00118         
00119         if (($action != DELETE) && ($action != UNDELETE))
00120         {
00121             return error ("Error: Wrong action=" . $action, "cameras");
00122         }
00123         
00124         $action_rev = $action == UNDELETE ? DELETE : UNDELETE;
00125         $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=" . $action_rev;
00126         
00127         $query_resp     = @mysql_query ($query, $id);
00128         $num            = @mysql_numrows ($query_resp);
00129 
00130         if ($num < 1)
00131         {
00132             $err = 'C';
00133             if ($action == UNDELETE) $err = 'Deleted c';
00134             return error ("Error: " . $err . "amera with MAC='$mac_orig' is not found", "cameras");
00135         }
00136         
00137         $query = "UPDATE cameras SET del=" . $action . "  WHERE mac='" . $mac . "' AND del=" . $action_rev;     
00138         $query_resp     = @mysql_query ($query, $id);
00139         
00140         $ret = formClosedTag ("OK", "undel", "") . "\n";
00141         if ($action == DELETE)
00142         {
00143             $ret = formClosedTag ("OK", "del", "") . "\n";
00144         }
00145         
00146         $ret = formClosedTag ($ret, "cameras", "\n");
00147         
00148         return $ret;
00149     }
00150 
00151 
00152     
00153     function listCams ($mac, $id)
00154     {
00155         $mac_orig = $mac;
00156         
00157         if ($mac)
00158         {       
00159             if (($mac = checkMac ($mac)) == -1)
00160             {
00161                 return error ("Error: Wrong MAC=" . $mac, "cameras");
00162             }
00163         }
00164         
00165         $mac_enabled = 0;
00166         if ($mac)
00167         {
00168             $query = "SELECT * FROM cameras WHERE mac='" . $mac . "' AND del=0";
00169             $mac_enabled = 1;
00170         }
00171         else
00172         {
00173             $query = "SELECT * FROM cameras WHERE del=0";
00174         }
00175         
00176         $query_resp     = mysql_query ($query, $id);
00177         $num            = mysql_numrows ($query_resp);
00178         
00179         if ($num < 1)
00180         {
00181             if ( $mac_enabled == 1)
00182             {
00183                 return error ("Error: Camera with MAC='" . $mac_orig . "' is not found", "cameras");
00184             }
00185             return error ("Error: Database is empty.", "cameras");
00186         }
00187         
00188         $i   = 0;
00189         $ret = '';
00190         while ($i < $num)
00191         {
00192             $mac_ = getDottedMac (mysql_result ($query_resp, $i, "mac"));
00193             $ret_ = '';
00194             $ret_ = $ret_ . formClosedTag ($mac_,  "mac", "") . "\n";
00195             $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip1"),   "ip1", "") . "\n";
00196             $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "ip2"),   "ip2", "") . "\n";
00197             $ret_ = $ret_ . formClosedTag (mysql_result ($query_resp, $i, "place"), "place", "") . "\n";
00198             $ret_ = formClosedTag ($ret_, "camera", "\n") . "\n";
00199             $i++;
00200             $ret .= $ret_;
00201         }
00202         $ret = formClosedTag ($ret, "cameras", "\n");
00203         
00204         return $ret;
00205     }
00206 
00207 
00208 
00209 
00210 // Entry point    
00211 $debug = fopen("/tmp/dvr.log", "a");
00212 fwrite($debug, "camera.php: \n");
00213 fwrite($debug, $_SERVER['QUERY_STRING']."\n");
00214 fclose($debug);
00215 
00216     switch ($_GET[cmd]) 
00217     {
00218         case "list":
00219         case "del":
00220         case "undel":
00221         case "add":
00222         case "edit":
00223             break;
00224         default :
00225             echo error ("Error: Unknown command '" . $_GET[cmd] . "' ", "cameras");
00226             return 0;
00227             break;
00228     }
00229     
00230     $id = connectToServer (server, user, password);
00231     if (!$id)
00232     {
00233         echo error ("Error: " . mysql_error(), "cameras");
00234         return 0;
00235     }
00236     
00237     if (!openDB (database, $id))
00238     {
00239         echo error ("Error: " . mysql_error($id), "cameras");
00240         closeDB ($id);
00241         return 0;
00242     }
00243     
00244     
00245     switch ($_GET[cmd]) 
00246     {
00247         case "list":
00248             $ret = listCams ($_GET[mac], $id);
00249             break;
00250         case "add":
00251             $ret = addCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00252             break;
00253         case "edit":
00254             $ret = editCam ($_GET[mac], $id, $_GET[ip1], $_GET[ip2], $_GET[place]);
00255             break;
00256         case "del":
00257             $ret = delUndelCam ($_GET[mac], $id, DELETE);
00258             break;
00259         case "undel":
00260             $ret = delUndelCam ($_GET[mac], $id, UNDELETE);
00261             break;
00262         default :
00263             $ret = error ("Error: Unknown command \"$_GET[cmd]\"", "cameras");
00264             break;
00265     }
00266     
00267     closeDB ($id);
00268     
00269     echo $ret
00270 ?>

Generated on Fri Nov 28 00:06:21 2008 for elphel by  doxygen 1.5.1