Hallo, hier im Forum liest man ja immer wieder von Webserverprojekten. Die Umsetzung auf der Hardwareseite erschließt sich mir genauso wie die Datenübertragung per Ethernetschnittstelle. Was mir aber noch nicht ganz in den Kopf will ist wie man dahin kommt das durch klicken eines Buttons auf html Files beim Controller eine Reaktion hervorgerufen wird. Wie muss ich mir die Anbindung vorstellen? Was passiert in dem Moment auf / im Controller bzw. zwischen Controller und Textdatei? Danke für eure Hilfe.
Nun ja, der Browser schickt ungefähr diese Zeile an den Server (o. Ä.): GET /index.html HTTP/1.0 und einige weitere (das HTTP-Protokoll eben). Der Server (=Mikrocontroller) weiß nun, dass er die Seite index.html ausliefern soll. Ob er nun direkt etwas aus dem Speicher schickt (eventuell sogar unabhängig von der angeforderten Seite) oder erst per Dateisystem auf einer SD-Karte etc. sucht, ist dann nur weiterer Programmieraufwand.
Obi Wan schrieb: > Was mir aber noch nicht ganz > in den Kopf will ist wie man dahin kommt das durch klicken eines Buttons > auf html Files beim Controller eine Reaktion hervorgerufen wird. Weisst du denn, wie das ganze zwischen 2 PCs ( einer Webserver, einer Client ) funktioniert ? Beim drücken auf den Button wird ein Paket an den Webserver ( in diesem Fall Controller ) gesendet, dass eine Datei anfordert und auch Informationen bezüglich des Forms ( zu dem der Button gehört ) überträgt, also auch eingaben in Textboxen und sowas. Der Controller kann darauf natürlich reagieren, weil er auf jedes einzelne Paket reagieren kann ( eigentlich sogar muss, denn die Pakete müssen durch mehrere Schichten hochgereicht werden ). Wie er reagiert, ist nur eine Sache der Programmierung. Ob man diese Form-Infos nun auswertet, oder einfach nur ein Smilie-Bild zurückschickt ist vollkommen egal.
Wie das zwischen PCs funktioniert ist klar -> Osi Schichten Modell. Mein Problem ist das ich keine Vorstellung davon habe wie ich den µC dazu bringen sollte auf die Pakete zu reagieren bzw. wie die Auswertung in diesem Fall aussehen soll. Irgendwie hab ich da noch einen Denkfehler drin. Ein konkretes Projekt gibts nicht, ich überlege mir nur schon mal gerne wie man bestimmte Dinge umsetzen kann. Wahrscheinlich denke ich in dem Fall aber einfach nur etwas zu kompliziert.
Na ja, stell dir vor, du kriegst irgendwie per UART die Anfrage rein. Dann kriegt dein Mikrocontroller einfach diesen String: GET /index.html HTTP/1.0 Host: 192.168.2.2 und da antwortet dein Server einfach drauf. Der Netzwerkstack kann ja irgendwo ausgelagert sein, dass einfach die Rohdaten seriell am Controller ankommen. Das ist so erstmal am einfachsten nachzuvollziehen.
> Wahrscheinlich denke ich in dem Fall aber einfach nur etwas zu kompliziert. Das ist immer die Ausrede, wenn man einfache Zusammenhänge nicht versteht ;-) Ne, Spaß. >Wie das zwischen PCs funktioniert ist klar -> Osi Schichten Modell. Mein >Problem ist das ich keine Vorstellung davon habe wie ich den µC dazu >bringen sollte auf die Pakete zu reagieren... Das Osi-Schichtenmodell gilt bei der Verbindung uC <-> PC im Prinzip genauso wie bei der Verbindung zweier PCs.
Schon klar. Aber im Grunde ist das OSI SChichtenmodell hier ziemlich uninteressant. Der WEbserver schickt einen Text zum Webbrowser (eben das berühmte HTML) und der Webbrowser malt daraufhin in seinem Fenster etwas hin. Was er hinzumalen hat, ist in Form von Anweisungen im Text enthalten, den er vom Server bekommen hat. Das kann natürlich auch ein Button sein, der in einer Form sitzt. Drückt der Benutzer drauf, dann schickt der Webbrowser als Reaktion darauf einen Text zum Webserver. Der wertet den Text aus, macht irgendwas und schickt wieder einen Text zurück. Und so geht das Spielchen hin und her. Einer schickt Texte zum jeweils Anderen.
Hardwareinteraktionen kann man durch vordefinierte commands ausloesen. Man kann einer Anfrage zB Parameter mitgeben, zB : GET /aaaa.html?PortWrite=0x00 Der Parser muss das dann eben aufloesen.
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.