www-thermferm/utilities.php

Wed, 30 Jul 2014 22:57:48 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 30 Jul 2014 22:57:48 +0200
changeset 155
0d86f3c0a07b
parent 137
e4518fd9b626
child 173
7259ee8778e9
permissions
-rw-r--r--

Unit mode can switch between OFF and NONE.

<?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.
 *****************************************************************************/


function open_socket()
{
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    if (!($sock === false)) {
//	if (socket_connect($sock, "rpi02", 6554)) {    
	if (socket_connect($sock, "localhost", 6554)) {
	    socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 15, 'usec' => 0));
	} else {
	    socket_close($sock);
    	}
    }
    return $sock;
}



function startsWith($haystack, $needle)
{
    return !strncmp($haystack, $needle, strlen($needle));
}



function build_header($heading)
{
    $outstr  = '<!DOCTYPE html>'.PHP_EOL;
    $outstr .= '<html>'.PHP_EOL;
    $outstr .= ' <head>'.PHP_EOL;
    $outstr .= '  <meta http-equiv="content-type" content="text/html; charset=utf-8" />'.PHP_EOL;
    $outstr .= '  <title>'.$heading.'</title>'.PHP_EOL;
    $outstr .= '  <link type="text/css" href="css/style.css" rel="stylesheet" media="all" />'.PHP_EOL;
    $outstr .= ' </head>'.PHP_EOL;
    $outstr .= ' <body class="default">'.PHP_EOL;
    $outstr .= '  <div id="jqxWidget">'.PHP_EOL;
    $outstr .= '   <div id="header">'.PHP_EOL;
    $outstr .= '    <form action="maintenance.php" style="margin:30px; float:right">'.PHP_EOL;
    $outstr .= '     <input type="submit" class="jqx-button" value="Maintenance Panel" />'.PHP_EOL;
    $outstr .= '    </form>'.PHP_EOL;
    $outstr .= '   </div> <!-- header -->'.PHP_EOL;
    $outstr .= '   <div id="content">'.PHP_EOL;

    return $outstr;
}



function build_footer()
{
    $outstr  = '   </div> <!-- content -->'.PHP_EOL;
    $outstr .= '  </div> <!-- jqxWidget -->'.PHP_EOL;
    $outstr .= ' </body>'.PHP_EOL;
    $outstr .= '</html>'.PHP_EOL;

    return $outstr;
}



/*
 * Goto URL. Works also after headers have been sent.
 */
function load($url) {
    echo'
    <script>
	if (top.location != self.location) {
	    top.location = "'.$url.'"
	}
	{location.href="'.$url.'";}
    </script>';
}


/*
 * Send command
 */
function send_cmd($cmd) {
    $sock = open_socket();
    if ($sock != false) {
	/*
	 * Send command and absorb the result.
	 */
	socket_write($sock, $cmd, 4096);
	while (1) {
	    $line = socket_read($sock, 4096);
	    if ($line === '')
		break;
	}
	socket_close($sock);
    }
}

mercurial