Now uses the real data for the chart

Tue, 22 Jul 2014 23:14:19 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 22 Jul 2014 23:14:19 +0200
changeset 123
597688feda2f
parent 122
e57043423e72
child 124
350401bac16e

Now uses the real data for the chart

www-thermferm/getlog.php file | annotate | diff | comparison | revisions
www-thermferm/liveview.php file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www-thermferm/getlog.php	Tue Jul 22 23:14:19 2014 +0200
@@ -0,0 +1,83 @@
+<?php
+/*****************************************************************************
+ * Copyright (C) 2014
+ *   
+ * Michiel Broek <mbroek at mbse dot eu>
+ *
+ * This file is part of ThermFerm
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * ThermFerm is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with ThermFerm; see the file COPYING.  If not, write to the Free
+ * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ *****************************************************************************/
+
+require_once('utilities.php');
+
+$unit = $_GET["unit"];
+
+$sock = open_socket();
+if ($sock == false) {
+    echo "";
+    return;
+}
+
+socket_write($sock, "UNIT " . $unit, 4096);
+$answer = "";
+while (1) {
+    $line = socket_read($sock, 4096);
+    if ($line === '')
+	break;
+    $answer .= $line;
+}
+socket_close($sock);
+
+$sock = open_socket();
+if ($sock == false) {
+    echo "";
+    return;
+}
+
+socket_write($sock, "LIST LOG", 4096);
+$answer = "";
+while (1) {
+    $line = socket_read($sock, 4096);
+    if ($line === '')
+	break;
+    $answer .= $line;
+}
+socket_close($sock);
+$arr = explode("\r\n", $answer);
+
+
+//$data[] = array('Date','Mode','Air','Beer','Target','Heater','Cooler','Fan','Door');
+$row = '[';
+
+/* We don't use json_encode because it doesn't work for our purpose */
+if (startsWith($arr[0], "212")) {
+    $j = 1;
+    while (1) {
+	if (strcmp($arr[$j], ".") == 0)
+		break;
+	if ($j > 1)
+	    $row .= ',';
+	$f = explode(",", $arr[$j]);
+	$row .= '{"Date":"'.$f[0].'","Mode":"'.$f[1].'","Air":"'.$f[2].'","Beer":"'.$f[3].'","Target":"'.$f[4].'",';
+        $row .= '"Heater":"'.$f[5].'","Cooler":"'.$f[6].'","Fan":"'.$f[7].'","Door":"'.$f[8].'"}';
+	$j++;
+    }
+}
+
+$row .= ']';
+echo $row;
+
+?>
--- a/www-thermferm/liveview.php	Tue Jul 22 20:15:09 2014 +0200
+++ b/www-thermferm/liveview.php	Tue Jul 22 23:14:19 2014 +0200
@@ -69,26 +69,38 @@
 	$outstr .= '    <script type="text/javascript">'.PHP_EOL;
 	$outstr .= '     $(document).ready(function () {'.PHP_EOL;
 
-	$outstr .= '       var sampleData'.$unr.' = ['.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-15 20:44\',Mode:\'NONE\',Air:20.625,Beer:23.687},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-15 21:00\',Mode:\'NONE\',Air:20.250,Beer:23.437},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-15 22:00\',Mode:\'NONE\',Air:20.375,Beer:22.812},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-15 23:00\',Mode:\'NONE\',Air:20.500,Beer:22.437},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 00:00\',Mode:\'NONE\',Air:20.437,Beer:22.250},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 01:00\',Mode:\'NONE\',Air:20.375,Beer:22.000},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 02:00\',Mode:\'NONE\',Air:20.312,Beer:21.750},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 03:00\',Mode:\'NONE\',Air:20.375,Beer:21.687},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 04:00\',Mode:\'NONE\',Air:20.312,Beer:21.562},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 05:00\',Mode:\'NONE\',Air:20.187,Beer:21.500},'.PHP_EOL;
-	$outstr .= '         { Date:\'2014-07-16 06:00\',Mode:\'NONE\',Air:20.125,Beer:21.500}'.PHP_EOL;
-	$outstr .= '       ];'.PHP_EOL;
+	$outstr .= '       var source'.$unr.' ='.PHP_EOL;
+	$outstr .= '       {'.PHP_EOL;
+	$outstr .= '          datatype: "json",'.PHP_EOL;
+	$outstr .= '          datafields: ['.PHP_EOL;
+	$outstr .= '             { name: \'Date\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Mode\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Air\', type: \'float\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Beer\', type: \'float\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Target\', type: \'float\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Heater\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Cooler\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Fan\' },'.PHP_EOL;
+	$outstr .= '             { name: \'Door\' }'.PHP_EOL;
+	$outstr .= '          ],'.PHP_EOL;
+	$outstr .= '          url: \'getlog.php?unit='.$unr.'\''.PHP_EOL;
+	$outstr .= '       };'.PHP_EOL;
+
+	$outstr .= '       var dataAdapter'.$unr.' = new $.jqx.dataAdapter(source'.$unr.','.PHP_EOL;
+	$outstr .= '       {'.PHP_EOL;
+	$outstr .= '          autoBind: true,'.PHP_EOL;
+	$outstr .= '          async: false,'.PHP_EOL;
+	$outstr .= '          downloadComplete: function () { },'.PHP_EOL;
+	$outstr .= '          loadComplete: function () { },'.PHP_EOL;
+	$outstr .= '          loadError: function () { }'.PHP_EOL;
+	$outstr .= '       });'.PHP_EOL;
 
 	$outstr .= '       var settings'.$unr.' = {'.PHP_EOL;
 	$outstr .= '         title: "Fermentation temperature '.$unr.'",'.PHP_EOL;
 	$outstr .= '         description: "",'.PHP_EOL;
 	$outstr .= '         padding: { left: 5, top: 5, right: 5, bottom: 5 },'.PHP_EOL;
 	$outstr .= '         titlePadding: { left: 90, top: 0, right: 0, bottom: 10 },'.PHP_EOL;
-	$outstr .= '         source: sampleData'.$unr.','.PHP_EOL;
+	$outstr .= '         source: dataAdapter'.$unr.','.PHP_EOL;
 	$outstr .= '         categoryAxis:'.PHP_EOL;
 	$outstr .= '           {'.PHP_EOL;
 	$outstr .= '             dataField: \'Date\','.PHP_EOL;

mercurial