Bonjour à tous,
Je travaille actuellement sur un projet où on utilise des Eeepc qui se connectent sur un réseau Ethernet via une clé infrarouge en usb et un routeur IRDA/Ethernet. (système clarinet pour ceux qui connaissent). Les Eeepc voyagent sur une cellule de production, arrivent devant un routeur positionné sur la cellule, se connectent via infrarouge et basculent sur le réseau local grâce au routeur pour faire court. Les connexions /déconnexions infrarouge doivent donc être relativement rapides.
Le problème est qu'au moment de la déconnexion, la clé infrarouge mets un temps fou à se couper (environs 15 secondes), surement à cause du timeout qui permet notamment de reprendre le transfert en cas de coupure. Apparemment, ce timeout n'est pas accessible ou tout du moins impossible de trouver une documentation dessus ou un accès. Après avoir essayé pas mal de méthodes, je commence à désespérer. Je pensais donc couper cette connexion en désactivant l'IRDA ou le port USB ou se trouve cette clé infrarouge. Mais la encore, les bibliothèques WMI 32 permettent de récupérer l'état de la connexion ou du port mais pas de l'ouvrir ou le fermer quand on veut.(Aucune méthode implémentée et "l'aide" du site microsoft est inexistante :s.)
Donc voila je voulais savoir si quelqu'un connaissait un moyen pour déconnecter un périphérique USB (et pouvoir le réactiver par la suite donc pas une "éjection") ou couper / réactiver une connexion infrarouge. J'ai trouvé quelques codes accèdant en C à des dll gérant l'usb mais uniquement dans une optique transfert de données via ce port et pas dans une optique connexion / déconnexion du périphèrique lui même. Donc je commence à être à court d'idée et je me dis que quelqu'un à déjà du avoir ce problème.
Merci d'avance et bonne journée à vous
Edit : J'ai oublié de préciser que c'était sous Win XP.
Partager