• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

USB-Modem und USB-Infarotsensor

Moin moin,
ich bin neu bei euch, das nicht ohne Grund :/.

Aber erstmal zu mir: Ich bin der Moritz, 22 Jahre alt und leidenschaftlich C# Programmierer. Beruflich habe ich neben SPS-Programmierung auch mit C# zu tun. Java kommt auch mal vor, oder PHP... Eigentlich mache ich alles ein bischen :]. Jetzt auch Linux :)!

Für die Arbeit möchte ich gerade ein Trafozähler per Infrarotleser auslesen.
Das ganze soll dann per LTE/UMTS über einen Tunnel(openVPN) weiterschickt werden.
Alle Parts in sich funktionieren super. Aber die 2 USB-Geräte(Modem-Stick und Infrarsensor) "blockieren" sich gegenseitig. Gerade beim Kaltstart verstehe ich das verhalten der USB-Geräte nicht.

- Kann mir einer erstmal grob erklären wie USB-Geräte sich verhalten wenn sie erkannt werden?
- Womit spricht man ein USB-Gerät genau an? Es ist doch einer dieser Bezeichnungen, oder? ttyUSB?, Device ?, z.B. 12d1:1506. Gibt es eine Lösung die mir den USB-Namen über den Hardwarenamen zurückgibt? Oder wie werden ähnliche fälle gelöst?

Ich würde hier gerne Protokolle und ähnliches vorstellen aber ich weiß gar nicht wo ich da anfagen soll...
Ich schätzte mal das ein Problem die Vergebung der Namen ist (ttyUSB0, ttyUSB1...)

Darum hoffe ich das einer aus meinen speerlichen Infos eine Idee zimmern kann... :/

lg
 
Versuch es mal mit lsusb in der Konsole. Auch dmesg ist nach dem Anschließen der Geräte durchaus gesprächig!

CU Freddie
 
du meinst also das C# bei dir ein Leiden schafft. Wundern würde es mich nicht. Das macht so ziemlich alles von M$. Nebenbei erwähnt ist C#, ein billiger Java Klon. Verwende besser C, C++ oder bleib dem Ursprung treu, dann gibts auch kein Leid. ;)

ttyUSB0 ist die Gerätedatei, über die daten über den Bus gejagt werden können.
12d1:1506 ist die VendorId:productId zum identifizieren des Geräts.

USB ist ein Bus und jedes Gerät hat an diesem Bus seinen Platz (Anschluss). Diese Anschlüsse (Ports) werden beim Systemstart abgefragt. Wenn dein Modem jetzt an Port 2 hängt und der Sensor an Port 1, dann wird der Sensors als erstes verwendet.
 
Moin moin & danke für die Tipps!
Ich habe den UMTS-Treiber zum Laufen gebracht. - Ein kleines Pythonscript durchsucht die Ausgabe von "lsusb" nach dem Gewünschten Gerätenamen und gibt die Device-Nr, VendorId und ProductId zurück.
Um dem Startbefehl des Infrarotsensors mit Parameter zu versorgen musste ich "dmesg" durchsuchen und den Namen der Gerätedatei herausfiltern. Leider lässt sich die USB-Parameter nur beim Reboot manipulieren. Also: Noch ein abschließender Reboot und es läuft.

Könnte ich eine Umleitung von "ttyUSBInfrarot" auf "ttyUSB?" realisieren? Also das zur Laufzeit der Traffic auf die entsprechende USB-Datei geleitet wird?

lg
 
Du kannst mittels Udev Regel, matcht auf der Produkt und Vendor id, einen Symlink auf die Gerätedatei (ttyUSBSensor -> ttyUSBInfrarot) setzen.
 
Oben