www.mikrocontroller.net

Forum: PC-Programmierung Server fuer HTTP ueber serielle Schnittstelle


Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich moechte gerne HTTP ueber eine serielle Schnittstelle senden und 
sollte dafuer was schreiben. Ein (noch zu bauendes) externes Device hat 
ein softwaremaessiges Webinterface auf der seriellen Schnittstelle. Das 
zu schreibende Stueck Software fuer den PC sollte nun die URL irgendwie 
uebernehmen und auf die serielle Schnittstelle tun, da kommt dann die 
webseite als ASCII zurueck. Das Ansprechen der seriellen Schnittstelle 
ist kein Problem. Wie schaffe ich es nun, dass der Browser mit meinem 
Programm spricht. Er muss sich wie ein Proxy verhalten. Ich kann einen 
Server auf port 8080 legen, diesen Server als proxy im browser eintragen 
und dann die Anfragen filtern. Was mit "Serial:///" anfaengt wird auf 
die Serielle Schnittstelle getan, der Rest weitergeleitet und  normal 
bearbeitet,  Ist das eine machbare loesung ?

rene

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich recht erinnere gibts sowas schon. Google mal nach dem SLIP 
Protokoll. Oder hab ich die Frage falsch verstanden?

bye

Frank

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, die Frage war, wie ich einen normalen Browser, der auch Internet 
(zB ueber LAN) kann dazu bringen kann auf mein Device am serielle port 
zuzugreifen. Nix mit DFUe. und Modem. Die eingegebene URL muss sich 
natuerlkich unterscheiden, wie fuer ein lokale file ja auch, welches mit 
"file:///" beginnt. Eine IP hab ich nicht fuer mein device, dh ein DNS 
lookup wird nicht benoetigt.

rene

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, so etwas gibt es nicht bzw. Du müsstest einen Browser um 
erforderliche zusätzliche Protokolle erweitern. Lässt sich sicherlich 
machen, die Mozilla-Sourcen sind ja frei verfügbar, halte ich aber für 
... aufwendig.

Sinnvoll ist hier in der Tat die Implementierung eines IP-Stacks auf dem 
Gerät, der entweder per SLIP oder PPP angesprochen werden kann - dann 
musst Du zwar Deinem Device eine IP-Adresse zuweisen (und der darin 
enthaltene PPP-Server Deinem Computer auch eine), die aber kann 
problemlos aus einem nicht routbaren Subnet 192.168.xxx.xxx entnommen 
werden.

Diese Vorgehensweise ist durchaus üblich; die meisten Miniaturwebserver 
auf PICs, AVRs und anderen Microcontrollern arbeiten genau so (sofern 
nicht ein Ethernet-NIC angeschlossen ist).

Autor: Feadi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist ganz einfach lösbar, man braucht nur ein TCP Socket 
öffnen und die Daten an die serielle Schnittstelle weiterleiten. Im 
Browser muss man dann sowas wie z.B. "http://localhost:1234" eingeben. 
Mit einem Portforward im Router geht das sogar ins Internet.

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, nein, ein IP Stack auf der Hardware ist weder sinnvoll noch 
noetig, das dort keine Ethernet Schnittstelle implementiert ist. Ein PPP 
oder Slip waere dann als DFU zu installieren, was mit einer gewissen 
Wahrscheinlichkeit Administratorrechte braucht. Ein Server auf dem PC, 
der von HTTP auf Seriell umsetzt waere akzeptabel und sollte viel 
einfacher sein. Nun muss man diesen Server dem Browser unterschieben. 
Diese Loesung ist als Alternative zu einem Custom GUI fuer das Device 
gedacht.

rene

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Feadi,
vielen Dank, das kommt etwa hin. Das werd ich mal probieren.

rene

Autor: andreas kasper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

würde mich interessieren ob du unter windows oder unter linux 
entwickelst.

lg
andi

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Windows. Ich nehm die HTTPServerSockets von Indy. Die kommen etwa hin. 
Aeh ja, unter Delphi7.

rene

Autor: rene (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich komm gut voran. Zur Zeit lerne ich Javascript fuer Eingaben. Der PC 
redet ASCII mit dem Device. HTML-ASCII. Ist schon ein Unterschied wenn 
man vorher ein binaeres Protokol mit CRC hatte. Mit der neuen Loesung 
gehen kilobytes fuer eine Seite drauf. Aber wenn der Kunde das so 
will...

rene

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.