Sur les périphériques série USB Linux, créez deux alias sur son port série:
/dev/tty*
et/dev/serial/by-id/<my_usb_device_id>
Existe-t-il un moyen sur OSX d'identifier un port série par l'ID de périphérique USB? Dans System Profiler et en utilisant, ioreg -p IOUSB
je peux voir l'identifiant, mais cela ne me rapproche pas davantage de la connexion en utilisant cet identifiant.
Nous développons plusieurs éléments matériels et il est difficile de les tester car chaque fois que je connecte un appareil différent, je dois vérifier la configuration du port série du logiciel de test, car sous OSX le tty.*
nom du port dépend du port de mon ordinateur, pas sur l'appareil. Les gars qui exécutent Linux utilisent volontiers le /dev/serial/by-id/<my_usb_device_id>
port pour distinguer automatiquement les différents appareils.
En fait, vous devriez pouvoir trouver le mappage de l'ID de l'appareil / numéro de série au nom du port série à l'aide
ioreg
. Essayez cette commande:Il imprimera tous les périphériques hôtes USB et il imprimera toutes les propriétés du sous-arbre de chaque périphérique. Vous devriez pouvoir trouver votre appareil au niveau supérieur en fonction de son ID ou de son numéro de série. Une fois que vous l'avez trouvé, vous devriez pouvoir parcourir son sous-arbre et éventuellement trouver un objet de classe
IOSerialBSDClient
. Cela contiendra la propriétéIODialinDevice
qui est ce que vous voulez.Si vous souhaitez ensuite le faire par programme, vous pouvez ajouter l'
-a
option à laioreg
commande, qui produira une version plist de la sortie ci-dessus. Vous pouvez ensuite analyser cela avec une bibliothèque telle queplistlib
.Vous pourriez trouver utile d'utiliser l'application IORegistryExplorer pour aider à visualiser cela, car la
ioreg
sortie complète est légèrement difficile à lire! Ceci est disponible dans le package "Hardware IO Tools" de XCode que vous pouvez trouver en recherchant les téléchargements sur le site des développeurs Apple . Voici à quoi cela ressemble sur mon appareil:la source