1

我正在尝试提供一种使用 Arduino/Wiring 的通信方法,以使两个对象用两个操纵杆移动。

这是我用于通信的方法:

public PVector serialEvent(Serial myPort) {
    PVector direction = new PVector(0, 0);
    PVector directionD = new PVector(0, 0);

    // read the serial buffer:
    String myString = myPort.readStringUntil('\n');
    if (myString != null) {
        String [] dataJoystick1 = split(myString, ",");
        // println (dataJoystick);
        try {
            direction.set(Float.parseFloat(dataJoystick1[0]), Float.parseFloat(dataJoystick1[1]), 0);
            directionD.set(Float.parseFloat(dataJoystick1[2]), Float.parseFloat(dataJoystick1[3]), 0);
        }
        catch(NumberFormatException e) {
        }

        movimiento=direction;
        movimientoD=directionD;

        //==============================PJ1========
        if (direction.x==0) {
            movimiento.set(0, movimiento.y, 0);
        }

        if (direction.y==0) {
            movimiento.set(movimiento.x, 0, 0);
        }
    }

    //==============================PJ2========
    if (directionD.x==0) {
        movimiento.set(0, movimiento.y, 0);
    }

    if (directionD.y==0) {
        movimiento.set(movimiento.x, 0, 0);
    }

    return direction;
    return directionD;
}

如您所见,PVector每个字符都有两个 sdirectiondirectionD. 但是,当我运行代码时,它给了我这个错误:

行返回方向D中无法到达的代码;

4

2 回答 2

4
return direction;
return directionD;

如果没有条件,你不能有两个这样的 return 语句。执行第一个 return 语句时,没有机会到达第二个 return 语句。这就是为什么有一个无法到达的声明。

于 2013-05-12T18:35:31.640 回答
0

@vishal_aim 是正确的。

影响两个不同变量的方法是创建 PVector 类或serialEvent 可以看到的包装器(字符)类的两个实例,然后将从serialEvent 接收到的值传递给这两个实例。

另外,我不完全确定,但我不认为你可以让 serialEvent 返回一个值,因为它是附加的 void serialEvent 是从处理的串行模块中调用的。

于 2013-05-15T08:35:02.417 回答