处理中的字符串修剪导致NullPointerException

时间:2016-01-18 11:16:54

标签: arduino port processing trim

我的Processing sketch有点问题。我试图通过串行连接从我的Arduino获取一个值。在这种情况下,它是一个超声波传感器,应该返回距离。在Arduino软件串行监视器中,我有2到300之间的正确值。但是在将它发送到Processing之后,我只获得了ASCII代码,我想将其转换为String。但是转换后的String然后还包含换行和回车 - 我不想要这些。

我想,我可以使用修剪来擦除此换行并返回托架。但现在我只在NullPointerException中获得trim(distance)。我现在不知道该怎么做。

超声波部分中的Arduino草图:

//Ultraschall
    int duration, distance
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);

    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);

    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);

    //Calculate the distance (in mm)
    distance = duration / 5.8;
    Serial.println(distance);
    delay(50);

我在超声波部分的处理草图:

以上设置:

import processing.serial.*;
Serial port;
画中的

  String distance = port.readString();
  String distanceTrim = trim(distance);
  println (distanceTrim);

1 个答案:

答案 0 :(得分:0)

您的distance变量为null。尝试打印出它的值来检查:

String distance = port.readString();
println(distance);
String distanceTrim = trim(distance);
println (distanceTrim);

您对port.readString()的来电正在返回null。我不确切知道为什么会这样,但NullPointerException的来源是将null传递给trim()函数。