我是 java 和 lejos 的新手,所以如果我问的是相当愚蠢的问题,请不要怪我。
我试图让乐高超声波传感器通过在电机上旋转它来扫描我的 nxt 周围的 360 度区域。每 5 度它会将距离保存到一个 .txt 文件。
我的问题是,稍后当我使用 nxjbrowse.bat 上传文件后从我的 PC 读取文件时,它只包含链接到应该保存在那里的数字 (0 - 255) 的 ASCII 字符。
我的 NXT 代码:
package Dataloggers;
import java.io.;
import lejos.nxt.;
public class USdistance {
int totalRotation = 360;
int scanDensity = 5;
UltrasonicSensor ultrasonicSensor = new UltrasonicSensor(SensorPort.S3);
File distanceFile = new File("Distances.txt");
FileOutputStream fileStream = null;
public static void main(String[] args) {
@SuppressWarnings("unused")
USdistance usD = new USdistance();
}
public USdistance() {
Motor.A.setAcceleration(2000);
Motor.A.setSpeed(50);
try {
fileStream = new FileOutputStream(distanceFile);
} catch (Exception e) {
LCD.drawString("Can't make a file", 0, 0);
Button.ESCAPE.waitForPress();
System.exit(1);
}
DataOutputStream dataStream = new DataOutputStream(fileStream);
Motor.A.rotate(90);
Motor.A.resetTachoCount();
Motor.A.backward();
do {
if (-(Motor.A.getTachoCount()) % scanDensity == 0 ) {
int distance = ultrasonicSensor.getDistance();
try {
dataStream.writeInt(distance);
fileStream.flush();
} catch (IOException e) {
LCD.drawString("Can't write to the file", 0, 1);
Button.ESCAPE.waitForPress();
System.exit(1);
}
}
} while (-(Motor.A.getTachoCount()) < totalRotation);
Motor.A.stop();
try {
fileStream.close();
} catch (IOException e) {
LCD.drawString("Can't save the file", 0, 1);
Button.ESCAPE.waitForPress();
System.exit(1);
}
Motor.A.rotate(270);
}
}
提前谢谢罗