Hallo alle, nach endloser Recherche habe ich eine Frage zur Kommunikation meiner Webansicht und dem Programm auf dem µC bzw. SoC. Wenn ich beispielsweise Linux am Start habe und auf diesem läuft ein Webserver mit meiner Visualisierung - wie kommuniziert dann meine Visualisierung mit einem anderen Programm auf dem Linux SoC. Die einzige effektive Möglichkeit die ich mir da grade vorstellen kann ist AJAX + REST (sprich die angesprochenen Programme kommunizieren über HTTP Request mittels AJAX - empfangen und senden). Eine zweite Lösung die ich kenne ist, dass die HTTP Seiten direkt im ausführenden µC Programm integriert sind. So könnte auch auf dem AVR eine HTML Visu abgelegt werden. Das Programm kann anfragen erkennen, Daten speichern und laden, sowie zurücksenden (ggf. dann HTML). Aber ich ziehe es vor, HTML und Programm zu trennen. Wie ist da der einfachste Weg? Gibt es da gute Literatur für? bis dann Jens
Zur Visualisierung kannst einen Webserver verwenden, der HTML Seiten generiert, oder eine HTML/Javascript Seite, die direkt mit dem µC kommuniziert:
1 | µC ----------- Server --------- Browser |
2 | |
3 | oder: |
4 | |
5 | µC ---------------------------- Browser |
Beim ersten Fall kommen die HTML Seiten und Javascript sinnvollerweise vom Server. Beim zweiten Fall hast du ziemlich freie Wahl, woher der Browser die HTML+Javascript Dateien lädt. Es könnte ein lokales Verzeichnis sein, oder ein Webserver, oder der Mikrocontroller liefert sie. Die Kommunikation zum µC würde ich in jedem Fall text-basiert machen, damit man sie gut debuggen und simulieren kann. Hier bieten sich XML und JSON an, um die Daten zu strukturieren. JSON ist etwas schlanker und mit Javascript einfacher zu verarbeiten, als XML. Im ersten Fall kannst du AJAX optional einsetzen, um nur Teile der Webseite aufzufrischen. Das kann je nach Anwendungsfall zu besserer Performance führen, ist aber beim Drucken und abspeichern hinderlich. Auch kann man auf AJAX Seiten nur bedingt Lesezeichen setzen. Im zweiten Fall würde ich ganz dringend zu AJAX raten. Denn Mikrocontroller eignen sich eher nicht, ganze HTML Seiten zu erzeugen - es sei denn, sie sind ganz einfach strukturiert. Als Anregung kannst du Dir mal dieses Projekt anschauen: http://stefanfrings.de/avr_io/index.html Da verfolge ich den Ansatz: alles auf dem µC und weitgehend ohne AJAX - den ich nur bei sehr einfachen Seiten empfehlen würde.
> .. nach endloser Recherche ..
eher nicht. Es ist nicht allzu schwierig, auf dem Controller eine
Webseite zusammenzusetzen. Die Kommunikation laeuft ja eh ueber die
serielle Schnittstelle. Dabei muss der Controller eigentlich nur den
HTTP Request parsen, und darauf reagieren. Dann muss der PC nur noch die
Seite durchreichen. Sonst muss man ein Programm aufsetzen, das ein
Protokol implementiert und in eine Webseite einfuellt.
Ich had den beschriebenen Weg, mit der Webseite auf dem controller
zusammensetzen schon implementiert, und es geht gut.
> und es geht gut. Dazu habe ich ein Kapitel geschrieben. Du kannst dort nachlesen, wie das HTTP Protokoll funktioniert und Lösungsansätze zur Implementierung finden: http://stefanfrings.de/mikrocontroller_buch/index.html (in Band 2) Ich finde den Ansatz mit Rest Services und Javascript aber auch nicht schlecht. Gerade für Web-Frontend Entwickler könnte das leichter sein, als Mikrocontroller zu programmieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.