0

私はこれについていくつかの助けを得たいと思います:

Javaでシリアルデバイスと通信したいので、java.commパッケージで少し遊び始めました。デバイスはメッセージに応答するはずですが、これを実現する方法がわかりません。最初のメッセージの後、それはもう機能しません。InputStream利用できなくなります。

デバッグ中に、次の単純なケースに行き着きました。

//question no. 1
outputStream.write(first_question);                                                            
outputStream.flush();                    

while (inputStream.available() > 0) {                         
  line = inputStream.read();                        
  System.out.println(line);                                                
}

//question no. 2
outputStream.write(second_question);       
outputStream.flush();

while (inputStream.available() > 0) {                         
   line = this.in.read();                        
   System.out.println(line);  
}

` あなたの助けと提案に感謝します!

4

1 に答える 1

0

Windows マシンを使用している場合は、

  1. ディレクトリへの win32com.dll : jdk1.7.0/bin
  2. javax.comm.properties へのディレクトリ: jdk1.7.0/jre/lib
  3. comm.jar へのディレクトリ: jdk1.7.0/lib

そして、ポートへの書き込み後にスレッドを使用して遅延を入れて、次のコードを試してください。

outputStream.write(first_question);                                                            
outputStream.flush();
Thread.sleep(1000);`

byte[] readBuffer = new byte[500];

while (inputStream.available() > 0) { 

  int numBytes = inputStream.read(readBuffer);

  msg = new String(readBuffer, 0, numBytes);

   message += msg;

}

それはあなたを助けるかもしれません。

于 2013-08-23T08:21:43.183 に答える