3

USB通信ポートを提供するFTDI2232Hを使用して、JavaでのシリアルI/O処理にrxtxを使用しています。1つの例外を除いて、これはうまく機能します。USBケーブルを抜いて、実行時にCOMポートが消えると、左右に例外が発生します。

java.io.IOException: No error in nativeavailable
at gnu.io.RXTXPort.nativeavailable(Native Method)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1427)
at gnu.io.RXTXPort$SerialInputStream.read(RXTXPort.java:1339)

また、ケーブルを再度接続しても、回復しません。

rxtxをUSB通信ポートの接続/切断で正しく動作させる方法はありますか?(rxtxメーリングリストに投稿しようとしましたが、奇妙な理由で、リストに登録していてもメッセージを送信できません。リスト管理者にメールを送信しましたが、応答がありません。)

そうでない場合、それを行う別のシリアルI / Oフレームワークはありますか?

4

2 に答える 2

0

良い。WM_DEVICECHANGE を使用し、C++ でコーディングして DLL を用意し、Java アプリケーションから JNI 経由でアクセスする..接続と切断の通知を受け取る

于 2010-03-12T09:24:33.223 に答える
0

その音で、これが Java で可能かどうかはわかりませんが、ブロードキャストされる Windows メッセージがあります - WM_DEVICECHANGEメッセージです。このメッセージをインターセプトする必要がある可能性が高く、デバイスのイジェクトの場合は、デバイスを正常にシャットダウンします。 rxtx コード。CDROM ドライブへの CD の挿入/取り出しをチェックするサンプルコードを次に示します (Java ではありません)。

編集:あなたが興味を持つかもしれない別のリンクをここに追加しました.

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-01-26T22:01:15.810 に答える