Difference between revisions of "HTTPD"

From Ethersex_Wiki
Jump to: navigation, search
(transfered Page from old wiki)
 
(Replaced content with "{{i18n|HTTPD}}")
Line 1: Line 1:
==  Webserver auf dem ethersex ==
+
{{i18n|HTTPD}}
Der Webserver der in ethersex eingebaut ist kann von verschiedenen Orten die Daten lesen, die er ausliefern soll:
 
 
 
* Aus einem externen Dataflash
 
* Dateien die im Flash des Controllers nach der Firmware abgelegt sind
 
* ECMD Befehle absetzen und die Resultate erhalten ( fuer Ajax )
 
 
 
Jede dieser Quellen fuer Daten kann unabhaenig von den anderen eingeschaltet werden. Die einfachste Variante ist wohl zu Beginn die Dateien im internen Flash zu halten und dynamische Inhalte ueber das Http ECMD Interface abzurufen.
 
 
 
===  Konfiguration ===
 
 
 
<pre>
 
General Setup  ---&gt;
 
[*] VFS (Virtual File System) support  ---&gt;
 
| |    [ ] Atmel SPI Dataflash          | 
 
| |    [*] VFS File Inlining            | 
 
| |    [ ] SD/MMC-Card Access            | 
 
| |    [ ] EEPROM (24cxx) Raw Access    | 
 
| |    [-] DC3840 Camera                | 
 
 
 
Applications  ---&gt;
 
| |    [*] HTTP Server                  | 
 
| |    [ ]  Basic Authentication        | 
 
 
 
Applications ---&gt;
 
Etherrape Control Interface (ECMD) ---&gt;
 
| | [*] ECMD support                |
 
</pre>
 
 
 
===  Dateien einbinden ===
 
Falls die Option ''Supply Inline Files'' aktiviert ist, werden alle Dateien, die unter ''vfs/embed/'' abgelegt sind, automatisch beim Erstellen des Images mit gzip gepackt und an das Ende der Firmware angehängt. Die Dateinamen bleiben dabei unverändert, jedoch muss beachtet werden, dass die maximale Länge der Dateinamen 6 Zeichen beträgt.
 
 
 
=== Dateien mit dem C Preprocessor oder m4 vorverarbeiten ===
 
Um Dateien abhängig von den Konfigurationsoptionen einzubinden (oder nicht) bzw. nur Teile mit einzubauen, wenn eine gewisse Option aktiviert ist, kann man diese durch cpp oder m4 vorverarbeiten lassen, bevor die Ausgabe gepackt und an die Firmware angefügt wird. Dazu muss die Datei auf .cpp bzw auf .m4 enden. Bei cpp sind alle defines aus der config.h/autoconf.h erreichbar (z. B. ~np~ONEWIRE_SUPPORT~/np~). Bei m4 wird aus ~np~ONEWIRE_SUPPORT conf_ONEWIRE ~/np~.
 
 
 
=== Content Type der Dateien ===
 
Da der Webserver den Content-Type nicht dynamisch erkennen kann, muss man ihm diese Informationen etwas vorkauen. Der Content-Type wird am ersten Buchstaben des Dateinamens festgemacht:
 
* S (z.B Sty.c): text/css
 
* X (z.B Xow.ht): application/xhtml+xml;
 
* Ansonsten wird alles mit text/html ausgeliefert
 
 
 
=== Dateien von SD-Card Aufrufen ===
 
Damit Datein von einer SD-Card ausgeliefert werden, kopiert man diese einfach auf die SD-Card.
 
Sie können dann im Browser über  folgende URL aufgerufen werden.(die IP, der Dateiname müssen natürlich geändert werden) <pre>http://192.168.23.244/Dateiname</pre>
 
Wen die Datei in einem Ordner auf der SD-Card liegt ist kann sie über folgende URL aufgerufen werden.<pre>http://192.168.23.244/Ordnername/Dateiname</pre>
 
Die Länge des Dateinamens ist bei der SD-Card nicht auf 6 Zeichen begrenzt.
 
 
 
===  ECMD-Befehle per Hand auslösen (über http) ===
 
Um die IP per ecmd abzufragen, kann man die folgende URL (die IP muss natürlich geändert werden) im Browser eingeben und man bekommt die Ausgabe per http zurück.
 
 
 
<pre>http://192.168.23.244/ecmd?ip</pre>
 
 
 
Möchte man Befehle verwenden, welche ein Leerzeichen beinhalten, wie z.B. "1w list", dann muss das Leerzeichen durch ein "+" bzw. "%20" ersetzt werden. Folgender Befehl listet angeschlossene 1-wire Sensoren auf, falls vorhanden.
 
 
 
<pre>http://192.168.23.244/ecmd?1w+list</pre>
 
 
 
oder
 
 
 
<pre>http://192.168.23.244/ecmd?1w%20list</pre>
 
 
 
=== Startseite von Ethersex ===
 
 
 
Ist der Webserver einkompiliert sollte beim Aufruf von <nowiki>http://YOUR_ETHERSEX_IP/</nowiki> im Browser so eine Seite erscheinen:
 
 
 
[[Bild:Ethersex-screen-startseite.png|600px]]
 
 
 
===  Dataflash ===
 
 
 
'''TODO'''
 
 
 
[[Category:Ethersex]]
 
[[Category:StepByStep]]
 
[[Category:Network]]
 

Revision as of 17:26, 4 June 2012