Я исправил эту проблему после проверки выходного сигнала моего датчика.После замедления вывода я заметил, что в самом первом выводе, который он выдавал, всегда отсутствовала координата Z, что означает отсутствие третьего разбиения, и поэтому мой код не работал, ваш код не работал для меня, потому что ваш был создан для 3 координат,я исправил это, добавив if (parts.length == 3) {} вокруг моего кода и код стал: (я собираюсь разделить его на отдельную функцию, и это заменит s = 0 / s = 1, которыйэто замена для возврата -1
import processing.serial.*;
import java.awt.Robot;
Serial Port;
String val;
int s=1; //for canceling out nulls and empty values
void setup(){
String Bluetooth = Serial.list()[1];
Port = new Serial(this, Bluetooth, 9600);
}
void draw(){
if ( Port.available() > 0){
val = Port.readStringUntil('\n');
if (val == null || val.trim().isEmpty()) { s=0; }
if(s==1){
String[] parts = val.split(" ");
println("");
print(val);
print(parts.length);
print(" ");
if(parts.length == 3){
String x = parts[0];
String y = parts[1];
String z = parts[2];
print(x);
print(" ");
print(y);
print(" ");
print(z); }
}
s=1;
delay(1); // 15
}
}