$measurements = ""; foreach ($this->arrayOfAreas as $area) { $decibel = $area->noiseavg + 40; // adds reference value -40dB for silence to make values positive if ($this->max < $decibel) { $this->max = $decibel; } // the maximum between the averages $x = $area->x; $y = $area->y; $measurements = $measurements . "{x: {$x}, y: {$y}, count: {$decibel}},\n"; } return $measurements; } } $db = new FFDB(); $aps = simplexml_load_file('aps.xml'); if ($db->open("noisepoints")) { $bssid = "bssid"; $noise = "noise"; $timestamp = "timestamp"; // TODO: avg over the same area to reduce network IO $textarea = "<textarea id=\"data\">{"; $measurements = "data: [\n"; $arrayofareas = new Areas(); foreach ($db->getall(NULL) as $item) { if (empty($_POST) || $item[$timestamp] > $_POST['min'] && $item[$timestamp] < $_POST['max']) { foreach ($aps->entry as $entry) { if ($entry->string == $item[$bssid]) { foreach ($entry->area as $routerarea) { list($areaid, $height, $width, $x, $y) = $routerarea->attributes();
$table .= "\n" . '<tr>' . "<td data-x=\"{$area->x}\" data-y=\"{$area->y}\" data-width=\"{$area->width}\"" . "data-height=\"{$area->height}\" >{$area->noiseavg}</td>" . '</tr>'; } $table .= '</table>'; echo $table; } } $db = new FFDB(); $aps = simplexml_load_file('aps.xml'); if ($db->open("noisepoints")) { $bssid = "bssid"; $noise = "noise"; $timestamp = "timestamp"; $arrayofareas = new Areas(); $unknowns = array(); // 369235 = 2 hours // time()*1000 list($usec, $sec) = explode(" ", microtime()); $now = round(((double) $usec + (double) $sec) * 1000); $hours2ago = $now - 1000 * 60 * 60 * 2; $nothing = true; /// empty($_GET) || ($item[$timestamp] > $_GET['min'] && $item[$timestamp] < $_GET['max']) foreach ($db->getall(NULL) as $item) { // -40dB is considered as silence, -20dB is considered too loud //if($item[$timestamp] > $hours2ago){ foreach ($aps->entry as $entry) { if ($entry->string == $item[$bssid]) { foreach ($entry->area as $routerarea) { list($areaid, $height, $width, $x, $y) = $routerarea->attributes(); if ($x != 0 && $y != 0) { $arrayofareas->add($x, $y, $width, $height, $item[$noise] + 60); }
$ar = new Area(); array_push($this->arrayOfAreas, $ar->setData($x, $y)->addMeasurement($noise)); } return $this; } function toString() { $measurements = ""; foreach ($this->arrayOfAreas as $area) { $decibel = $area->noiseavg + 40; // adds reference value -40dB for silence to make values positive if ($this->max < $decibel) { $this->max = $decibel; } // the maximum between the averages $x = $area->x; $y = $area->y; $measurements = $measurements . "{x: {$x}, y: {$y}, count: {$decibel}},\n"; } return $measurements; } } $ar = new Areas(); $ar->add(24, 34, -30); $ar->add(24, 34, -60); //var_dump($ar); echo $ar->toString(); ?> </body> </html>