f66bb62920b5a9b11cd21e380882d6ca0342d368
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / behaviours / WandererBehaviour.java
1 package nl.ru.des.behaviours;
2
3 import lejos.hardware.motor.EV3LargeRegulatedMotor;
4 import lejos.robotics.SampleProvider;
5 import lejos.robotics.subsumption.Behavior;
6 import nl.ru.des.bluetooth.ColorMemory;
7
8 public class WandererBehaviour extends ReactiveBehaviour implements Behavior {
9 private EV3LargeRegulatedMotor leftMotor, rightMotor;
10 private ColorMemory cm;
11
12 public WandererBehaviour(SampleProvider color, EV3LargeRegulatedMotor leftMotor,
13 EV3LargeRegulatedMotor rightMotor, ColorMemory cm) {
14 super(color);
15 this.leftMotor = leftMotor;
16 this.rightMotor = rightMotor;
17 this.cm = cm;
18 }
19
20 @Override
21 public boolean takeControl() {
22 return !cm.finished();
23 }
24
25 @Override
26 public void action() {
27 super.action();
28 leftMotor.forward();
29 rightMotor.forward();
30 while (!suppressed) {
31 super.fetchSample();
32 if (ColorMemory.COLORSTOFIND.contains((int)samples[0])) {
33 cm.addColor((int)samples[0]);
34 }
35 Thread.yield();
36 }
37 leftMotor.stop(true);
38 rightMotor.stop(true);
39 }
40 }