Итак, я пытаюсь, чтобы код запускал двигатель на определенное время в зависимости от того, что воспринимает цветовой датчик REV V3. Я перепробовал много вещей. но, в конце концов, он просто застрял в бесконечном l oop. Я не знаю, как исправить эту вещь, я не знаю, есть ли способ сделать это, а не то, что я пытаюсь сделать.
private void redDetect(){
long t= System.currentTimeMillis();
if (buttons[9]){
long endg = t+15000;
while (System.currentTimeMillis() < endg) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[10]){
long endy = t+10000;
while (System.currentTimeMillis() < endy) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[11]){
long endr = t+7000;
while (System.currentTimeMillis() < endr) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[12]){
long endb = t+5000;
while (System.currentTimeMillis() < endb) {
trenchMotor.set(0.6);
break;
}
}
}
private void blueDetect(){
long t= System.currentTimeMillis();
if (buttons[9]){
long endg = t+15000;
while (System.currentTimeMillis() < endg) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[10]){
long endy = t+10000;
while (System.currentTimeMillis() < endy) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[11]){
long endr = t+7000;
while (System.currentTimeMillis() < endr) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[12]){
long endb = t+5000;
while (System.currentTimeMillis() < endb) {
trenchMotor.set(0.6);
break;
}
}
}
private void greenDetect(){
int endg = 10;
if (buttons[9]){
while (endg > 0) {
trenchMotor.set(0.6);
endg --;
break;
}
}
if (buttons[10]){
int endy = 1000;
while (endy > 0) {
trenchMotor.set(0.6);
endy--;
break;
}
}
if (buttons[11]){
int endr = 7000;
while (endr > 0) {
trenchMotor.set(0.6);
endr--;
break;
}
}
if (buttons[12]){
int endb = 5000;
while (endb > 0) {
trenchMotor.set(0.6);
endb--;
break;
}
}
}
private void yellowDetect(){
long t= System.currentTimeMillis();
if (buttons[9]){
long endg = t+15000;
while (System.currentTimeMillis() < endg) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[10]){
long endy = t+10000;
while (System.currentTimeMillis() < endy) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[11]){
long endr = t+7000;
while (System.currentTimeMillis() < endr) {
trenchMotor.set(0.6);
break;
}
}
if (buttons[12]){
long endb = t+5000;
while (System.currentTimeMillis() < endb) {
trenchMotor.set(0.6);
break;
}
}
}
if(detectedColor.red > detectedColor.green && detectedColor.red > detectedColor.blue) {
redDetect();
}
if(detectedColor.blue > detectedColor.green && detectedColor.blue > detectedColor.red) {
blueDetect();
}
if(detectedColor.green > detectedColor.blue && detectedColor.green > detectedColor.red) {
greenDetect();
}