2

Windows環境でシリアルポートデバイスと通信するJavaアプリケーションを作成するには、Googleで閲覧すると、 RXTXJavaComm などのサードパーティツールライブラリも好きで、さまざまな方向に転用されているようですEclipseリファレンスを使用してRXTXサンプルコードを試してみる場合。

シリアルポートは出力に表示されず、空白になりました

出力:

安定したライブラリ

ネイティブライブラリバージョン=RXTX-2.1-7

Javalibバージョン=RXTX-2.1-7

私がした間違いは何ですか?

このアプローチの方が優れていることを教えてください。それとも、より良い解決策を提案してください。

この問題の代替案を教えてください。Javaを使用してシリアルポート経由でデバイスと通信したいのですが、データはデバイスから送信され、ファイルに書き込まれる必要があります。

前もって感謝します

4

1 に答える 1

3

リンクされた例が失敗した場合は、RXTXがマシンのシリアルポートを検出していないことを意味します。マシンにシリアルポートがあるかもしれませんが、OSによって認識されない理由の1つは、それが実際にはシリアル-USBアダプターであり、USBポートとして認識されているためである可能性があります。

Linuxを使用している場合、シリアルポートは通常次のようになります。

ls /dev/ttyS*

出力:

/dev/ttyS0
/dev/ttyS1
/dev/ttyS2

適合ポートは次のようになります。

/dev/ttyUSB0

シリアル接続されたデバイス(POSプリンターやLCDディスプレイなど)で出力が表示される場合は、次のようにテストできます。

echo 'hello' > /dev/ttyUSB0

また、デバイスがそのポートに接続されていて、すべてが正常に機能している場合、デバイスは「hello」文字列を表示する必要があります。

ただし、RxTxよりもJavaの単純なシリアルコネクタライブラリを使用することを強くお勧めします。商用POSアプリケーションで両方を試しました(現時点では100万を超えるチケット)。

RxTxは、順次印刷に正常に使用されています。印刷シナリオでは、RxTxライブラリが順番に呼び出され、データをポートに送信するためにのみ使用されました。一部のシリアルフラグのみが、デバイスの正常性を検出するために赤で表示されました。

しかし、その制限のために、シリアル接続されたIButtonからの入力を読み取るためにそれを使用することはできませんでした。iButtonシナリオでは、データはポートから非同期で受信されることが期待されます。RxTxで実装しようとすると、常にバグとハングが発生しましたが、JSSCではほぼ即時に実装されました。

于 2012-12-31T10:55:56.060 に答える