У меня есть код Arduino, который отправляет миллис () и два показания от двух потенциометров, каждый из которых отправляется в новой строке, например так:
Serial.println(millis());
Serial.println(val1);
Serial.println(val2);
Я хочу использовать Java для хранения каждого изэти строки в своей собственной переменной, поэтому я могу использовать JFreeChart для отображения данных и просмотра их в реальном времени, однако у меня возникают проблемы с размещением строк в отдельные переменные.
Я попытался изменить код arduino и использовать разбиение Stringметод в Java, но это не сработало.
вот часть моего кода, где я использую сканер для чтения последовательных данных:
Thread thread = new Thread() {
@Override
public void run() {
Scanner scan = new Scanner(port.getInputStream());
while(scan.hasNextLine()) {
//where the data stuff is put into graph
}
scan.close();
}
};
edit:
поэтому я попытался использовать метод разделения следующим образом:
Thread thread = new Thread() {
@Override
public void run() {
String serialDat;
Scanner scan = new Scanner(port.getInputStream());
while(scan.hasNextLine()) {
serialDat = scan.next();
String[] dataValues = serialDat.split(",");
System.out.println(dataValues[0] + " " + dataValues[1] + " " + dataValues[2]);
}
scan.close();
}
};
Я заставил arduino отправлять данные следующим образом через Serial: millis (), sensor1, sensor2
но когда я использую код Java и подключаюсь к порту, я получаю
java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1