Hallo, ich möchte folgendes machen. Ich habe hier ein Mikrocontrollerboard, das über eine serielle Schnittstelle mit dem PC verbunden wird. Der Mikrocontroller soll sich nun aus PC-Sicht wie ein Modem verhalten, sodass ich in der Netzwerkumgebung des PCs eine Modemverbindung einrichten kann. "Wählt" man sich dann über diese Modemverbindung ein, dann eine gefakte Netzwerkverbindung aufgebaut, über die dann via Browser auf dem PC eine HTML-Site aufgerufen werden kann. Das soll dazu dienen, das Controllerboard zu konfigurieren. Bisher wurde das über ein Textbasiertes Terminal-Interface gelöst, aber das ist nun wirklich ein wenig altbacken, deshalb möchte ich das nun via Browser graphisch erledigen. Aus Gründen der Rückwärtskompatibilität muss die serielle Schnittstelle aber unbedingt vorhanden bleiben. Ein Netzwerkstack läuft eh schon auf dem Board, das PPP-Protokoll ist auch implementiert. Also müsste das doch gehen, oder? Was muss ich noch alles implementieren, damit der Controller sich aus PC-Sicht wie ein Modem verhält? Zu beginn gibts ja da diese Sequenz, wo der PC zuerst CLIENTCLIENT senden, dann muss man mit CLIENTSERVER antworten. Sonst noch was?
Wäre es nicht andersrum sinnvoller: einen kleinen Webserver auf dem Controller, der vom PC aus per Browser ansprechbar ist?
Warum nich ganz einfach ein Konfigurationsprogramm beilegen? Kann ja auch ein Java sein dann läuft es auf jedern Platform. Ich finde die Idee zwar sehr Kreativ aber wenig praxistauglich. Denn du simuliert ja einen neuen Internet zugang, damit geht in der Zeit auf dem PC nichts mehr was internet braucht. (Mail-Programm usw). Auch die Resourcen dafür sind nicht ohne, du musst ja immerhein ein Modem, einen DHCP-Server, einen DNS-Server, einen Webserver bereitstellen und das nur für ein wenig Konfig?
Peter II schrieb: > Denn du > simuliert ja einen neuen Internet zugang, damit geht in der Zeit auf dem > PC nichts mehr was internet braucht. Das muss nicht so sein, wird dieser neue Zugang so konfiguriert, daß die Option "Standardgateway für Remotenetzwerk verwenden" deaktiviert wird, geht's auch gleichzeitig mit der bestehenden Netzwerkverbindung. Allerdings nur, solange der per simuliertem Modem angeschlossene Kram IP-Adressen aus einem sonst ungenutzten Subnet verwendet.
Rufus Τ. Firefly schrieb: > Das muss nicht so sein, wird dieser neue Zugang so konfiguriert, daß die > Option "Standardgateway für Remotenetzwerk verwenden" deaktiviert wird, es soll ja für den Nutzer einfacher werden, wenn er erstmal 10 Seiten doku lesen muss wie er den zugang zu dem Board einzurichten hat dann vergeht ihn bestimmt die lust. Welche Proxy einstellung verwendet windows eigentlich wenn gleichzeit eine RAS und WLAN verbindung besteht? Der Browser kann eigentlich nicht entscheiden über welcher Leitung die Daten rausgehen. Denn die IP kann ja auch inter den Proxy existieren.
Klaus, genau das will ich ja machen. Auf dem Board ist eine statische HTML-Site gespeichert, wo die Konfig angezeigt und editiert werden kann. Ich habe es zwar soweit schon implementiert, dass das Board von sich aus eine auf den PC eingehende Verbindung via SLIP aufbaut, ich kann dann das Board auch anpingen etc., aber in Windows 7 ist SLIP nicht mehr dabei. Deshalb muss ich auf PPP ausweichen, und dazu muss ich so tun als wäre ich ein Modem. DHCP und all der Kram ist eh schon drin, auch DNS und so weiter, weil das auch noch anderweitig gebraucht wird.
Tobias Plüss schrieb: > DHCP und all der Kram ist eh schon drin, auch DNS > und so weiter, weil das auch noch anderweitig gebraucht wird. dann hat das boad also Netzwerk? Wenn ja warum dann nicht gleich darüber machen?
Weil es ein Bluetooth-Netzwerk ist, und nicht jeder Kunde die Lizenz hat, diese Bluetooth-Option zu benutzen.
Tobias Plüss schrieb: > Weil es ein Bluetooth-Netzwerk ist, und nicht jeder Kunde die Lizenz > hat, diese Bluetooth-Option zu benutzen. Schöne neue Welt. facepalm
Tobias Plüss schrieb: > Was muss ich noch alles implementieren, damit der Controller sich aus > PC-Sicht wie ein Modem verhält? Kannst du auf PC-Seite einen eigenen Modem-Treiber vorsehen (also: INF-File mit eigenem Set an AT-Komandos für den mitgelieferten Modem-Treiber)? Oder musst du ein existierendes Modem (mitgelieferter Treiber) inkl. dessen AT-Command-Sets emulieren?
Peter II schrieb: > Welche Proxy einstellung verwendet windows eigentlich wenn gleichzeit > eine RAS und WLAN verbindung besteht? Welcher Proxy? Da ist kein Proxy, jedenfalls nicht, solange sich jemand so etwas nicht einrichtet.
Hmm, also ich bin nun schon ein wenig weiter. Richtet man im Windows eine Modemverbindung ein und klickt auf "Verbinden", dann sender der PC über die RS-232 erst mal nur den String "CLIENT". Darauf muss man dann mit "CLIENTSERVER" antworten, ab diesem Zeitpunkt läuft die Kommunikation dann im PPP-Protokoll. Der lwip hat dieses glücklicherweise bereits integriert, ich muss also nur das, was an der seriellen eintrifft, an den lwip weiterleiten, dann gehts. Windows meldet dann: "Der Computer wird im Netzwerk registriert", dann blitzt kurz das Symbol auf "Netzwerkverbindung hergestellt". Allerdings bricht die Verbindung sofort wieder ab, mit der Meldung, dass dem Computer (also Windows) keine Netzwerkadresse zugeteilt wurde. Ein Blick in Wireshark hat dann ein wenig Licht ins Dunkel gebracht: Windows fragt das gefakte "Modem" mehrmals nach einer IP, bekommt aber keine und trennt die Verbindung dann. Die Frage ist jetzt noch, wie ich von meiner Software her dem Clienten, der da connecten möchte, eine IP zuweise :-/
Ja, natürlich, nur: wenn der PC, von dem aus ich verbinden möchte, bereits im LAN ist? Was darf ich ihm für eine Netzwerkadresse zuweisen? Ich kann ja nicht wissen, ob der PC bereits eine LAN-Verbindung hat und somit in einem Netzwerk ist. Angenommen, der PC habe im LAN die IP 192.168.1.45. Wenn ich nun von meinem Board aus zufällig dieselbe IP zuweise - dann hat der PC zwei Netzwerkadapter mit gleichen IPs. Was macht er dann? Oder noch schlimmer: Ich weise dem PC irgend eine IP zu, die zufälligerweise nicht existiert. Mir selber muss ich aber ja auch eine IP zuweisen - was, wenn die IP, die ich mir selber zuweise, bereits im Netzwerk existiert? Angenommen, der PC vom Kollegen nebenan hat 192.168.1.33, und mein Controllerboard, das sich als Modem bei meinem PC angemeldet hat, hat nun auch 192.168.1.33. Was passiert, wenn ich nun von meinem PC aus einen Ping an die genannte Adresse absende? Auf welchem Adapter soll der PC das Paket denn dann verschicken? Auf beiden? Was passiert dann, wenn er von beiden Rechnern eine Antwort bekommt?
Also Du musst da zwischen unterschiedlichen Dingen unterscheiden. Du willst eigentlich "das Internet" simulieren. Das Modem selbst macht eigentlich nicht viel. Um das zu simulieren musst Du nur auf alle eingehenden Zeilen die mit "at" oder "AT" beginnen mit "OK" antworten. Kommt eine Zeile mit "atd" am Anfang, so musst Du erst "OK" und dann "CONNECT" ausgeben, dann ist das so als ob die Verbindung bestünde. Abgebrochen wird die mit 3 Sekunden warten "+++" 3 Sekunden warten. Damit schaltest Du wieder in den Befehlsmodus um. Im Datenmodus musst Du nun ein Protokoll sprechen. Im einfachsten Falle wäre das SLIP, da musst Du aber alle Einstellungen selbst einstellen. Du kannst auch PPP verwenden, da werden die Einstellungen mit übertragen. Das ist aber komplizierter. Wichtig ist in beiden Fällen, dass Du keinen "Default Gateway" einstellst, sonst gibts Probleme mit dem normalen Internetzugang. Aber ich würde für Deinen Anwendungsfall einfach eine Benutzeroberfläche per Terminalemulation machen. Ein VT100 kompatibles Terminalprogramm gibts für praktisch jeden Rechner und damit kann man schon viel machen. Und es ist eine echte "Plug and Play"- Lösung.
Warum, wenn du keine spezialisierte Host-Software möchtest, damit das Gerät die Kontrolle behält, baust du nicht einen http<->UART Tunnel für den PC? Es muss nur einen Token geben, der zwischen http-Tunnel und "Terminal-Interface" umschaltet.
Tobias Plüss schrieb: > Richtet man im Windows eine Modemverbindung ein Hallo, es gibt längst einen etablierten Industrie-Standard, den kennt jeder, der eine Fritzbox oder einen Druckserver hat: die sind im Netzwerk als http-Server erreichbar und präsentieren eine Website zur Konfiguration. Alternativ ist meist noch ein Telnet-Zugriff möglich, auch über eine serielle Schnittstelle, sofern eine vorhanden ist. Das aber nur für Notfälle, benutzt wird normalerweise nur der Web-Zugriff. Alles andere ist proprietäres Gebastel und strikt abzulehnen, weil nicht sofort und intuitiv bedienbar. Lehrgänge zur Konfiguration sind Vergangenheit und ein ausreichender Grund, was moderneres zu kaufen. Gruss Reinhard
Reinhard Kern schrieb: > es gibt längst einen etablierten Industrie-Standard, den kennt jeder, > der eine Fritzbox oder einen Druckserver hat: die sind im Netzwerk als > http-Server erreichbar und präsentieren eine Website zur Konfiguration. merkwürdig, unser Heizung hat keine Webseite, auch unsere Telefonanlage nicht. Wenn das Gerät kein Netwerk anschluss hat, dann erwarte ich auch keinen Webserver. Es gibt genug Geräte die über eine Konfig-Software verwaltet werden.
Mit socat geht es wohl nicht: http://stackoverflow.com/questions/5890505/socat-tunnel-ip-through-tty
Also, PPP ist ja bereits implementiert, und Windows kann mit dem gefakten Modem ja auch kommunizieren! Ich richte eine Verbindung ein wie folgt: - Netzwerkumgebung - Neue Verbindung - Erweiterte Verbindung - Verbindung direkt mit anderem Computer Erstellt man eine solche Verbindung, dann erscheint beim Öffnen selbiger wie bei einer Modemverbindung der Einwähldialog, wo man eine Nummer, einen Benutzernamen und ein Passwort eingeben kann. Ich habe alle Felder leer gelassen, später könnte ich dann da evtl. den Benutzernamen und das Kennwort noch auswerten auf meinem Gerät, um z.B. unterschiedliche Zugangsberechtigungen zu realisieren (z.B. Kunden dürfen nur bestimmte Einstellungen ändern, oder neue Firmware herunterladen, ein Supporter hat einen anderen Zugang, wo er mehr Berechtigungen hat etc). Die Verbindung lässt sich also bereits herstellen! Nur bricht Windows halt wieder ab, weil es keine IP zugewiesen bekommt. Christian Bergers Post bringt es eigentlich genau auf den Punkt, was ich machen möchte: Das Ding soll sich wie ein Computer verhalten, und der ist mit dem PC über eine PPP-Verbindung verbunden. Greift man auf die IP meines Geräts über den Webbrowser zu, dann kann man auf eine HTML-Site zugreifen.
Windows will vermutlich default-route/DNS und ähnliche Sachen erfahren. Dummerweise will es diese nicht über DHCP, sondern über PPP/IPCP. d.H. DHCP weg, stattdessen PPP entsprechend erweitern. Zum debuggen vielleicht hilfreich: Erstmal für die PC-Gegenstelle den Unix-PPPD verwenden, der lässt sich zu äußerst detailierten Logausgaben überreden.
Εrnst B✶ schrieb: > Zum debuggen vielleicht hilfreich: Erstmal für die PC-Gegenstelle den > Unix-PPPD verwenden, der lässt sich zu äußerst detailierten Logausgaben > überreden. das kann windows aber auch. NETSH lässt grüßen.
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.