关于EV3UltrasonicSensor这么简单的lejos程序也会出现错误吗?

时间:2016-05-29 02:31:49

标签: java lego lejos-nxj

import lejos.hardware.lcd.LCD;
import lejos.hardware.port.SensorPort;
import lejos.hardware.sensor.EV3UltrasonicSensor;
import lejos.robotics.SampleProvider;
import lejos.utility.Delay;

public class NewUl {
    private EV3UltrasonicSensor ev3UltrasonicSensor;
    public NewUl() {
        // TODO Auto-generated constructor stub
        ev3UltrasonicSensor=new EV3UltrasonicSensor(SensorPort.S4);
    }
    public void getData() {
        SampleProvider sampleProvider=ev3UltrasonicSensor.getDistanceMode();
        float[] sample=new float[sampleProvider.sampleSize()];
        sampleProvider.fetchSample(sample, 0);
        LCD.clear();
        LCD.drawString(String.valueOf(sample[0]),0,3);
        LCD.refresh();
        Delay.msDelay(3000);
        LCD.clear();
        LCD.refresh();
    }
    public void close() {
        ev3UltrasonicSensor.close();
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        NewUl newUl=new NewUl();
        newUl.getData();
        newUl.close();  
    }

}

这是一个关于EV3UltrasonicSensor的简单lejos计划。 第13行代码是:

ev3UltrasonicSensor=new EV3UltrasonicSensor(SensorPort.S4);

第31行代码是:

NewUl newUl=new NewUl();

抛出的异常是:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid sensor mode at lejos.hardware.sensor.UARTSensor.<init>(UARTSensor.java:62)
at lejos.hardware.sensor.EV3UltrasonicSensor.<init>(EV3UltrasonicSensor.java:75)
at control.NewUl.<init>(NewUl.java:13) at control.NewUl.main(NewUl.java:31)
这样一个简单的程序也会出现错误吗?这让我很困惑。

你能给我一些帮助或一些提示吗?如果您需要了解更多信息,请随时提出任何帮助。

1 个答案:

答案 0 :(得分:0)

Exception消息看,lejos.hardware.sensor.EV3UltrasonicSensor实例的创建不正确。可能是您传递给构造函数的值SensorPort.S4不正确,或者您可能必须将值设置为相关实例的更多属性。