- private SampleProvider ultrasone, color, leftTouch, rightTouch;
- private float[] ultrasoneSamples, colorSamples, leftTouchSamples, rightTouchSamples;
- private long ultrasoneTime, colorTime, leftTouchTime, rightTouchTime;
-
- public SensorCollector(SampleProvider ultrasone,
- SampleProvider color,
- SampleProvider leftTouch,
- SampleProvider rightTouch){
- this.ultrasone = ultrasone;
- this.color = color;
- this.leftTouch = leftTouch;
- this.rightTouch = rightTouch;
- ultrasoneSamples = new float[ultrasone.sampleSize()];
- colorSamples = new float[color.sampleSize()];
- leftTouchSamples = new float[leftTouch.sampleSize()];
- rightTouchSamples = new float[rightTouch.sampleSize()];
- ultrasoneTime = System.currentTimeMillis();
- colorTime = System.currentTimeMillis();
- leftTouchTime = System.currentTimeMillis();
- rightTouchTime = System.currentTimeMillis();
- }
-
- public float distance(){
- if(System.currentTimeMillis()-ultrasoneTime>DELAY){
- ultrasone.fetchSample(ultrasoneSamples, 0);
- ultrasoneTime = System.currentTimeMillis();
+ //Local sensors
+ private SampleProvider ultra, leftLight, rightLight, gyro;
+ private float[] ultraSamples, leftLightSamples, rightLightSamples, gyroSamples;
+ private long ultraTime, leftLightTime, rightLightTime, gyroTime;
+
+ //Remote sensors
+ private int color;
+ private boolean leftTouch, rightTouch;
+ private float frontUltra;
+
+ public SensorCollector(SampleProvider ultra,
+ SampleProvider leftLight,
+ SampleProvider rightLight,
+ SampleProvider gyro){
+ this.ultra = ultra;
+ this.leftLight = leftLight;
+ this.rightLight = rightLight;
+ this.gyro = gyro;
+ ultraSamples = new float[ultra.sampleSize()];
+ gyroSamples = new float[gyro.sampleSize()];
+ leftLightSamples = new float[leftLight.sampleSize()];
+ rightLightSamples = new float[rightLight.sampleSize()];
+ ultraTime = System.currentTimeMillis();
+ leftLightTime = System.currentTimeMillis();
+ rightLightTime = System.currentTimeMillis();
+ gyroTime = System.currentTimeMillis();
+ }
+
+ //Local sensors
+ public float backDistance(){
+ if(System.currentTimeMillis()-ultraTime>DELAY){
+ ultra.fetchSample(ultraSamples, 0);
+ ultraTime = System.currentTimeMillis();