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
Wenn ich mich recht erinnere gibts sowas schon. Google mal nach dem SLIP Protokoll. Oder hab ich die Frage falsch verstanden? bye Frank
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
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).
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.
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
Feadi, vielen Dank, das kommt etwa hin. Das werd ich mal probieren. rene
hallo würde mich interessieren ob du unter windows oder unter linux entwickelst. lg andi
Windows. Ich nehm die HTTPServerSockets von Indy. Die kommen etwa hin. Aeh ja, unter Delphi7. rene
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
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.