Nos dispositivos serial USB do linux, crie dois aliases para sua porta serial:
/dev/tty*
e/dev/serial/by-id/<my_usb_device_id>
Existe uma maneira no OSX de identificar uma porta serial pelo ID do dispositivo USB? Tanto no System Profiler quanto no uso ioreg -p IOUSB
, posso ver o ID, mas isso não me aproxima da conexão usando esse ID.
Estamos desenvolvendo várias peças de hardware e é difícil testá-las, pois toda vez que conecto um dispositivo diferente, preciso verificar a configuração da porta serial do software de teste, porque no OSX o tty.*
nome da porta depende da porta do meu computador, não no dispositivo. Os caras executando o linux estão felizes em usar a /dev/serial/by-id/<my_usb_device_id>
porta para distinguir automaticamente os diferentes dispositivos.
Na verdade, você deve encontrar o mapeamento do ID do dispositivo / número de série para o nome da porta serial usando
ioreg
. Tente este comando:Ele imprimirá todos os dispositivos host USB e todas as propriedades da subárvore de cada dispositivo. Você deve encontrar seu dispositivo no nível superior com base em seu ID ou número de série. Depois de encontrá-lo, você poderá verificar sua subárvore e, eventualmente, encontrar um objeto de classe
IOSerialBSDClient
. Isso conterá a propriedadeIODialinDevice
que é o que você deseja.Se você quiser fazer isso programaticamente, poderá adicionar a
-a
opção aoioreg
comando, que produzirá uma versão básica da saída acima. Você pode analisar isso com uma biblioteca comoplistlib
.Você pode achar útil usar o aplicativo IORegistryExplorer para ajudar a visualizar isso, pois a
ioreg
saída completa é um pouco difícil de ler! Está disponível no pacote "Hardware IO Tools" do XCode, que você pode encontrar pesquisando os downloads no site de desenvolvedor da Apple . Aqui está o que parece no meu dispositivo:fonte