HTTPD (Deutsch)
HTTPD | |
---|---|
Status | Stable
|
menuconfig | Applications->Template:HTTP Server->HTTPD |
Pinning | ? |
Ecmd | ? |
Control6 | ? |
Depends on | ? |
Requires | ? |
Code | ? |
Contents
Webserver auf dem ethersex
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
General Setup ---> [*] VFS (Virtual File System) support ---> | | [ ] Atmel SPI Dataflash | | | [*] VFS File Inlining | | | [ ] SD/MMC-Card Access | | | [ ] EEPROM (24cxx) Raw Access | | | [-] DC3840 Camera | ... Applications ---> | | [*] HTTP Server | | | [ ] Basic Authentication | ... Applications ---> Etherrape Control Interface (ECMD) ---> | | [*] ECMD support |
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)http://192.168.23.244/DateinameWen die Datei in einem Ordner auf der SD-Card liegt ist kann sie über folgende URL aufgerufen werden.
http://192.168.23.244/Ordnername/Dateiname
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.
http://192.168.23.244/ecmd?ip
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.
http://192.168.23.244/ecmd?1w+list
oder
http://192.168.23.244/ecmd?1w%20list
Startseite von Ethersex
Ist der Webserver einkompiliert sollte beim Aufruf von http://YOUR_ETHERSEX_IP/ im Browser so eine Seite erscheinen:
Dataflash
TODO