usb-seriell Adapter programmieren
-
Hallo,
ich habe ein Programm für den Betrieb der seriellen Schnittstelle geschrieben, funkt auch so weit so gut. Nun habe ich auf meinem Notebook keine serielle Schnittstelle. Natürlich aber reichlich USB. Habe mir einen USB-seriell Adapter gekauft der auch erkannt wird (laut Hardwareinfo)
Kann ich nun einfach mein bestehendes Programm von /dev/ttySx auf /dev/usb/ttyUSBx umstellen, oder muss ich noch etwas beachten ?
Danke
worst_case
-
Keine Ahnung, aber wenn du es herausgefunden hast, dann setze mal dein Ergebnis in diesen Thread, denn mich würde das auch interessieren.
Martin
-
Hallo,
ich habe es nun ausprobiert. Bis jetzt funktioniert alles super (2 Tage Dauertest mit Fehlerauswertung).
Ich ändere die Bits/Baudrate/Terminaldevice usw. aber alles kein Problem, obwohl ich sehr auf Geschwindigkeit achte, wegen Quittungsverzug im Telegrammverkehr.
Das hätte ich wirklich nicht gedacht. Es ist auch noch eine CD Dabei mit einem Source dabei...habe aber nicht's benötigt. Einfach anstecken und geht.Ich muss aber auch dazusagen das mein Adapter kein 5 Euro Gerät ist...vielleicht ist es hier anders. Meiner hat immerhin stolze 22 Euro gekostet. Zwar nicht viel wenn man eine serielle Schnittstelle braucht aber immer noch teurer als Ebay.
Gruß
worst_case
-
worst_case schrieb:
Ich muss aber auch dazusagen das mein Adapter kein 5 Euro Gerät ist...vielleicht ist es hier anders.
Gib doch bitte mal die genaue Typenbezeichnung und Hersteller an.
Martin
-
Dies Adapter und die Treiber sind ja dazu da eine Software mit nur Seriellunterstützung auf Rechnern ohne Seriellport zu betreiben.
Der Teriber setzt deine Seriellbefehle in USB um.
-
Hallo Martin,
hier der Typ: USB 2.0 to RS232 Adapter
Digitus
www.digitus.infoEs steht zwar nicht auf der Packung, aber für Linux ist auch Software dabei.
Gruß
worst_case
-
Morgen,
Unix-Tom schrieb:
Dies Adapter und die Treiber sind ja dazu da eine Software mit nur Seriellunterstützung auf Rechnern ohne Seriellport zu betreiben.
Der Treiber setzt deine Seriellbefehle in USB um.
Das hätte ich auch einmal gedacht. Das ist der einzige Umsetzer von dreien der funktioniert. Alle funktionieren unter Windows, aber nur einer unter Linux. Mir kommt es so vor wie bei den WIN-Modems. Bei manchen USB-seriell Adaptern läuft ein Teil der Software auf dem WIN-Rechner. (Nur eine Vermutung)
Wenn ich schon mal dabei bin. Ich habe jetzt festgestellt das mein Programm, wenn ich ttyUSB0 benutze nur mit root-Rechten läuft. Muss ich dann einfach die Rechte von ttyUSB0 ändern oder kann ich alle devices auf einmal ändern, damit users benutzen kann ?
Was ist besser ...sinnvoller.Gruß
worst_case
-
worst_case schrieb:
Muss ich dann einfach die Rechte von ttyUSB0 ändern oder kann ich alle devices auf einmal ändern, damit users benutzen kann ?
Wir können nicht wissen, worauf genau Dein Programm zugreift.
Aber Du kannst es mit eniem "strace -e open programm" herausfinden.
-
nman schrieb:
Wir können nicht wissen, worauf genau Dein Programm zugreift.
Aber Du kannst es mit eniem "strace -e open programm" herausfinden.Hallo,
strace -> wieder was gelernt (kommt gleich als Notiz in mein schlaues Buch)
Die Ausgabe sieht so aus.
strace -e open ./rk3964
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/usr/lib/libstdc++.so.5", O_RDONLY) = 3
open("/lib/tls/libm.so.6", O_RDONLY) = 3
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
open("/lib/tls/libc.so.6", O_RDONLY) = 3
open("/srv/www/htdocs/data/parameter", O_RDONLY) = 3
open("/dev/usb/ttyUSB0", O_RDWR|O_NONBLOCK|O_NOCTTY) = -1 EACCES (Permission denied)
Das Device /dev/usb/ttyUSB0 kann nicht ge?fnet werden!
Das Device /dev/usb/ttyUSB0 ist kein Terminal-Device !
Fehler beim ?fnen der SchnittstelleSo wie es aussieht liegt es am öffnen des ttyUSB0 devices.
Aber wie kann ich das umgehen ?Danke
worst_case
-
Naja, einfach Berechtigungen korrigieren.