SD-Karte (Html Code): Unterschied zwischen den Versionen
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 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" */ | |||
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(){ | }, | ||
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, 19: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>