www-thermferm/liveview.php

changeset 100
012576d7386d
child 102
e37b9c571a56
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www-thermferm/liveview.php	Fri Jul 11 22:53:33 2014 +0200
@@ -0,0 +1,135 @@
+<?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');
+
+
+
+function showunit($unit)
+{
+    $outstr = '';
+
+    $sock = open_socket();
+    if ($sock == false) {
+	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) {
+	return '';
+    }
+
+    socket_write($sock, "LIST UNIT", 4096);
+    $answer = "";
+    while (1) {
+	$line = socket_read($sock, 4096);
+	if ($line === '')
+	    break;
+	$answer .= $line;
+    }
+    socket_close($sock);
+    $arr = explode("\r\n", $answer);
+
+    if (startsWith($arr[0], "213")) {
+
+	$outstr .= '    <div id="fermentor">'.PHP_EOL;
+
+	foreach($arr as $l) {
+	    $vals = explode(",", $l);
+	    if (strcmp($vals[0], "NAME") == 0) {
+		/*
+		 * The name is allways first, so when we have it
+		 * emit the formatting.
+		 */
+		$outstr .= '     <div id="fermentor_head">'.PHP_EOL;
+		$outstr .= '      ' . $vals[1] .PHP_EOL;
+		$outstr .= '     </div>'.PHP_EOL;
+		$outstr .= '     <div id="fermentor_pict">'.PHP_EOL;
+		$outstr .= '      <img src="images/Fermenter_60l.gif">'.PHP_EOL;
+		$outstr .= '     </div>'.PHP_EOL;
+		$outstr .= '     <div id="fermentor_control">'.PHP_EOL;
+	    }
+	    if (strcmp($vals[0], "MODE") == 0) {
+		$outstr .= '      mode ' . $vals[1] . '<br>' .PHP_EOL;
+	    }
+	}
+	$outstr .= '      temp 12.3'.PHP_EOL;
+	$outstr .= '     </div>'.PHP_EOL;
+    	$outstr .= '    </div>'.PHP_EOL;
+    }
+
+    return $outstr;
+}
+
+
+
+function liveview()
+{
+    $outstr  = PHP_EOL;
+
+    $sock = open_socket();
+    if ($sock !== false) {
+	socket_write($sock, "LIST", 4096);
+
+	/*
+	 * Multiple reads until the remote closed the connection
+	 */
+	$answer = "";
+	while (1) {
+	    $line = socket_read($sock, 4096);
+	    if ($line === '')
+		break;
+	    $answer .= $line;
+	}
+	socket_close($sock);
+	$arr = explode("\r\n", $answer);
+
+	if (startsWith($arr[0], "212")) {
+	    $i = 1;
+	    while (1) {
+		if (strcmp($arr[$i], ".") == 0)
+			break;
+		$parts = explode(",", $arr[$i]);
+		$outstr .= showunit($parts[1]);
+		$i++;
+	    }
+	}
+    }
+
+    return $outstr;
+}
+
+
+
+?>

mercurial