Auf Linux-Geräten mit seriellem USB-Anschluss erstellen Sie zwei Aliase für den seriellen Anschluss:
/dev/tty*
und/dev/serial/by-id/<my_usb_device_id>
Gibt es unter OSX eine Möglichkeit, einen seriellen Anschluss anhand der USB-Geräte-ID zu identifizieren? Sowohl im System Profiler als auch unter Verwendung von ioreg -p IOUSB
kann ich die ID sehen, aber das bringt mich der Verbindung mit dieser ID nicht näher.
Wir entwickeln verschiedene Hardwarekomponenten und es ist sehr schwierig, sie zu testen, da jedes Mal, wenn ich ein anderes Gerät anschließe, die Konfiguration der seriellen Schnittstelle der Testsoftware überprüft werden muss, da der tty.*
Name der Schnittstelle unter OSX vom Anschluss auf meinem Computer abhängt. nicht auf dem Gerät. Die Jungs, die Linux verwenden, nutzen den /dev/serial/by-id/<my_usb_device_id>
Port gerne, um automatisch zwischen den verschiedenen Geräten zu unterscheiden.
Eigentlich sollten Sie in der Lage sein, die Zuordnung von Geräte-ID / Seriennummer zum Namen der seriellen Schnittstelle mit zu finden
ioreg
. Versuchen Sie diesen Befehl:Es werden alle USB-Host-Geräte gedruckt und alle Eigenschaften aus dem Teilbaum der einzelnen Geräte ausgedruckt. Sie sollten in der Lage sein, Ihr Gerät anhand seiner ID oder Seriennummer auf der obersten Ebene zu finden. Sobald Sie es gefunden haben, sollten Sie in der Lage sein, den Teilbaum zu durchsuchen und schließlich ein Objekt der Klasse zu finden
IOSerialBSDClient
. Dies wird die Eigenschaft enthalten, dieIODialinDevice
Sie wollen.Wenn Sie dies dann programmgesteuert ausführen möchten, können Sie
-a
demioreg
Befehl die Option hinzufügen , die eine plist-Version der obigen Ausgabe ausgibt. Sie können dies dann mit einer Bibliothek wie zplistlib
.Es kann hilfreich sein, die IORegistryExplorer-App zu verwenden, um dies zu veranschaulichen, da die vollständige
ioreg
Ausgabe nur schwer lesbar ist! Dies ist im XCode-Paket "Hardware IO Tools" enthalten, das Sie in den Downloads auf der Apple-Entwicklerseite finden . So sieht es auf meinem Gerät aus:quelle