Implemented AvoidObject behaviour and TextLCD
[des2015.git] / mart / ev3 / ex2 / nl / ru / des / behaviours / AvoidHighObjectBehaviour.java
1 package nl.ru.des.behaviours;
2
3 import lejos.hardware.motor.EV3LargeRegulatedMotor;
4 import lejos.robotics.subsumption.Behavior;
5 import nl.ru.des.sensors.UltraSoneSensor;
6
7 public class AvoidHighObjectBehaviour implements Behavior{
8 private static final long TURNTIME = 250;
9
10 private UltraSoneSensor ultraSone;
11 private EV3LargeRegulatedMotor leftMotor;
12 private EV3LargeRegulatedMotor rightMotor;
13 private boolean suppressed;
14
15 public AvoidHighObjectBehaviour(EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor,
16 UltraSoneSensor ultraSoneSensor) {
17 ultraSone = ultraSoneSensor;
18 this.leftMotor = leftMotor;
19 this.rightMotor = rightMotor;
20 }
21
22 @Override
23 public boolean takeControl() {
24 return ultraSone.getCurrentStatus();
25 }
26
27 @Override
28 public void action() {
29 suppressed = false;
30 rightMotor.backward();
31 leftMotor.forward();
32 long time = System.currentTimeMillis();
33 while (!suppressed && System.currentTimeMillis() - time > TURNTIME) {
34 Thread.yield();
35 }
36 leftMotor.stop(true);
37 rightMotor.stop(true);
38 }
39
40 @Override
41 public void suppress() {
42 suppressed = true;
43 }
44 }