1

こんにちは、私は Java の初心者です。私のプロジェクトでは、データロガーが com ポートに接続されています。15 の整数値をポートに送信する必要があります。その後、他のデバイスが応答として 15 を返します。今、出力ストリームに書き込んでいますが、取得していません。この問題を解決する方法を教えてください。 (私は javax.com パッケージを使用しています)

返信ありがとう

4

2 に答える 2

3

InputStream も取得する必要があります。OutputStream から読み取ることはできません。または、何か不足していますか?

また、出力を書き込んだ後に OutputStream.flush() を実行することを忘れないでください。そうしないと、後で送信するためにデータがバッファリングされる可能性があります。レスポンダがデータを待機している場合、これが問題の原因となる可能性が最も高くなります。

そうは言っても、 javax.comm パッケージは本当に古いです。前回これを使用したときは、Sun によって非推奨にされたか、少なくともまったく保守されていないように見えました。他のソリューションを検討することをお勧めします ( SerialIOが思い浮かびます)。

于 2009-02-02T10:23:16.593 に答える
0

次のサンプルコードを試してください

public static void init(String port) {
portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(portId.getName());
    if (portId.getName().equals(port)) {



try {sPort = (SerialPort) portId.open("PORT_NAME", 2000);
             reader = new sms();
             break;
            } 
        catch (Exception e) { System.out.println(e);continue;}
   }
}

}

COMポート名(COM15、COM11、COM12など)でinit()メソッドを呼び出し、接続されているデバイスのCOMポートを確認します。

于 2013-07-31T09:04:53.920 に答える