C Control PRO Unit Mega 128 198219 ユーザーズマニュアル
製品コード
198219
402
Bibliotheken
© 2013 Conrad Electronic
URL (CGI) Variablen
Werden bei einem Webrequest keine URL Variablen angegeben, so läuft der gesamte Prozess im
Hintergrund, und es muss keine Interaktion erfolgen. Wird eine URL Variable angegeben (z.B. "?
var0=5") so überprüft der Webserver, ob der Variablenname dem Schema "var" + Zahl entspricht. Die
Zahl darf den maximalen Index der definierten dynamischen Variablen nicht überschreiten. Wird das
Schema erfüllt, wird der Wert "5" der dynamischen Variablen zugewiesen. Die Integer Variable a be-
kommt dann den Wert 5.
Hintergrund, und es muss keine Interaktion erfolgen. Wird eine URL Variable angegeben (z.B. "?
var0=5") so überprüft der Webserver, ob der Variablenname dem Schema "var" + Zahl entspricht. Die
Zahl darf den maximalen Index der definierten dynamischen Variablen nicht überschreiten. Wird das
Schema erfüllt, wird der Wert "5" der dynamischen Variablen zugewiesen. Die Integer Variable a be-
kommt dann den Wert 5.
Es gibt einen spezielle URL ("setvars.js") die nur die URL Variablen übernimmt, aber keinen Websei-
ten Inhalt zurückliefert. Damit lassen sich mit Javascript Variableninhalte übergeben, ohne viel TCP/
IP Traffic zu erzeugen.
ten Inhalt zurückliefert. Damit lassen sich mit Javascript Variableninhalte übergeben, ohne viel TCP/
IP Traffic zu erzeugen.
Eine Variable kann nur über die URL modifiziert werden, wenn bei WEB_SetDynVar() das Flag
DYN_CGIVAR gesetzt wird. Dadurch können normale Variablen vor einer Änderung von außen ge-
schützt werden.
schützt werden.
JSON
Wenn man mit Javascript arbeiten möchte, können dynamische Variablen auch als JSON Liste aus-
gegeben werden. Hierfür wird bei der der Definition mit WEB_SetDynVar() zusätzlich das Flag
DYN_JSONVAR gesetzt. Ein Zugriff auf "getvars.js" liefert dann die JSON Daten. Z.B.
"{"1":"123","3":"0"}". Dies ist eine Liste von zwei dynamischen Variablen mit den Indizes 1 und 3.
Dabei hat die Variable den Inhalt "123", die zweite Variable den Inhalt "0".
gegeben werden. Hierfür wird bei der der Definition mit WEB_SetDynVar() zusätzlich das Flag
DYN_JSONVAR gesetzt. Ein Zugriff auf "getvars.js" liefert dann die JSON Daten. Z.B.
"{"1":"123","3":"0"}". Dies ist eine Liste von zwei dynamischen Variablen mit den Indizes 1 und 3.
Dabei hat die Variable den Inhalt "123", die zweite Variable den Inhalt "0".
Interaktion
Bei der normalen Arbeitsweise, wird in der Hauptschleife des Programms dauernd mit WEB_GetRe-
quest() abgefragt, ob ein Request mit URL Variablen vorliegt. Ist der Rückgabewert ungleich Null, so
liegt ein Request an. Man kann mit WEB_GetFileHash() den Hash des Dateinamens erfragen, und
die übergebenen URL Variablen auswerten. Danach sollten die Ausgabevariablen (dynamischen Va-
riablen der Webseite) neu gesetzt werden. Am Ende wird dem Webserver mit WEB_ReleaseRe-
quest() signalisiert, das die Webseite ausgeliefert wird.
quest() abgefragt, ob ein Request mit URL Variablen vorliegt. Ist der Rückgabewert ungleich Null, so
liegt ein Request an. Man kann mit WEB_GetFileHash() den Hash des Dateinamens erfragen, und
die übergebenen URL Variablen auswerten. Danach sollten die Ausgabevariablen (dynamischen Va-
riablen der Webseite) neu gesetzt werden. Am Ende wird dem Webserver mit WEB_ReleaseRe-
quest() signalisiert, das die Webseite ausgeliefert wird.
5.27.1 Webserver Tips
Webserver Checkliste
Die aufzurufenden Webseiten müssen auf die Micro SD-Karte kopiert worden sein, und die Karte
muss im SD-Karten Slot der AVR32Bit Unit eingerastet sein.
Für die SD-Karte wird nur das FAT Dateisystem unterstützt (siehe
muss im SD-Karten Slot der AVR32Bit Unit eingerastet sein.
Für die SD-Karte wird nur das FAT Dateisystem unterstützt (siehe
).
Der Webserver wird gestartet, nach dem im Benutzerprogramm
() aufgerufen
wird. Der TCP/IP Port im Web-Browser (Default: 80) muss mit dem Port im Aufruf von ETH_Star-
tWebserver übereinstimmen.
Die Anzahl der in WEB_SetDynVar benutzten dynamischen Variablen muss mit der Definition im
WEB_BUF Makro und mit dynvar_cnt in WEB_StartServer korrespondieren.
tWebserver übereinstimmen.
Die Anzahl der in WEB_SetDynVar benutzten dynamischen Variablen muss mit der Definition im
WEB_BUF Makro und mit dynvar_cnt in WEB_StartServer korrespondieren.
Man kann beim Stoppen des Programms mit dem Start/Stop Taster den lwIP TCP/IP-Stack in
den Zustand bringen, das noch dynamischer Speicher der aktuellen Verbindung nicht frei gegeben
wird. Dieser Speicher kann beim Neustart des Programms fehlen. Bei Problemen sollte im Zweifels-
wird. Dieser Speicher kann beim Neustart des Programms fehlen. Bei Problemen sollte im Zweifels-