このJavaプログラムを使用してArduinoボードと通信しています。ただし、シリアルデータの読み取りとArduinoへの書き込みに問題があります。
現在、次のようになっています。
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
int available = input.available();
byte chunk[] = new byte[available];
input.read(chunk, 0, available);
String display = new String(chunk);
System.out.print(display);
if(display.equals("Request")) // Having problems with this line. not entering the loop even though I received the String "Request"
{
String reply = "Reply";
byte reply_byte[] = new byte[reply.length()];
reply_byte = reply.getBytes("UTF-16LE");
output.write(reply_byte);
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
入力を文字列として読み取り、文字列の応答をbyte[]に変換して応答しています。ただし、これは機能していないようです。誰かがこれを行うためのより良い方法を教えてもらえますか?たぶん、byte []をStringに変換して、それを解釈しようとしないでください。