Je travaille avec une distribution Linux (Raspbian) et j'ai deux adaptateurs série USB que je me connecte au microcontrôleur. Chaque fois que je connecte des adaptateurs, les ports série "/ dev/ttyusb0" et "/ dev/ttyusb1" apparaissent; Ici "/ dev/ttyusb0" est l'adaptateur physiquement connecté en premier (identifié d'abord par le système).
Maintenant, je cherche un moyen de déterminer quel adaptateur est lequel en cas de redémarrage d'un microcontrôleur. C'est à dire. Les deux adaptateurs sont restés branchés sur leurs ports USB et je ne peux pas débrancher physiquement/revenir à la force de l'adaptateur "USB0".
La recherche de base m'a conduit à ces commandes (images pour référence):
ls /dev/ttyUSB*
Pour énumérer les ports USB-série actifs.
lsusb
Pour plus d'informations sur les bus USB et les périphériques connectés.
Existe-t-il un moyen de relier ces deux résultats (ou une alternative) pour déterminer ce dont j'ai besoin? Par exemple, dans les images ci-dessus "/ dev/ttyusb0" est "Device de bus 001 008: ID 1A86: ..." Mais comment constater que sur le logiciel (de préférence en utilisant python mais a Le script shell pourrait fonctionner aussi).
Merci
Puisque vous avez mentionné que vous voulez le faire de Python, pyudev
a le code d'exemple suivant pour accéder à tout udev
sait sur un périphérique identifié par un fichier de périphérique:
from pyudev import Context, Device
context = Context()
device = Devices.from_device_file(context, '/dev/sda')
Je crois que cela devrait fonctionner très bien avec /dev/ttyUSB0
Aussi.
Voir https://pydudev.readthedocs.io/en/latest/api/pyudev.html#yledev.devices.from_device_file
Une fois que vous avez l'instance UDEM de l'appareil In python, vous pouvez accéder à device.attributes
Et device.properties
Pour obtenir une mine d'informations, y compris les descripteurs Vid, PID, String, etc. sur. La documentation dit que
toutes les méthodes et opérateurs de dictionnaires bien connus (par exemple
.keys()
,.items()
,in
) sont disponibles pour accéder aux propriétés du périphérique.