Implemented communication protocol
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / WandererBehaviour.java
1 package nl.ru.des;
2
3 import lejos.hardware.Sound;
4 import lejos.hardware.motor.EV3LargeRegulatedMotor;
5 import lejos.robotics.subsumption.Behavior;
6
7 public class WandererBehaviour implements Behavior {
8 private EV3LargeRegulatedMotor leftMotor, rightMotor;
9 private ColorSensor colorSensor;
10 private boolean suppressed;
11 private ColorMemory cm;
12
13 public WandererBehaviour(ColorSensor colorSensor, EV3LargeRegulatedMotor leftMotor,
14 EV3LargeRegulatedMotor rightMotor, ColorMemory cm) {
15 this.leftMotor = leftMotor;
16 this.rightMotor = rightMotor;
17 this.colorSensor = colorSensor;
18 this.cm = cm;
19 }
20
21 @Override
22 public boolean takeControl() {
23 return !cm.finished();
24 }
25
26 @Override
27 public void action() {
28 suppressed = false;
29 leftMotor.setSpeed(300);
30 rightMotor.setSpeed(300);
31 leftMotor.forward();
32 rightMotor.forward();
33 while (!suppressed) {
34 String current = colorSensor.getCurrentColor();
35 if (current == "Yellow" || current == "Blue" || current == "Red") {
36 Sound.beep();
37 BTController.SendMessage(current);
38 }
39 Thread.yield();
40 }
41 leftMotor.stop(true);
42 rightMotor.stop(true);
43 }
44
45 @Override
46 public void suppress() {
47 suppressed = true;
48 }
49
50 }