enablereceivetimeout - java シリアル通信 サンプル



WindowsでのJavaシリアル通信 (4)

私は、Windows / Win32上でシリアルデバイスと通信できるJava APIを探していましたが、チェックアウトしたAPIの多くはLinux用であり、古すぎるか、悪評を持っていました。

Windows XPで簡単に実装しようとしていることや、それについて知っている人にお勧めしますか?


Javaは、ぎりぎりのシリアルI / Oサポートで有名です。 以前の仕事では、Teknicのサーボコントローラから56kbpsでデータをストリーミングしたアプリケーション用にRXTXとSerialIOの両方を試してみましたが、CPUをかなり邪魔にしていました。 おそらく、シリアルポートからの連続ストリーミングを必要としないアプリケーションの場合、これらのライブラリはどちらも良いですが、シリアルポートからのストリーミングI / OがCPUの15〜30%応答が必要なJVM内の他のスレッドが必要なときにマシンを起動します。

代わりに、私たちはC ++でサーボのシリアルポートからデータのストリームを読み取り、それを変換/パケット化し、ソケット接続を介してXML形式のJavaアプリケーションに送信するサーバーを作成しました。 C ++でのシリアルI / OサーバーのCPU負荷? 最悪の状態では1%にまで忍び寄っていません。

Javaがうまくいくのは確かです - シリアルI / Oは、アプリケーションのタイプによっては、私の意見では、その一つではありません...

最終的には、私が塩の塊で言ったことさえ取っておき、RXTXとSerialIO(Javaバージョンでは50ドルくらい安い、汚れている)を試してみてください。 個人的には、SerialIOをサポートし、積極的に取り組んでいるので、私はSerialIOを使用します。 RXTX、そうではありません。


予約なしに、私はserialio.comからJava Serial Portをお勧めします 。 Sun、IBM、RxTxのシリアルパッケージには大きな安定性の問題がありました。 SerialPortは、5年以上にわたって24時間365日体制で安定しています。

標準のJavaシリアルAPIと独自の独自のAPIをサポートしています。 私は標準のAPIに固執しますが、あなたが本当に必要なものがない限り、標準のAPIはありません。あなたのオプションを開いたままにしておきます。


私は数週間前に同じことを探し始めました。これまでのところ、マルチプラットフォームのRXTXライブラリにはとても満足しています。 任意のWindows、Linux、OS Xで動作します。非常にきれいでわかりやすいAPIを備えています。

編集:RXTXもオープンソースです。


私は過去5年間、 PureJavaCommを使ってきました。 これは積極的に維持され、純粋なJava(JNA経由)の実装です。 RXTXは、メンテナンスの欠如や微妙な問題のために私を失望させました。





serial-port