diff -r 8ab0e87d579e -r 17f244137a9b www/getco2pressurelog.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/getco2pressurelog.php Fri Oct 11 22:48:43 2019 +0200 @@ -0,0 +1,97 @@ +seek(PHP_INT_MAX); +// $file->key() = lines in the file. + +define ('MAX_INTERVALS', 10); +$GRAPH_INTERVAL = array ( 0, 1, 5, 15, 30, 60, 120, 240, 480, 720 ); +$GRAPH_DATALINES = array ( 0, 800, 3200, 12000, 24000, 48000, 96000, 192000, 384000, 768000 ); + + +for ($graphstep = 1; $graphstep <= MAX_INTERVALS; $graphstep++) { + if ($file->key() < $GRAPH_DATALINES[$graphstep]) + break; +} +if ($graphstep > MAX_INTERVALS) + $graphstep = MAX_INTERVALS; + +//echo $code . '.log lines=' . $file->key() . ' interval=' . $GRAPH_INTERVAL[$graphstep] . ' graphstep=' . $graphstep . PHP_EOL; + +/* + * 2014-11-15 18:39:12,TEMPERATURE,PRESSURE,UUID + * | | | | + * datetime + | | | + * temperature ------------+ | | + * pressure --------------------------+ | + * unit uuid --------------------------------+ + */ + + +$handle = @fopen($filename, "r"); +if ($handle) { + $lines = 0; + while (($buffer = fgets($handle, 4096)) !== false) { + + $buffer = preg_replace( "/\r|\n/", "", $buffer); + $row = explode(",", $buffer); + + $hr = intval(substr($buffer, 11, 2)); + if ((($graphstep == 1)) || + (($graphstep == 2) && ((substr($buffer, 15, 1) == '0') || (substr($buffer, 15, 1) == '5'))) || + (($graphstep == 3) && ((substr($buffer, 14, 2) == '00') || (substr($buffer, 14, 2) == '15') || + (substr($buffer, 14, 2) == '30') || (substr($buffer, 14, 2) == '45'))) || + (($graphstep == 4) && ((substr($buffer, 14, 2) == '00') || (substr($buffer, 14, 2) == '30'))) || + (($graphstep == 5) && (substr($buffer, 14, 2) == '00')) || + (($graphstep == 6) && (substr($buffer, 14, 2) == '00') && (($hr % 2) == 0)) || + (($graphstep == 7) && (substr($buffer, 14, 2) == '00') && (($hr % 4) == 0)) || + (($graphstep == 8) && (substr($buffer, 14, 2) == '00') && (($hr % 8) == 0)) || + (($graphstep == 9) && (substr($buffer, 14, 2) == '00') && (($hr % 12) == 0))) { +// echo $hr . ' ' . $row[1] . ' ' . $buffer; + $lines++; + +// $heat_used = $cool_used = 0; +// if ($row[10] && ($row[10] != "NA") && ($heater_l > 0)) { +// $heat_used = round((intval($row[10]) - $heater_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60)); +// } +// if ($row[12] && ($row[12] != "NA") && ($cooler_l > 0)) { +// $cool_used = round((intval($row[12]) - $cooler_l) * 100 / ($GRAPH_INTERVAL[$graphstep] * 60)); +// } + + +// echo $GRAPH_INTERVAL[$graphstep] . ' ' . $heat_used . ' ' . $cool_used . PHP_EOL; + +// if (($heat_used <= 100) && ($cool_used <= 100)) { + $logs[] = array( + 'date' => $row[0], + 'temperature' => $row[1], + 'pressure' => $row[2] + ); +// } + +// if ($row[10] && ($row[10] != "NA")) +// $heater_l = intval($row[10]); +// if ($row[12] && ($row[12] != "NA")) +// $cooler_l = intval($row[12]); + } + + } + if (!feof($handle)) { + echo "Error: unexpected fgets() fail\n"; + } + fclose($handle); +} +header("Content-type: application/json"); +echo json_encode($logs); +//echo $lines . ' lines' . PHP_EOL;