我正在使用这个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 并尝试解释它。