En los dispositivos linux USB-serial, cree dos alias en su puerto serie:
/dev/tty*
y/dev/serial/by-id/<my_usb_device_id>
¿Hay alguna manera en OSX para identificar un puerto serie por la identificación del dispositivo USB? Tanto en System Profiler como en el uso ioreg -p IOUSB
puedo ver la identificación, pero eso no me acerca más a la conexión usando esa identificación.
Estamos desarrollando varias piezas de hardware y es difícil probarlas, ya que cada vez que conecto un dispositivo diferente necesito verificar la configuración del puerto serie del software de prueba, porque en OSX el tty.*
nombre del puerto depende del puerto en mi computadora, No en el dispositivo. Los chicos que ejecutan Linux están felizmente usando el /dev/serial/by-id/<my_usb_device_id>
puerto para distinguir automáticamente entre los diferentes dispositivos.
En realidad, debería poder encontrar el mapeo desde la ID del dispositivo / número de serie al nombre del puerto de serie usando
ioreg
. Prueba este comando:Imprimirá todos los dispositivos host USB e imprimirá todas las propiedades del subárbol de cada dispositivo. Debería poder encontrar su dispositivo en el nivel superior en función de su ID o número de serie. Una vez que lo haya encontrado, debería poder escanear a través de su subárbol y eventualmente encontrar un objeto de clase
IOSerialBSDClient
. Esto contendrá la propiedadIODialinDevice
que es lo que quieres.Si luego desea hacer esto mediante programación, puede agregar la
-a
opción alioreg
comando, que generará una versión simple de la salida anterior. Luego puede analizar esto con una biblioteca comoplistlib
.Puede que le resulte útil utilizar la aplicación IORegistryExplorer para ayudar a visualizar esto, ya que la
ioreg
salida completa es un poco difícil de leer. Está disponible en el paquete "Hardware IO Tools" de XCode que puede encontrar buscando las descargas en el sitio para desarrolladores de Apple . Así es como se ve en mi dispositivo:fuente