Hallo zusammen, ich arbeite derzeit mit einem PIC18F67J60 von Microchip. Es funktioniert bisher auch alles soweit ganz gut. Ich möchte nun selbst auf der Webserver Oberfläche Schaltflächen und Textboxen erstellen und den inhalt in Variablen speichern um sie dann im weiteren Mikrocontroller Programm zu verarbeiten. Beispiel: Ich drücke auf der Webserver Oberfläche auf eine Schaltfläche und es wird ein bestimmter Wert in einer Variable gespeichert. Ein Schritt weiter wäre dann selbst eine Zahl eintippen in einem Textfeld und diese durch drücken einer Schaltfläche in einer Variable zu speichern. Ich habe mir die von Microchip mitgelieferte Webserver Oberfläche angesehen dort sind auch zum Teil Schaltflächen und Textfelder verbaut, jedoch konnte ich bisher nicht herausfinden wie das ganze funktioniert. Vielleicht hat hier schonmal erfahrungen damit gemacht? Mir ist die Schnittstelle zwischen Webserveroberfläche und C programm nicht so ganz klar. Wo muss ich ansetzen? Ich habe schon herausgefunden das es sehr warscheinlich etwas mit der Datei CustomHTTPApp.c zutun hat. Ich bin über jede Hilfe dankbar!
Schau mal in die Firmware zum NETIO von Ulrich Radig, da gibst das auf jeden Fall
Was ist eine 'Webserver'-Oberfläche? Ich geh mal davon aus, dass du in Wirklichkeit einen HTML Server meinst, der auf dem PIC läuft. Dann ist der prinzipielle Ablauf so, dass der Webserver eine HTML Seite rausrückt, in der die Anweisungen an den Browser eingebaut sind, einen Button bzw. eine Textbox hinzumalen, in Form eines HTML-Formulars. so weit, wo gut, grummel, grummel, grummel, der Benutzer macht was und klickt irgendwann auf den Button. In dem Moment schickt der Client (also der Browser) eine Nachricht zum Webserver, in der die Benutzereingaben codiert sind und auch welcher Button gedrückt wurde. D.h. aus Sicht des Servers ist der Button ziemlich uninteressant. Der Server rückt eine HTML Beschreibung heraus, so wie er das immer tun würde. Und der Server kriegt eine GET oder eine POST Methode (je nachdem wie das im HTML Code für das Formular festgelegt wurde), so dass er sich aus dieser Nachricht dann die vom Benutzer eingegebenen Werte rausklamüsern kann. Wenn du selbst einen Standard-HTML Server irgendwo laufen hast, dann sieh dir mal an und probier ein wenig rum, wie man damit Formulare und Auswertung mittels CGI Programmen machen kann. Dazu findet sich genug Dokumentation im Web - die allerdings immer aus Sicht des Browsers bzw. der CGI Erweiterung geschrieben ist. Allerdings hilft dir dieses Verständnis insofern, als du den grundsätzlichen Mechanismus dann besser verstehst und daraus dann auch ableiten kannst, wie das in deinem PIC-HTML Server prinzipiell eingebaut sein wird bzw. wie und wo du dann dort die entsprechenden Erweiterungen machen musst.
Hallo, Ich habe mittels des 18F97J60 über einen Webserver, Buttons abgefragt. Die Abfrage erfolgte bei mir über AJAX. Hintergrund: Wird ein Button betätigt, so wird diese "Anfrage" an den PIC übermittelt. Dieser führt dann die gewünschten Aktionen aus. Wenn Du als Vorlage die Microchip-Demo-Seite verwendest, kannst Du diese nach deinen Wünschen anpassen. Die Webseite kann z.B. bei einem Tastendruck oder einem Befehl, Die Eingegebenen Werte übermitteln. Der Vorteil von AJAX ist, dass die Website nicht immer neu geladen werden muss, wenn z.B. sich Texte oder Shapes ändern. Vielleicht ist das für Dich geeignet? Edit: Der Zugriff auf die Webelemente erfolgt in der Datei CustomHTTPApp, die HTTPPrint-Datei wird beim Compilieren (z.B. als MPFS-Image) der Website erstellt.
Danke für eure Antworten. Ich denke ich werde mal versuchen bei AJAX anzusetzen. Scheint mir leichter zu sein.
AJAX sendet ebenso wie ein herkömmliches Formular einen HTTP GET oder POST Request. Nur dass der Server bei AJAX nicht mit einer ganzen HTML Seite antwortet, sondern im einfachsten Fall mit einem leeren Dokument.
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.