2009-04-22 7 views
2

J'ai une application qui lit les données d'un port de communication à l'aide de javax.comm.javax.comm: Erreur lors de la déconnexion du périphérique

Le problème que j'ai est que si l'appareil que je lis est déconnecté de façon inattendue, je reçois une erreur dans la console qui dit « WaitCommEvent: Erreur 5 »

J'ai regardé autour et ne peut trouver des informations utiles à ce sujet. J'ai défini toutes les méthodes notifyOn * sur true, donc je pense que je devrais recevoir tous les événements mais je ne suis pas en train d'attraper celui-ci. Le message d'erreur qui est imprimé ne vient pas de n'importe où dans mon code, donc il doit être dans le paquet javax.comm quelque part. Quelqu'un peut-il me dire comment gérer cette erreur afin que je puisse fermer le port com correctement quand il se produit?

Merci!

Répondre

2

Si quelqu'un est intéressé par cela, j'ai trouvé une solution. J'utilisais l'API javax.comm mais pour résoudre le problème je l'ai remplacé par rxx api (http://rxtx.qbang.org/wiki/index.php/Main_Page). Aucun changement de code n'était nécessaire mais maintenant, lorsque le périphérique est déconnecté, je reçois une exception IOException avec le message "Flux d'entrée sous-jacent renvoyé zéro octet". Je gère ce message et lance un nouveau fil. Dans le nouveau thread j'appelle port.close() et port.removeEventListener(). Ces deux appels doivent être effectués dans un nouveau thread ou l'application va se bloquer.

2

Nous avons utilisé beaucoup de temps pour faire fonctionner javax.comm et constaté que dans notre cas, c'était le pilote COM qui causait les problèmes (sur plusieurs ordinateurs Windows 7). Si le pilote est aussi votre problème et que vous utilisez Windows 7 ou Vista peut-être (et que vous utilisez un Prolific/Logilink câble seriel), alors cela pourrait être la solution :) http://www.akosta.dk/category/technical-notes/

Espoir vous obtenez à travail!

2

Cette question est près de 2 ans, mais peut-être un autre a besoin d'une solution possible:

J'ai eu le même problème avec java.comm: « WaitCommEvent: Erreur 5 » Ce message apparaît plusieurs fois, si le Le port COM est déconnecté, mais l'objet SerialPort n'est pas fermé.

Ma solution était de fermer l'objet SerialPort si la lecture/écriture des flux d'E/S du SerialPort renvoyait une exception.

Questions connexes