Bonjour,
tout nouveau sur le forum je viens solliciter votre aide car j'ai un petit projet qui me demande de mettre en place une communication basique, série, via les ports USB de mon pc pour dialoguer avec un microcontrôleur.
les choses à savoir :
- je souhaite faire tourner ma petite application sous linux
- le microcontrôleur est branché sur un port USB du pc, port qui n'est pas déterminé pour toujours (je souhaite pouvoir brancher mon petit module sur un autre port USB quand je l'envie m'en prend sans qu'au prochain démarrage de mon application je ressorte avec une erreur du genre "le prog n'a pas trouvé le module sur /dev/ttyS0" par exemple).
- même si je suis branché à l'aide d'un cable USB, la communication elle est une communication série toute bête (pas modem ou quoi que ce soit d'autre de plus complexe...)
Je me suis déjà bien goinfré avec le man termios donc je suis maintenant capable d'utiliser mes ports série. Mais la question qui subsiste c'est comment procéder à une détection automatique de mon périphérique ? je n'ai pas envie de commencer à envoyer n'importe quoi à une pauvre clé usb branché là ou là croyant que je suis sur mon microcontrôleur ! Sans compter qu'en moyenne il y a quasiment 50 ttyS* alors si j'envoie dans le vide c'est pas top non plus....
J'ai pensé qu'il fallait déjà lister tous les ports usb disponibles sur le pc avant de commencer. Il y a donc la commande lshw que je peux solliciter avec un appel système exec, puis je fais le tri dans le fichier de sortie. Mais je trouve ça un peu lourd surtout que je ne m'intéresse vraiment qu'à 5% du fichier...
Ensuite, je pensais ouvrir à tour de rôle les ports usb matériel trouvés et par un moyen ingénieux (que je n'ai pas encore véritablement trouvé) identifier mon microcontrôleur.
L'idéal serait quand même que lorsque je branche mon module, le pc m'envoie une notif comme lorsque je branche n'importe quel autre clé usb ou souris etc... bien que ces périphériques utilisent le protocole USB....
Alors avez vous des pistes, des idées pour solutionner le problème ? Sinon je suis bon pour laisser indéfiniment branché mon module sur le même port usb et identifier le port à coup de tests successifs....du pas propre pour moi, en tous cas ça ne répond pas au cahier des charges de mon application !
Merci beaucoup ! Hugo
Partager