Context-detection API for Android developed as a university project
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?PHP
  2. require('common.php');
  3. if (isset($_GET['graph'])) {
  4. $imei = decodeIMEI($_GET['code']);
  5. $sql = 'SELECT log_data FROM sensorlogger WHERE log_id = ' . ((int) $_GET['graph']) . ' AND log_imei = \'' . m($imei) . '\'';
  6. $res = mysql_query($sql);
  7. $row = mysql_fetch_assoc($res);
  8. $datax = array();
  9. $datay = array();
  10. $dataz = array();
  11. foreach (explode("\n", $row['log_data']) as $line) {
  12. if (preg_match('/([0-9]+):(?:.*?,.*?,.*?,){'.($_GET['ds']-1).'}([0-9\.\-]+),([0-9\.\-]+),([0-9\.\-]+)/', $line, $m)) {
  13. $datax[] = (double) $m[2];
  14. $datay[] = (double) $m[3];
  15. $dataz[] = (double) $m[4];
  16. }
  17. }
  18. $im = imagecreatetruecolor(count($datax) * 2, 330);
  19. $w = imagecolorallocate($im, 255, 255, 255);
  20. imagefill($im, 0, 0, $w);
  21. $r = imagecolorallocate($im, 255, 0, 0);
  22. $g = imagecolorallocate($im, 0, 255, 0);
  23. $b = imagecolorallocate($im, 0, 0, 255);
  24. $grey = imagecolorallocate($im, 200, 200, 200);
  25. $lgrey = imagecolorallocate($im, 230, 230, 230);
  26. $minx = min($datax); $maxx = max($datax); $rangex = max(0.01, $maxx - $minx);
  27. $miny = min($datay); $maxy = max($datay); $rangey = max(0.01, $maxy - $miny);
  28. $minz = min($dataz); $maxz = max($dataz); $rangez = max(0.01, $maxz - $minz);
  29. $lastx = $lasty = $lastz = -0;
  30. imagestring($im, 1, 2, 6, 'Min: ' . $minx . '; Max: ' . $maxx . '; Range: ' . $rangex, $grey);
  31. imagestring($im, 1, 2, 116, 'Min: ' . $miny . '; Max: ' . $maxy . '; Range: ' . $rangey, $grey);
  32. imagestring($im, 1, 2, 226, 'Min: ' . $minz . '; Max: ' . $maxz . '; Range: ' . $rangez, $grey);
  33. imageline($im, 0, 5, count($datax) * 2, 5, $grey);
  34. imageline($im, 0, 105, count($datax) * 2, 105, $grey);
  35. imageline($im, 0, 115, count($datax) * 2, 115, $grey);
  36. imageline($im, 0, 215, count($datax) * 2, 215, $grey);
  37. imageline($im, 0, 225, count($datax) * 2, 225, $grey);
  38. imageline($im, 0, 325, count($datax) * 2, 325, $grey);
  39. for ($i = 0; $i < count($datax); $i++) {
  40. $x = ($datax[$i] - $minx) * 100 / $rangex + 5;
  41. $y = ($datay[$i] - $miny) * 100 / $rangey + 115;
  42. $z = ($dataz[$i] - $minz) * 100 / $rangez + 225;
  43. if ($i > 0) {
  44. imageline($im, 2 * $i - 2, $lastx, $i * 2, $x, $r);
  45. imageline($im, 2 * $i - 2, $lasty, $i * 2, $y, $g);
  46. imageline($im, 2 * $i - 2, $lastz, $i * 2, $z, $b);
  47. }
  48. $lastx = $x; $lasty = $y; $lastz = $z;
  49. }
  50. header('Content-type: image/png');
  51. imagepng($im);
  52. return;
  53. }
  54. $sql = 'SELECT log_id, log_imei, log_version, log_time, log_activity, log_data FROM sensorlogger WHERE log_statuscode = 1';
  55. $res = mysql_query($sql);
  56. echo '<table border="1">';
  57. $first = true;
  58. while ($row = mysql_fetch_assoc($res)) {
  59. if ($first) {
  60. echo '<tr>';
  61. foreach ($row as $k => $v) { echo '<th>', $k, '</th>'; }
  62. echo '</tr>';
  63. $first = false;
  64. }
  65. echo '<tr>';
  66. foreach ($row as $k => $v) { echo '<td>', $k == 'log_data' ? count(explode("\n", $v)) . ' line(s)' : nl2br(htmlentities($v)), '</td>'; }
  67. echo '<td>';
  68. echo '<img src="data.php?graph=', $row['log_id'], '&amp;ds=1" height="330">';
  69. echo '<br><img src="data.php?graph=', $row['log_id'], '&amp;ds=2" height="330">';
  70. echo '</td>';
  71. echo '</tr>';
  72. }
  73. echo '</table>';
  74. ?>