import java.util.Queue;
import lejos.robotics.SampleProvider;
-import nl.ru.des.LCDPrinter;
+import lejos.utility.Delay;
public class RemoteSensors{
- public static final int DELAY = 250;
+ public static final int DELAY = 200;
private SampleProvider left, right, ultra, color;
private float[] leftSamples, rightSamples, ultraSamples, colorSamples;
private float leftLatest, rightLatest, ultraLatest, colorLatest;
public void start(Queue<String> q){
long last = System.currentTimeMillis();
- LCDPrinter.print("Start sending values...");
+ Delay.msDelay(1000);
+ System.out.println("Start sending values...");
while(true){
if(System.currentTimeMillis()-last > DELAY && q.size()<5){
last = System.currentTimeMillis();
q.add(Integer.toString(RemoteSensorEnum.LEFT.ordinal())+Integer.toString((int)leftLatest)+"\n");
}
right.fetchSample(rightSamples, 0);
+
if(rightSamples[0] != rightLatest){
rightLatest = rightSamples[0];
q.add(Integer.toString(RemoteSensorEnum.RIGHT.ordinal())+Integer.toString((int)rightLatest)+"\n");
}
-
ultra.fetchSample(ultraSamples, 0);
- if(ultraSamples[0] != ultraLatest){
+ if(Math.abs(ultraSamples[0] - ultraLatest) > 0.025){
ultraLatest = ultraSamples[0];
q.add(Integer.toString(RemoteSensorEnum.ULTRA.ordinal())+Float.toString(ultraLatest)+"\n");
}