be21145d160dede0af4b4c189c6c2c89f6237816
[des2015.git] / mart / ev3 / ex1 / nl / ru / des / AvoidBehaviour.java
1 package nl.ru.des;
2
3 import java.io.File;
4
5 import lejos.hardware.motor.EV3LargeRegulatedMotor;
6 import lejos.robotics.subsumption.Behavior;
7
8 public abstract class AvoidBehaviour implements Behavior {
9 protected EV3LargeRegulatedMotor rightMotor, leftMotor, avoidMotor;
10 private File audioFile;
11
12 public AvoidBehaviour(EV3LargeRegulatedMotor leftMotor, EV3LargeRegulatedMotor rightMotor, File audioFile){
13 this.rightMotor = rightMotor;
14 this.leftMotor = leftMotor;
15 this.avoidMotor = leftMotor;
16 this.audioFile = audioFile;
17 }
18
19 public void setAvoidDirection(boolean avoidLeft){
20 avoidMotor = avoidLeft ? leftMotor : rightMotor;
21 }
22
23 @Override
24 public void action() {
25 WavPlayer.playWav(audioFile);
26 avoidMotor.setAcceleration(6000);
27 avoidMotor.backward();
28 while(takeControl());
29 avoidMotor.forward();
30 avoidMotor.setAcceleration(1000);
31 }
32
33 @Override
34 public void suppress() {
35 avoidMotor.forward();
36 }
37 }