【问题标题】:trim on String in Proccessing causes NullPointerException处理中的字符串修剪导致 NullPointerException
【发布时间】:2016-01-18 11:16:53
【问题描述】:

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

我想,我可以通过使用 trim 来删除这个换行符和回车符。但现在我在trim(distance) 中只得到一个NullPointerException。我现在不知道该怎么办。

我在超声波部分的 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);

【问题讨论】:

  • 您好,能否请您显示完整的错误信息?
  • 我在阅读您的帖子时收到了InvalidGrammarException。请注意,您帖子的视觉质量会影响投票数(正面和负面)和您收到的答案。你甚至忽略了基本规则。我认为没有理由这样做,并且可能会被否决。
  • String distanceTrim = trim(distance); 已标记。错误只有:NullPointerException
  • 没有String distanceTrim = trim(distance); 我收到正确的值,但总是有回车和空格,所以我不能正确使用它

标签: arduino port processing trim


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多