summaryrefslogblamecommitdiffstats
path: root/notFinishedCode/web/mutex1.php
blob: 11d75291a45054b4e9916454d596a52d99ab502c (plain) (tree)
1
2
3
4
5
6
7
8
9

      

                                                                



                                                                              
                                                       
 

     

                  



                              




                  

                                                                                     
                           
                         
                         

                                                                         




                                                                       
 
                                                        
 


                                                                                

                                                                        























































                                                                                                                                                               
                                                                                                                  


























































                                                                                                                               
 
                                                                      







                                                         



       
<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();">

<?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 
    {
    
       exec("/usr/bin/python /var/www/server1.py > /dev/null 2>&1 &"); //start the software in background and don't wait for any output
       sleep(1); //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, "START TEST"); //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 '<table summary = "Results"> 
                      <thead> 
                      <tr> 
                      <th scope = "col"> From: </th> 
                      <th scope = "col" > To: </th> 
                      <th scope = "col"> Message: </th> 
                      <th scope = "col"> Status: </th> 
                      </tr> 
                      </thead> 
                      <!-- start of the table rows--> 
                      <tbody>';
                      echo str_repeat("\n",7024);
                      flush();
		   }
                   elseif ($received == "TEST DONE\n")
                   {
		      //test finished successfully 
                       echo '</tbody></table>';
                       echo 'Test successfully finished!<br>';
		       echo "<a class='pChart' href='networkResult.php' data-pchart-alt='Picture3'>Picture 3</a>";
                       echo str_repeat("\n",7024);
                       flush();
                       usleep(100);
                       fwrite($fp, 'DISCONNECT'); //tell the testing software it may close
                       break;
                   }
		   else
		   {
 		      //parse the received data!	
                      echo '<tr> 
		      <th scope = "row" id = "r100"> SIP</th> 
                      <th scope = "row" id = "r100">GSM1 </th> 
                      <td> '. $received . ' </td> 
                      <td> 200</td> 
                      </tr>';
                      //echo $received . '<br>';
                      echo str_repeat("\n",7024);
                      flush();
                      usleep(100);
                      fwrite($fp, "CONTINUE"); //tell the software to proceed with the test and confirm receiving data
                   }
		}
             }

             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';
}
?>

</body>
</html>