Wenn man für OOBD Webseiten programmiert, soll ja am Ende ein stetiger Datenaustausch zwischen der Webseite und dem Lua- Script stattfinden.
Während des Programmierens einer solchen Seite kann das aber schon ganz schön nervig werden, denn wo soll man zum Testen und Ausprobieren genau diesen Datenverkehr her bekommen, wenn noch gar nichts fertig ist?
Aus dieser Not heraus entstand der WebUI- Simulator, aber die Not ist damit auch vom Tisch, denn mit dem Simulator ist mal eben schnell getestet.
Der Simulator besteht nur aus zwei Standard- Komponenten: Das eine ist nur ein aktueller PHP, der einfach nur “ohne alles” per Start- Parameter -S einen Webserver bereitstellt, der die statischen Inhalte liefert, und das andere ist ein kleines, aber feines python- Script, was den Websocket von OOBD nachbildet.
Der Simulator kann die unterschiedlichen Elemente der Weboberfläche bedienen, ohne dafür konfiguriert werden zu müssen. Dieser Trick funktioniert folgendermassen:
Per Protokoll- Definition schickt jedes UI- Element, was angeklickt oder sonstwie angeregt wird und einen aktuellen Messwert von OOBD haben möchte, immer den bisherigen alten Anzeigewert mit. Nach dem Start kennt der Simulator die einzelnen Elemente noch nicht, aber er bekommt bei der ersten Anfrage den Wert mitgeliefert, den der Ersteller der Webseite dem Element als initialen Default- Wert mitgegeben hat.
Aus dem Format dieses Wertes, der ja immer als Text (String) geliefert wird, versucht der Simulator dann abzuleiten, um welche Art von Element es sich handelt. Dabei werden derzeit folgende Formate erkannt:
Am einfachsten wechselt man in der Shell in das /oobd/lua-scripts- Verzeichnis, in dem sich das runTestServers.sh - Script befindet und startet das Script auch dort, denn dann passt die tatsächliche Verzeichnisstruktur zu den relativen Pfaden im HTML- Dokument. Dieses Verzeichnis ist auch das Webroot- Verzeichnis für den Webbrowser, der dann mit der URL http://localhost:8080/meinAppVerzeichnis/meineAppStartseite.html gestartet wird.