Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktionsweise der xxAPI(nicht-technisch) ;)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Funktionsweise der xxAPI(nicht-technisch) ;)

    Da viele danach Fragen was dieses ganze base64 Kram's soll und deshalb denken die xxAPI ware etwas sehr kompliziertes und ob es ihr HS-Projekt irgendwie beschadigen könnte. Hier mal ein Versuch das ganze "einfach" (zumindest aus meiner Sicht )zu erkaren.

    Also los gehts, wer Fragen hat einfach los.


    Einleitung
    Voraussetzung ist das man die von Dacom und Gira veröffentlichte Hs Ajax-Visu nutzt. Das ist ein Programm das ein Mittelweg der Visulösung
    /hs (sprich Webzugang zum HS) und dem HS-Client ist.

    Das verwendete Protokoll beim Webzugang ist html, welches so keine Möglichkeiten vorsieht nur einzelen Teile einer Seite zu andern, wie z.B. den Wert der Temperaturanzeige.

    Das verwendete Protokol beim HS-Client ist XML, eine nicht Visuell ausgerichtes Protokoll was eher zum reinen übertragen von Daten in einer vorgeschriebenen Struktur gedacht ist. Von sich aus zeigt dieses Protokoll also nicht die Visu sondern nur Informationen was z.B. wo auf der Visu ist, die Namen von Bildern, die Position von Texten....

    Die HS Ajax-Visu(kurz HSAV) ist ein auf den Mini-Webserver des HS gelegtes HTML Dokument(quasi eine Webseite) mit dem Javascript(Programmteil) der das HS Client-Protokoll (XML) versteht(Authenfizierung, Schriften,die Bildernamen vom richtigen Pfad holen...).
    Die XML-Daten sind reiner Text, der im JS einfach nach den passenden Attributen durchsucht wird.

    Aufruf der xxAPI

    Jetzt zu dem Teil mit der xxAPI.Die xxAPI ist eigentlich auch "NUR" Javascript, genauso wie die ajax.js der HSAV. Man könnte alle Funktionen auch in die ajax.js einbauen, jedoch müsste dann bei jeder Änderung das Projekt mit dem Experten und der geanderten ajax.js erneut auf den HS geladen werden(Neustart erforderlich).

    Wir laden die xxAPI jetzt einfach in ein 14Byte iKo welches (über XML) zu dem Javascript der HSAV(ajax.js) transportiert wird, indem wir es einfach irgendwo auf der Visu anzeigen.(genauso wie z.B. auch die Temperatur oder andere Werte auf der Visu angezeigt werden)

    Die mit der modifizerten ajax.js(die aus der Projektverwaltung) eingebaute Funktion, überprüft jetzt alle ankommenden Texte auf einen Wert der mit "XXSCRIPT*" anfangt.

    Base64
    Da der HS und auch das XML-Protokoll nicht alle Zeichen anzeigen können, braucht man eine Möglichkeit die xxAPI zu verpacken(ahnlich wie z.B. der Anhang einer Email(uuencode) verpackt wird). Dazu ist der base64 Code da der sowohl als HS Logikmodul, als auch als Javascript, als auch als PHP vorhanden ist. Das base64 wandelt die xxAPI in die 64 Druckbaren Zeichen des Zeichensatz ASCII um.Dies geschieht auf dem xxAPI Hostserver(knx-user-forum.de) der noch ein XXSCRIPT* davor setzt und die API über eine Webabfrage in das iKo des HS bringt und dort Remanent speichert.

    Dieses kodierte Textobjekt wird jetzt einfach auf einer Visuseite angezeigt.
    Die oben beschriebene Modifikation in der ajax.js findet das XXSCRIPT* am anfang und weiß das es sich um ein Javascript Code handelt und Dekomprimiert das base64 und führt den Code mit eval() aus.

    Javascript
    Jetzt stehen im Browser die weiteren Funktionen die mit der xxAPI geladen wurden zur Verfügung.Die xxAPI nutzt dafür den gleichen Weg wie schon die modifizierte ajax.js, heisst sie wartet auf Texte mit bestimmtem anfang.(XXHTTP*,XXLINK*,XXCLICK....) und führt die dahinterliegenden Funktionen aus. Auch hier stösst man aber schnell wieder an die Grenzen des eingeschrankten Zeichensatzes. Der HS wandelt die Zeichen "und ' in ? und < und > in [ und ].Das macht sowohl HTML als auch Javascript schwer zu übergeben. Zwar werden [] vom Javascript wieder zurückgewandelt, jedoch ist das Rückwandeln von ? in ' oder " nur einmal möglich. Also kann man keine verschachtelten Anführungszeichen z.B. ... onclick="alert('test');" machen. Deshalb wurden die Varianten XXEEXECUTE und XXEHTML eingeführt die auch den base64 Code verwenden.

    Anwendungen
    Die APPid's sind weitere Erweiterungen die einen komplexen Zweck dienen.
    Und meisst über mehrere Zeilen Javascript Code verfügen.Damit nicht jeder diesen Code selbst erstellen oder aktualisieren muss. Werden diese genau wie die xxAPI, vom xxAPI Hostserver zur Verfügung gestellt und verfügen über eine Parameterübergabe (z.B. APPid101 Balkendiagramme) oder über weitere Javascript Funktionen die eine einfache Bedienung der Applikation erlauben(z.B. APPid121 VLC).
    Die Applikationen werden genau wie die xxAPI einfach nur auf der Visuseite angezeigt, als ware es Text. Die Umwandlung erfolgt durch die xxAPI.

    sachliche Fragen zur Klarung von Begriffen etc. hierzu sind erwünscht.

    Bitte kein, aber bei mir geht das nicht in diesen Thread.
    Nils

    aktuelle Bausteine:
    BusAufsicht - ServiceCheck - Pushover - HS-Insight
Lädt...
X