javax.comm:エラーデバイスが切断されます
-
13-09-2019 - |
質問
私はjavax.commを使用して、COMポートからデータを読み込み、アプリケーションを持っています。
私が午前問題は、私はから読んでいるデバイスが予期せずに切断された場合、私は「エラー5 WaitCommEvent」と言うコンソールでエラーを取得するということです
私は周りを見回しているとこのことについてどんな役に立つ情報を見つけることができません。私はので、私は、私はすべてのイベントを受信する必要がありますが、私はこの1つをキャッチしていないと思うtrueにnotifyOn *メソッドのすべてを設定しています。
それはどこかjavax.commパッケージでなければなりませんので、プリントアウトされたエラーメッセージはどこにでも私のコード内から来ていません。誰もが、それが発生したとき、私は適切にCOMポートを閉じることができるように、このエラーを処理する方法を教えてもらえます?
ありがとうございます。
解決
、私は解決策を見つけました。私はjavax.comm APIを使用していましたが、私はRXTX APIに置き換え、問題を解決するために( http://rxtx.qbang.org/wiki/index.php/Main_Pageする)。コードの変更は必要ありませんが、現在、デバイスが切断されたとき、私は、「基礎となる入力ストリームは、ゼロバイトを戻した」メッセージでIOExceptionが受信しました。私はそのメッセージを処理し、新しいスレッドをキックオフ。新しいスレッドでは、私はport.close()とport.removeEventListener()を呼び出します。これらの2つの呼び出しが新しいスレッドで実行しなければならないか、またはアプリケーションがハングします。
他のヒント
私たちは仕事にjavax.commを得ることに多くの時間を使って、私たちの場合には、それは(いくつかのWindows 7のコンピュータ上)の問題を引き起こしていたCOMドライバであることがわかってきました。 ドライバはまた、あなたの問題であり、あなたがWindows 7またはVistaの可能性を使用している(とあなたは多産/ LOGILINKのserielケーブルを使用している)場合、これは解決策になるかもしれません:) http://www.akosta.dk/category/technical-notes/する
あなたはそれが仕事を得る願っています!
この質問はほぼ2歳ですが、多分もう一つは、可能な解決策を必要とします:
私はjava.commと同じ問題を抱えていた: "WaitCommEvent:エラー5を" COMポートが切断されている場合、このメッセージは、複数回表示されます しかしSERIALPORTオブジェクトがクローズされていません。
私のソリューションは、SERIALPORTのIOストリームの読み取り/書き込みが例外をthrowed場合SERIALPORTオブジェクトをクローズすることでした。