Question

J'ai une application qui lit les données à partir d'un port COM en utilisant javax.comm.

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 pas trouver toutes les informations utiles à ce sujet. J'ai mis tous les notifyOn * méthodes pour vrai, je pense que je devrais recevoir tous les événements mais je ne suis pas attraper celui-ci.

Le message d'erreur qui est imprimé ne vient pas de nulle part dans mon code 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!

Était-ce utile?

La solution

Si quelqu'un est intéressé, j'ai trouvé une solution. J'utilisais l'api javax.comm mais pour résoudre le problème, je l'ai remplacé par rxtx api ( http://rxtx.qbang.org/wiki/index.php/Main_Page ). Aucun changement de code étaient nécessaires mais maintenant lorsque l'appareil est déconnecté Je reçois un IOException avec le message « flux d'entrée sous-jacent zéro octets retourné ». Je gère ce message et coup d'envoi d'un nouveau thread. Dans le nouveau thread que j'appelle port.close () et port.removeEventListener (). Ces deux appels doivent être faits dans un nouveau thread ou l'application se bloque.

Autres conseils

Nous avons utilisé beaucoup de temps sur l'obtention javax.comm travailler et a constaté que dans notre cas, il a été le pilote COM qui a été à l'origine des 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 câble seriel Prolific / Logilink), alors cela pourrait être la solution :) http://www.akosta.dk/category/technical-notes/

Je espère que vous obtenez à travailler!

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 port COM est déconnecté, mais l'objet SerialPort est pas fermé.

Ma solution a été de fermer l'objet SerialPort si la lecture / écriture des flux d'entrées-sorties du SerialPort throwed une exception.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top