2011-06-20 27 views
7


まず、javax.commを使用してシリアルポート(COM4)に接続しようとしました。それはシリアルポートを開くことさえなかった。シリアルポートの書き込みと読み取りが動作しない

次に、rxtxライブラリ(rxtx-2.2pre2)を使用して接続しようとしました。データの接続と書き込みは行いますが、シリアルポートからのデータの読み取りは行いません。

javax.commまたはrxtxライブラリを使用するためのJDK /プラットフォームの依存関係はありますか?

私はを使用しています:
のWindows XP SP3、
JDK 1.6.0_22、
RXTX-2.2pre2、シリアルアダプタに
USB、(Microsoftが)
Portmon - シリアル上のアクティビティを監視しますポート
ハイパーターミナル - COMポートが実際に動作するかどうかを確認します。
http://goo.gl/mNLNE - 読み、

を書くチェックするために使用するサンプルコードあなたは私のような任意の同様の問題を経験している場合は私に知らせてください。

ご協力いただきましてありがとうございます。

おかげで、 J

+0

ここで同じ問題があります。私もpurejavacommで試しました。私は賞金を稼ぐつもりです。 – HRJ

答えて

1

いくつかの掘削後、私は明示的にフロー制御モードを設定することにより、これを自分で解決することができました。フロー制御を必要としない場合でも、明示的にFLOWCONTROL_NONEに設定すると役立ちます。

Linuxでは同じ呼び出しは必要ありませんでした。

フロー制御をハードウェアに設定している場合は、このモードで通知を取得するために明示的にRTSを設定する必要があると思います。 (検証されていない)。

1

私はこのコードを試して成功しました。

comm.jar 
javax.comm.properties 
win32com.dll 

、あなたが特定のディレクトリにこれらのファイルを配置する必要があります:あなたは、あなたとの3つのファイルを持っている必要があり

comm.jar 
in /java/jre6/lib/ext , /java/jdk_1.6.0.20/jre6/lib/ext , java/jdk_1.6.0.20/lib 

win32com.dll 
in /java/jre6/bin, /java/jdk_1.6.0.20/bin, /windwos/System32 

javax.comm.properties 
in /java/jdk_1.6.0.20/lib, java/jre/lib , /java/jdk_1.6.0.20/jre/lib 
+0

あなたの答えをテキストではなく適切な英語で書くようにしてください。私たちはSOの質の高いコンテンツを探しています。 –

1

私はpurejavacommを試してお勧めします:http://www.sparetimelabs.com/purejavacomm/index.html

それは実装です純粋なJava + JNAで書かれたjavax.commについて、WindowsとLinuxの移植性の問題を完全に解決しました。また、OSXやFreeBSD(試していない)でも動作し、SolarisなどのJNAがサポートする他のOSに移植するのは簡単です。

また、rxtxと同じようにDLLをインストールする必要はなく、rxtxがWindows上にある場合もある100%CPU食い込みバグはないようです。

関連する問題