SD-Karte (Html Code): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
<pre>
<pre>
<!DOCTYPE html>
<!--
***************************************************************************************************
*Diese Html-Seite dient der Darstellung der Temperatur und des Ein-/Aus-Schalten der Grillreglung.*
******************Sie stellt die verbindung zwischen Android-App und Arduino dar.******************
******Die Seite wurde von Kathrin Liedmann, Benedikt Schulte und Dominik Rebein im Rahmen des******
**************Elektrotechnik Fachpraktikums an Hochschule Hamm-Lippstadt entwickelt.***************
******************Die Grundstruktur stammt von der Seite http://www.fluuux.de.*********************
***************************************************************************************************
-->
 
<!DOCTYPE html> <!-- Festlegen des Dokumententyps -->
<html>
<html>
<head>
<head>
   <title>Grillsteuerung</title>
   <title>Grillsteuerung</title> <!-- Beschriftung der HTML Seite -->
   <style>
   <style>
     h1{margin:0px;padding:0px;text-align:center;}
     h1{margin:0px;padding:0px;text-align:center;}     /* Struktur der Überschrift */
     h2 { margin-bottom:5px; }
     h2 { margin-bottom:5px; }
     body{
     body{ /* Farbverlauf der Website bei Aus-Status */
       background:linear-gradient( 180deg, #ccc 0%,  white 100%);
       background:linear-gradient( 180deg, #ccc 0%,  white 100%);
  background:-webkit-linear-gradient( 180deg, #ccc 0%,  white 100%);
  background:-webkit-linear-gradient( 180deg, #ccc 0%,  white 100%);
Zeile 16: Zeile 26:
       padding:0px;
       padding:0px;
     }
     }
     body.on{
     body.on{ /* Farbverlauf der Website bei An-Status */
background:linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
background:linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
background:-webkit-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
background:-webkit-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
background:-moz-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
background:-moz-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
     }
     }
     html{height:100%;}
     html{height:100%;}       /* Prozentuale Angabe der Höhe der Website */
     .colbars{
     .colbars{
       float:right;
       float:right;
Zeile 29: Zeile 39:
       margin:0px 10px 0px 0px;
       margin:0px 10px 0px 0px;
     }
     }
     #temperature{
     #temperature{ /* Position der Ausgabe "Temperatur:" */
       position:absolute;
       position:absolute;
       left:50%;
       left:50%;
Zeile 41: Zeile 51:
       font-weight:bold;
       font-weight:bold;
     }
     }
     #buttoncontainer{
     #buttoncontainer{ /* Element durch das die Buttons unten positioniert werden */
       position:absolute;
       position:absolute;
       bottom:0px;
       bottom:0px;
Zeile 47: Zeile 57:
       height:60px;
       height:60px;
     }
     }
     #buttoncontainer button{
     #buttoncontainer button{ /* Aussehen der eigentlichen Buttons */
       width:50%;
       width:50%;
       margin:0px;
       margin:0px;
       height:100%;
       height:100%;
     }
     }
     #result{
     #result{ /* Positionierung der Grillstatusanzeige */
       margin-top:20px;
       margin-top:20px;
       text-align:center;
       text-align:center;
Zeile 58: Zeile 68:
   </style>
   </style>
   <script type="text/javascript">
   <script type="text/javascript">
function ajax(method, url, data, callback, errorCallback)
    function ajax(method, url, data, callback, errorCallback) /* Definition eines Browserunabhängigen AJAX-Aufrufs */
{
    {
      var async = true;
  var async = true;
      var xmlHttpRequest = false;
  var xmlHttpRequest = false;
      if (window.XMLHttpRequest)
  if (window.XMLHttpRequest){
      /* Fall 1: Firefox, Chrome, Safari, Opera etc */
      xmlHttpRequest = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
      /* Fall 2: Internet Explorer */
      xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if(xmlHttpRequest != false)
  {
  {
  xmlHttpRequest = new XMLHttpRequest();
  /* Parameter für das Requestobjekt setzen */
      }
  xmlHttpRequest.open(method, url, async);
      else if (window.ActiveXObject) {
  xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
  xmlHttpRequest.onreadystatechange = function() {
      }
      /* Funktion, die aufgerufen wird, wenn eine Antwort vom Server kommt */
      if(xmlHttpRequest != false)
      if(xmlHttpRequest.status == 200){ //Erfolgsfall
      {
  if (xmlHttpRequest.readyState == 4)
      xmlHttpRequest.open(method, url, async);
  {
      xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  /*Wenn eine Funktion für den Erfolgsfall angegeben wurde, diese Aufrufen mit der Antwort vom Server */
      xmlHttpRequest.onreadystatechange = function()
  if(callback != null && typeof(callback) == "function"){
      {
  callback(JSON.parse(xmlHttpRequest.responseText));
  if(xmlHttpRequest.status == 200){
  }
      if (xmlHttpRequest.readyState == 4)
  }
      {
}else{
      if(callback != null && typeof(callback) == "function"){
      /*Wenn eine Funktion für den Fehlerfall angegeben wurde, diese Aufrufen mit der Antwort vom Server */
      callback(JSON.parse(xmlHttpRequest.responseText));
      if(errorCallback != null && typeof(errorCallback) == "function"){
  errorCallback(xmlHttpRequest);
      }
      }
      }
}
    }else{
  }
          if(errorCallback != null && typeof(errorCallback) == "function"){
  /* Den Request ausgeführen */
      errorCallback(xmlHttpRequest);
  xmlHttpRequest.send(data);
  }
  }
    }
  else
  {
  alert("Please use browser with Ajax support!");
  }
    }
 
  function grillstatus(){ /* Anfrage an den Server, um den aktuellen Status abzurufen */
ajax(
  "GET",
  "http://192.168.0.88/?action=status",
  "",
  function(data){
      console.log(data); /* Debug-Ausgabe in die Browserkonsole schreiben */
      document.getElementById('temperature').innerHTML = (data.temperature) + "&deg; C"; /* Temperaturwert in das HTML Element mit der ID temperature senden */
 
      if(data.grillstatus == "an"){
document.body.className = "on";
      }else{
document.body.className = "";
      }
      }
      xmlHttpRequest.send(data);
      }
      else
      {
      alert("Please use browser with Ajax support.!");
      }
}


function grillstatus(){
    ajax(
      "GET",
      "http://192.168.0.88/?action=status",
      "",
      function(data){
  console.log(data);
  document.getElementById('temperature').innerHTML = (data.temperature) + "&deg; C";


  if(data.grillstatus == "an"){
    },function(err){
    document.body.className = "on";
      console.log(err); /* Im Fehlerfall Ausgabe in Browserlog schreiben */
  }else{
  });
    document.body.className = "";
    }
  }


window.onload = function(){ /* Diese Operationen werden ausgeführt, sobald die Seite inklusive aller Scripte geladen worden ist, damit ist sichergestellt, dass alle div-Bereiche und Buttons verfügbar sind.*/


},function(err){
  console.log(err);
      });
}


window.onload = function(){
document.getElementById('switchgrillon').onclick = function(){ /* Hier wird eine Aktion an den Anschalten-Button gebunden, sobald geklickt wird, wird die angegebene Funktion ausgeführt  */
 
    ajax("POST", 'http://192.168.0.88/?action=switchgrillon', "action=switchgrillon", /* AJAX Anfrage an den Server mit dem Befehl "switchgrillon" */
document.getElementById('switchgrillon').onclick = function(){
function(){ /* Diese Funktion wird im Erfolgsfall aufgerufen, (Server sendet Status 200/OK zurück ) */
    ajax("POST", 'http://192.168.0.88/?action=switchgrillon', "action=switchgrillon", function(){
document.getElementById('result').innerHTML = "Angeschaltet";
document.getElementById('result').innerHTML = "Angeschaltet";
document.body.className = "on";
document.body.className = "on";
grillstatus();
grillstatus();
resetResult();
resetResult();
},function(){
},
      console.log('error');
function(){ /* Diese Funktion wird im Fehlerfall aufgerufen, (Server antwortet nicht oder sendet einen Status ungleich 200/OK zurück ) */
  console.log('error');
    });
    });
}
}


document.getElementById('switchgrilloff').onclick = function(){
document.getElementById('switchgrilloff').onclick = function(){ /* Analog zu Switchgrillon */
    ajax("POST", 'http://192.168.0.88/?action=switchgrilloff', "action=switchgrilloff", function(){
    ajax("POST", 'http://192.168.0.88/?action=switchgrilloff', "action=switchgrilloff", function(){
document.getElementById('result').innerHTML = "Ausgeschaltet";
document.getElementById('result').innerHTML = "Ausgeschaltet";
Zeile 141: Zeile 158:
}
}


grillstatus();
grillstatus(); /* grillstatus() wird einmalig beim start aufgerufen */
window.setInterval(grillstatus, 5000);
window.setInterval(grillstatus, 5000); /* grillstatus() wird alle 5 Sekunden einmal aufgerufen */
function resetResult(){
 
 
function resetResult(){ /* Statusmeldung ("Angeschaltet" / "Ausgeschaltet") soll nach einer Sekunde wieder verschwinden */
window.setTimeout(function(){
window.setTimeout(function(){
document.getElementById('result').innerHTML = "";
document.getElementById('result').innerHTML = "";
Zeile 153: Zeile 172:
<body>
<body>
  <h1>Grill-App</h1>
  <h1>Grill-App</h1>
  <div id="temperature"></div>
  <div id="temperature"></div> <!-- HTML Element in das die Temperatur geschrieben wird -->
  <div id="result"></div>
  <div id="result"></div> <!-- HTML Element in das die Statusmeldung geschrieben wird -->
  <div id="buttoncontainer">
  <div id="buttoncontainer">
    <button id="switchgrillon" />Einschalten</button><button id="switchgrilloff" />Ausschalten</button>
    <button id="switchgrillon" />Einschalten</button><button id="switchgrilloff" />Ausschalten</button>

Aktuelle Version vom 5. Februar 2014, 18:14 Uhr

<!--
***************************************************************************************************
*Diese Html-Seite dient der Darstellung der Temperatur und des Ein-/Aus-Schalten der Grillreglung.*
******************Sie stellt die verbindung zwischen Android-App und Arduino dar.******************
******Die Seite wurde von Kathrin Liedmann, Benedikt Schulte und Dominik Rebein im Rahmen des******
**************Elektrotechnik Fachpraktikums an Hochschule Hamm-Lippstadt entwickelt.***************
******************Die Grundstruktur stammt von der Seite http://www.fluuux.de.*********************
***************************************************************************************************
-->

<!DOCTYPE html>					<!-- Festlegen des Dokumententyps -->
<html>
<head>
  <title>Grillsteuerung</title>			<!-- Beschriftung der HTML Seite -->
  <style>
    h1{margin:0px;padding:0px;text-align:center;}      		 /* Struktur der Überschrift */
    h2 { margin-bottom:5px; }
    body{							 /* Farbverlauf der Website bei Aus-Status */
      background:linear-gradient( 180deg, #ccc 0%,  white 100%);
	  background:-webkit-linear-gradient( 180deg, #ccc 0%,  white 100%);
	  background:-moz-linear-gradient( 180deg, #ccc 0%,  white 100%);
      height:100%;
      font-family:Arial;
      margin:0px;
      padding:0px;
    }
    body.on{							/* Farbverlauf der Website bei An-Status */
		background:linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
		background:-webkit-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
		background:-moz-linear-gradient( 180deg, rgb(255,255,60) 0%,  rgb(251,0,0) 100%);
    }
    html{height:100%;}			      /* Prozentuale Angabe der Höhe der Website */
    .colbars{
      float:right;
      width:5px;
      height:50%;
      clear:right;
      margin:0px 10px 0px 0px;
    }
    #temperature{				/* Position der Ausgabe "Temperatur:" */
      position:absolute;
      left:50%;
      top:50%;
      width:160px;
      height:100px;
      margin-left:-80px;
      margin-top:-50px;
      text-align:center;
      font-size:60px;
      font-weight:bold;
    }
    #buttoncontainer{				/* Element durch das die Buttons unten positioniert werden */
      position:absolute;
      bottom:0px;
      width:100%;
      height:60px;
    }
    #buttoncontainer button{			/* Aussehen der eigentlichen Buttons */
      width:50%;
      margin:0px;
      height:100%;
    }
    #result{					/* Positionierung der Grillstatusanzeige */
      margin-top:20px;
      text-align:center;
    }
  </style>
  <script type="text/javascript">
    function ajax(method, url, data, callback, errorCallback)						/* Definition eines Browserunabhängigen AJAX-Aufrufs */
    {
	  var async = true;
	  var xmlHttpRequest = false;
	  if (window.XMLHttpRequest){
	      /* Fall 1: Firefox, Chrome, Safari, Opera etc */
	      xmlHttpRequest = new XMLHttpRequest();
	  } else if (window.ActiveXObject) {
	      /* Fall 2: Internet Explorer */
	      xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	  }
	  if(xmlHttpRequest != false)
	  {
		  /* Parameter für das Requestobjekt setzen */
		  xmlHttpRequest.open(method, url, async);
		  xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		  xmlHttpRequest.onreadystatechange = function() {
		      /* Funktion, die aufgerufen wird, wenn eine Antwort vom Server kommt */
		      if(xmlHttpRequest.status == 200){  //Erfolgsfall
			  if (xmlHttpRequest.readyState == 4)
			  {
				  /*Wenn eine Funktion für den Erfolgsfall angegeben wurde, diese Aufrufen mit der Antwort vom Server */
				  if(callback != null && typeof(callback) == "function"){
					  callback(JSON.parse(xmlHttpRequest.responseText));
				  }
			  }
			}else{
			      /*Wenn eine Funktion für den Fehlerfall angegeben wurde, diese Aufrufen mit der Antwort vom Server */
			      if(errorCallback != null && typeof(errorCallback) == "function"){
					  errorCallback(xmlHttpRequest);
			      }
			}
		  }
		  /* Den Request ausgeführen */
		  xmlHttpRequest.send(data);
	  }
	  else
	  {
		  alert("Please use browser with Ajax support!");
	  }
    }

  function grillstatus(){										/* Anfrage an den Server, um den aktuellen Status abzurufen */
	ajax(
	  "GET",
	  "http://192.168.0.88/?action=status",
	  "",
	  function(data){
	      console.log(data);									/* Debug-Ausgabe in die Browserkonsole schreiben */
	      document.getElementById('temperature').innerHTML = (data.temperature) + "° C";	/* Temperaturwert in das HTML Element mit der ID temperature senden */

	      if(data.grillstatus == "an"){
		document.body.className = "on";
	      }else{
		document.body.className = "";
	      }


	    },function(err){
	      console.log(err);										/* Im Fehlerfall Ausgabe in Browserlog schreiben */
	  });
    }

window.onload = function(){					/* Diese Operationen werden ausgeführt, sobald die Seite inklusive aller Scripte geladen worden ist, damit ist sichergestellt, dass alle div-Bereiche und Buttons verfügbar sind.*/


	document.getElementById('switchgrillon').onclick = function(){					/* Hier wird eine Aktion an den Anschalten-Button gebunden, sobald geklickt wird, wird die angegebene Funktion ausgeführt  */
	    ajax("POST", 'http://192.168.0.88/?action=switchgrillon', "action=switchgrillon",		/* AJAX Anfrage an den Server mit dem Befehl "switchgrillon" */
		function(){										/* Diese Funktion wird im Erfolgsfall aufgerufen, (Server sendet Status 200/OK zurück ) */
			document.getElementById('result').innerHTML = "Angeschaltet";
			document.body.className = "on";
			grillstatus();
			resetResult();
			},
		function(){										/* Diese Funktion wird im Fehlerfall aufgerufen, (Server antwortet nicht oder sendet einen Status ungleich 200/OK zurück ) */
		  console.log('error');
	    });
	}

	document.getElementById('switchgrilloff').onclick = function(){					/* Analog zu Switchgrillon */
	    ajax("POST", 'http://192.168.0.88/?action=switchgrilloff', "action=switchgrilloff", function(){
			document.getElementById('result').innerHTML = "Ausgeschaltet";
			document.body.className = "";
			grillstatus();
			resetResult();
	    },function(){
	      console.log('error');
	    });
	}

	grillstatus();					/* grillstatus() wird einmalig beim start aufgerufen */
	window.setInterval(grillstatus, 5000);		/* grillstatus() wird alle 5 Sekunden einmal aufgerufen */


	function resetResult(){				/* Statusmeldung ("Angeschaltet" / "Ausgeschaltet") soll nach einer Sekunde wieder verschwinden */
		window.setTimeout(function(){
			document.getElementById('result').innerHTML = "";
		},1000);
	}
}
  </script>
</head>
<body>
	  <h1>Grill-App</h1>
	  <div id="temperature"></div>		<!-- HTML Element in das die Temperatur geschrieben wird -->
	  <div id="result"></div>		<!-- HTML Element in das die Statusmeldung geschrieben wird -->
	  <div id="buttoncontainer">
	    <button id="switchgrillon" />Einschalten</button><button id="switchgrilloff" />Ausschalten</button>
	  </div>
	</body>
</html>