com schnittstelle bei Linux eine IP-Adresse verpassen

Persönliche Seite #511101
Lesenswert?

Kann man bei Linux eine serielle Schnittstelle eine IP verpassen?
Und wenn ja, wie?
Vielleicht weire Infos?

Hintergrund:

Wollte gern über µC eine HTML-Seite über z.B. /dev/ttyS0 Ausgeben und 
auf dem Webbrowser anzeigen lassen. Allso  http://192.168.0.20
Dann wird die Schnittstelle abgefragt und die daten kommen dann vom µC.

Geht das ?
Persönliche Seite #511173
Lesenswert?

@Ulrich: Ist doch eine Idee :-) Windows habe ich auch - braucht da noch 
was dazu?

@Zacc: Was für ein Serverprogrämmchen meinst du ?
Ein Script der als Daemon gestartet wird im TCP-Wrapper?
Wie läuft dann die IP-Bindung zur Seriellen Schnittstelle?

@Mattias : Auch gute Idee , wollte lieber eine IP nehmen wenn es möglich 
ist
du meist das CGI Script gibt dann eine Anforderung am µC weiter , 
welcher dann die Daten zurück gibt?
Gast #511208
Lesenswert?

Wenn du dem Controller partout ein TCP/IP verpassen willst, dann ganz 
normal per SLIP oder PPP.

Wenn es nur darum geht, dass er scheinbar eine eigene IP-Adresse hat, 
dann kannst du auch einen virtuellen Webserver auf einem IP-Alias auf 
der Linux-Maschine laufen lassen, und dahinter ein CGI verbergen. 
Erspart das TCP/IP auf dem Controller.
Gast #511334
Lesenswert?

Man muesste meines Erachtens am Besten selbst was schreiben wenn's nur 
darum geht, dass der Controller einen ASCII bandwurm schickken kann, der 
dann als HTML page im browser erscheinen kann. Man muesste die HTTPGet 
anfragen ueber die serielle Schnittstelle schicken, zurueck kommt 
jeweils eine Seite. Das Prograemmchen haette ein TCP Port, zB 1234 und 
der Browser wuerde mit localhost:1234/index.html, dieses Prograemmchen 
nach der Seite index.html fragen. Das Prograemmchen waere demnach ein 
Portserver.
Etwas in dieser Richtung ?

Z
#511356
Lesenswert?

Avr Nix wrote:
> Kann man bei Linux eine serielle Schnittstelle eine IP verpassen?


Ich sach ma, das ist vollkommen egal, ob Linux, DOS oder Windows.

Die UART ist nur ne pure Byte-Schubser Schnittstelle ganz ohne 
Protokoll, der kannst Du nix zuweisen (außer die Baudrate).

Du mußt entweder auf dem MC einen Server einrichten, der den ganzen 
Protokoll-Schrunz inclusive IP macht oder auf dem PC.


Deshalb wird auch die UART so gerne von Anfängern benutzt, weil sie 
keinerlei Protokoll-Overhead hat im  Gegensatz zu Ethernet oder USB.
Einfach ranstöpseln, Terminalprogramm starten und fertich.


Peter
Gast #511374
Lesenswert?

Also, was Du suchst nennt sich "netcat".

Kleines Shell-Script ringsrum das die serielle Schnittstelle öffnet und 
stdin/stdout von Netcat mit der seriellen Schnittstelle verbindet.

Netcat öffnet dann einen TCP-Port und gibt den Datenverkehr über 
stdin/stdout aus. Die sind aber mit der seriellen Schnittstelle 
verbunden. Also das was Du willst.

Sollte out-of-the-box gehen.
Persönliche Seite #511399
Lesenswert?

@Zacc: ja in dieser Richtung geht das HTML wird quasi auf den µC erzeugt 
und über die Serielle Schnittstelle geschickt. HTTPGet ? Ist das nicht 
vom HTT Protokoll eine Abfrage der IP? Wie soll das Funktionieren?

@all
Wenn ich diese IP eingebe soll dann entsprechend die Seite angezeigt 
werden.

Klappt das dann auch mit Netcat die Serielle Schnittstelle abfrage, da 
kenne ich noch nicht.

Browser <-- IP-ADR <-- Netcat <-- ttyS0

Es soll keine Termialanwendung werden, sondern über den Browser 
Funktionieren.
Admin Persönliche Seite #511406
Lesenswert?

Schreib folgendes Programm:
1) akzeptiere TCP-Verdindung
2) lies bis "\r\n\r\n" (Ende der Browser-Anfrage)
3) sende "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n"
4) lies aus /dev/ttyS0 bis "</html>"
5) sende die gelesenen Daten
6) schließe Verbindung

Beispiel (Ruby):
1
require 'socket'
2

3
server = TCPServer.new(8000)
4

5
while s = server.accept
6
  s.gets("\r\n\r\n")
7
  s.write("HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n")
8
  s.write(File.open('/dev/ttyS0').gets('</html>'))
9
  s.close
10
end
Gast #511417
Lesenswert?

> Deshalb wird auch die UART so gerne von Anfängern benutzt, weil sie
> keinerlei Protokoll-Overhead hat im  Gegensatz zu Ethernet..

bei ethernet braucht man im einfachsten fall auch kein protokoll, 
sondern kann rohdaten senden und empfangen

> ja in dieser Richtung geht das HTML wird quasi auf den µC erzeugt
> und über die Serielle Schnittstelle geschickt. HTTPGet ? Ist das nicht
> vom HTT Protokoll eine Abfrage der IP? Wie soll das Funktionieren?

wenn du auf tcp und ppp oder slip verzichten willst, dann brauchst du 
aber mindestens HTTP auf dem µC, denn irgendwie muss der PC die seiten 
ja anfordern und vielleicht was zurückschicken.

wenn du eine seite mit frames oder bildern o.ä hast, dann musst du auch 
noch mehrere simultane connections handlen, denn ein browser holt sich 
das zeug meistens parallel.

wenn der µC nicht zu klein ist, dann würde ich ihm die volle packung, 
also ppp/tcp/http verpassen. der vorteil dabei ist, dass es dann keine 
rolle spielt, ob du auf dem PC linux, windoofs, mac-os, bsd oder 
sonstwas verwendest und welchen browser du benutzt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren