1

シリアル ポートで受信するデータ ストリームを読み取る必要があるという要件があります。同じために javax.comm API を使用しています。

以下のコードを使用してポートを一覧表示しようとすると、ポート一覧が表示されません。

portList = CommPortIdentifier.getPortIdentifiers();
System.out.println("start: "+portList.hasMoreElements());

false を返します。

私が何か不足している場合、誰かが私を助けることができますか?


PS2 ポートがリストにありませんでした。PS2ポートをリストする他の方法はありますか??

私の完全なコードは次のとおりです。

    while (portList.hasMoreElements()) {
       portId = (CommPortIdentifier) portList.nextElement();
       System.out.println("portid: "+portId.getName());
    }

出力

portid: COM1
portid: COM3
portid: LPT1

私の実際の要件は、USB ポートでデータを読み取ることです。JUSB を使用して問題に直面していましたが、うまくいきませんでした。そこで、シリアルからUSBへのコンバーターを入手して、シリアルポートで読み取ることにしました。しかし、市場にはそのようなコンバーチブルはありません。

さて、別の回避策を考えて、PS2からUSBへのコンバーターを手に入れることができました。Java を使用して PS2 ポートを一覧表示し、それに読み書きするか、Windows プラットフォームでの同じ API を提案していただければ幸いです。

この点でどんな助けでも大歓迎です。

4

3 に答える 3

2

RXTXを見てください。次に、次のようなものを使用できます。

 CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("/dev/tty1");
 CommPort commPort = portIdentifier.open("owner-name", 2000);
 SerialPort serialport;
 if (commPort instanceof SerialPort) {
   serialPort = (SerialPort)commPort;
   serialPort.setSerialPortParams(rate, databits, stopbits, parity);
 }
 InputStream in = serialPort.getInputStream();
 OutputStream out = serialPort.getOutputStream(); 
于 2012-06-29T07:56:32.400 に答える
0

http://www.intellog.com/blog/?p=255およびhttp://www.coderanch.com/t/535173/Streams/java/CommPortIdentifier-getPortIdentifiers-emptyを参照 してください(後者は最初の)

Oracle は Windows 用のバイナリを提供していません (Windows を使用していると仮定します): http://www.oracle.com/technetwork/java/index-jsp-141752.html

于 2012-06-29T07:30:29.503 に答える
0

私はubuntuを使用していますが、私のコンピューターにはシリアル/パラレルポートがありませんが、開発する必要があります。

この場合、このポートをシミュレートする必要があります。

私の答え:

ubuntuのJavaによるシリアルポート識別

于 2014-02-05T03:29:31.647 に答える