summaryrefslogblamecommitdiffstats
path: root/For Weekly Test/tricode/devconf.php
blob: 2f5bc0084c138e067fe224595ab18fb75b283b65 (plain) (tree)


























                                                                                     
                                                   







































































                                                                                                                                                               
                 




















































                                                                                                                               
<html>
<head>
<script src='delayedLoading.js' type="text/javascript"></script>
<!--ADD HERE ALL THE NEEDED META DATA -->
<title>Network test live results!</title>
<link rel="stylesheet" href="css/tableCSS.css" type="text/css" media="screen">
</head>
<body onscroll="scrollEvent();" onload="loaderInit();">
<div>
<?php

//Connection stuff
//DB
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'randompasswordSQL';

//Socket
$port = 34500;
$ip = 'localhost';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');

$dbname = 'gsmselftesting';
mysql_select_db($dbname);
//End of connection stuff
include 'mutexFunctions.php'; //mutex functions, isfree, lock and release
//include 'insertData.php'; //insert task functions

$nameOfLock = 'Webpage';
$timeToKeepTheMutex = 360; 

$locking = isLocked($nameOfLock);//Check if the webpage is already open

if ($locking == '1') //1 means nobody is on the website 
{
 $lockMe = Lock($nameOfLock,$timeToKeepTheMutex); //Set a mutex for the webpage 
 if ($lockMe == '1') //1 means a successful lock
 {
    //include 'post.php'; // read posted data and add them to the database
//    echo 'WE had errors: '. $errorAdding;
    //stuff to do here
    //check if the software is running! 
    $softwareLock = 'SoftwareStarted';
    $softwareRunning = isLocked($softwareLock);
    if($softwareRunning == '1') //1 means software is not started yet, start it 
    {
       $startApp = fsockopen($ip, 34600, $errno, $error, 5);
       if (!$startApp)
       {
          printf('THE SOFTWARE THAT SHOULD RUN IN BACKGROUND IS NOT RUNNING!');
       }
       else
       {
          socket_set_timeout( $startApp, 50); //one should set the number of the longest test, so we can define the timeout
          fwrite($startApp, "START APP");
          usleep(2500);
          fclose($startApp);
       }

       //exec("/usr/bin/python /var/www/tricode/gsmselftest2.py > /dev/null 2>&1 &"); //start the software in background and don't wait for any output
       sleep(6); //sleep half second till the software starts
       //the software should be running already and set the lock, now we test it and then connect to it!
       
       $softwareRunning1 = isLocked($softwareLock);
       if($softwareRunning1 == '0') //Software running and waiting for connection!
       {
          //try to open the socket and connect to the software
          $fp = fsockopen($ip, $port, $errno, $error, 5);

	  if (!$fp)
 	  {
             echo 'Could not open the socket or connect to the testing software! Check ports on both sides!';
              
 	  }
          else
          {
   	     socket_set_timeout($fp,50); //one should set the number of the longest test, so we can define the timeout function (it is the number after "$fp,")
	      
	     fwrite($fp, "UPDATE DEVICE"); //send command to start the tests
             if(!feof($fp))
             {
                while(!feof($fp))
                {
                   $received =  fgets($fp, 128); //receive data!

                   if ($received == "CONFIRM\n") //we got the confirmation from the testing software
                   {
		      
		      			echo 'Device update automaticaly';
		   			}
                   elseif ($received == "TEST DONE\n")
                   {

                       echo 'Update device is done';
                       flush();
                       usleep(100);
                       fwrite($fp, 'DISCONNECT'); //tell the testing software it may close
                       break;
                   }
                }
             }

             fclose($fp);//close the soccket and the connection

          }
	
       }
       elseif($softwareRunning1 == '1')
       {
          echo 'Testing software was not started(didn\'t obtain the lock)! Check it!';	
       }
       else
       {
          echo 'Testing software didn\'t obtain the lock';
       }
    }
    elseif($softwareRunning == '0') //0 means the software is still running in the background
    {
       echo 'Testing software is still running! Maybe you should kill it (if not started manually!)';
    }
    else
    {
       echo 'We have an unknown error! Refresh te web page!';
    }

    //$release = ReleaseLock($nameOfLock);
    //echo $release . "<br>";
  }
  
 }
 elseif($lockMe == '0') //0 means if the attempt timed out (for example, because another client has previously locked the name)
 {
    echo 'Someone was faster than you';
 }
 else
 {
    // # if an error occurred (such as running out of memory or the thread was killed with
    echo 'We have an error here';
 }
}
elseif ($locking == '0') //0 means somebody is already on the web site
{
 echo 'Somebody is using the web site already!' . "<br>";
}
else
{
 echo 'We have some serious error here';
}
?>
</div>
</body>
</html>