www/getco2pressurelog.php

changeset 507
17f244137a9b
child 600
c136dd22f662
--- /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 @@
+<?php
+
+require_once('config.php');
+
+if (isset($_GET["code"]))
+	$code = $_GET["code"] . ' ' . $_GET["name"];
+else
+	$code = "TB0015 Winterbier-2";
+
+$filename = 'log/co2pressure/' . $code . '.log';
+/*
+ * From Stackoverflow, the fastest way to count the lines in a file.
+ */
+$file = new \SplFileObject($filename, 'r');
+$file->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;

mercurial