push
[des2015.git] / dsl / runtime / src / nl / ru / des / BasicBehaviour.java
index 1d79edd..9b7742b 100644 (file)
@@ -5,7 +5,7 @@ import lejos.robotics.subsumption.Behavior;
 import nl.ru.des.sensors.SensorCollector;
 
 public abstract class BasicBehaviour implements Behavior{
-       protected boolean suppressed;
+       protected int suppressed;
        protected RegulatedMotor leftMotor, rightMotor, measMotor;
        protected SensorCollector sensors;
        protected long time;
@@ -25,6 +25,7 @@ public abstract class BasicBehaviour implements Behavior{
                leftMotor.setAcceleration(Constants.acceleration);
                rightMotor.stop(true);
                leftMotor.stop(true);
+               suppressed = 0;
        }
 
        protected void rockMeasure(){
@@ -36,25 +37,35 @@ public abstract class BasicBehaviour implements Behavior{
        }
        
        protected void rightTurn(int angle){
-               
+               float init = sensors.gyro();
+               rightMotor.backward();
+               leftMotor.forward();
+
+               while(suppressed != 2 && sensors.gyro()-90>init){
+                       Thread.yield();
+               }
        }
        
        protected void leftTurn(int angle){
-               
+               float init = sensors.gyro();
+               leftMotor.backward();
+               rightMotor.forward();
+               while(suppressed != 2 && sensors.gyro()+90<init){
+                       Thread.yield();
+               }
        }
        
        @Override
        public void action() {
-               suppressed = false;
+               suppressed = 1;
        }
 
        @Override
        public void suppress() {
-               suppressed = true;
+               suppressed = 2;
        }
        
-       @Override
-       public boolean takeControl() {
+       @Override public boolean takeControl(){
                return true;
        }
 }