C Control PRO Unit Mega 128 198219 ユーザーズマニュアル

製品コード
198219
ページ / 429
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  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.
  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.
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".
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.
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 
).
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.
  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-