diff -r 78fb6f99e473 -r 8d2ba4126519 www-thermferm/global.php
--- a/www-thermferm/global.php Sun Aug 10 14:45:11 2014 +0200
+++ b/www-thermferm/global.php Sun Aug 10 16:17:03 2014 +0200
@@ -23,13 +23,233 @@
require_once('utilities.php');
-$outstr = build_header("ThermFerm - Global Setup");
-$outstr .= '
'.PHP_EOL;
-$outstr .= '
'.PHP_EOL;
-$outstr .= ' '.PHP_EOL;
+
+if (isset($_POST['action'])) {
+ if ($_POST['action'] == "testdata")
+ testdata();
+} else {
+ edit_screen("");
+}
+
+
+exit;
+
+
+/*****************************************************************************
+ *
+ */
+
+
+function global_update() {
+
+ if ($_POST['key'] == 'Save') {
+ $sock = open_socket();
+ if ($sock != false) {
+ /*
+ * Send command and absorb the result.
+ */
+ socket_write($sock, "GLOBAL PUT", 4096);
+ usleep(20000);
+ socket_write($sock, "NAME,".$_POST['Name'], 4096);
+ usleep(20000);
+ socket_write($sock, "PORT,".$_POST['Port'], 4096);
+ usleep(20000);
+ socket_write($sock, "TEMP_ADDRESS,".$_POST['TempAddress'], 4096);
+ usleep(20000);
+ socket_write($sock, "HUM_ADDRESS,".$_POST['HumAddress'], 4096);
+ usleep(20000);
+ if (isset($_POST['LCDcols'])) {
+ socket_write($sock, "LCD_COLS,".$_POST['LCDcols'], 4096);
+ usleep(20000);
+ }
+ if (isset($_POST['LCDrows'])) {
+ socket_write($sock, "LCD_ROWS,".$_POST['LCDrows'], 4096);
+ usleep(20000);
+ }
+ socket_write($sock, ".", 4096);
+ while (1) {
+ $line = socket_read($sock, 4096);
+ if ($line === '')
+ break;
+ }
+ socket_close($sock);
+ }
+ }
+
+ unset($_POST['Name']);
+ unset($_POST['Port']);
+ unset($_POST['TempAddress']);
+ unset($_POST['HumAddress']);
+ unset($_POST['LCDcols']);
+ unset($_POST['LCDrows']);
+ unset($_POST['key']);
+ load('global.php');
+}
+
+
+
+function test_thedata() {
+
+ if (isset($_POST['Name']) && isset($_POST['Port']) &&
+ isset($_POST['TempAddress']) && isset($_POST['HumAddress']) &&
+ isset($_POST['key'])) {
+
+ if ($_POST['key'] == 'Cancel')
+ return 99;
+
+ if (isset($_POST['LCDcols']) && (($_POST['LCDcols'] != 16) && ($_POST['LCDcols'] != 20)))
+ return 2;
+
+ if (isset($_POST['LCDrows']) && (($_POST['LCDrows'] != 2) && ($_POST['LCDrows'] != 4)))
+ return 3;
+
+ } else {
+ return 1;
+ }
+
+ return 0;
+}
+
+
+
+function testdata()
+{
+ $result = test_thedata();
+ $error = '';
+
+ switch ($result) {
+ case 0: global_update();
+ return;
+ break;
+ case 1: $error = 'Missing data';
+ break;
+ case 2: $error = 'LCD columns must be 16 or 20';
+ break;
+ case 3: $error = 'LCD rows must be 2 or 4';
+ break;
+ case 99:
+ load('global.php');
+ break;
+ }
+
+ edit_screen($error);
+}
+
+
-$outstr .= '
'.PHP_EOL;
-$outstr .= build_footer();
+function edit_screen($error_message)
+{
+ /*
+ * Get list of devices, we need it later
+ */
+ $answer = send_cmd("DEVICE LIST");
+ $devices = explode("\r\n", $answer);
+
+ /*
+ * Get current global data
+ */
+ $answer = send_cmd("GLOBAL GET");
+ $reply = explode("\r\n", $answer);
+
+ $outstr = build_header("ThermFerm - Global Setup");
+ $outstr .= ' '.PHP_EOL;
+ $outstr .= ' '.$error_message.PHP_EOL;
+ $outstr .= '
'.PHP_EOL;
+ $outstr .= ' '.PHP_EOL;
+ $outstr .= '
'.PHP_EOL;
+ $outstr .= '
'.PHP_EOL;
+ $outstr .= build_footer();
+
+ echo $outstr;
+}
+
+