protected enum SuppressedState {
IDLE, IN_ACTION, SUPPRESSED;
}
- protected SuppressedState suppressed;
+ private SuppressedState suppressed;
protected RegulatedMotor leftMotor, rightMotor, measMotor;
protected SensorCollector sensors;
protected long time;
leftMotor.setAcceleration(Constants.acceleration);
rightMotor.stop(true);
leftMotor.stop(true);
- suppressed = SuppressedState.IDLE;
+ setSuppressed(SuppressedState.IDLE);
+ long time = System.currentTimeMillis();
+ while(System.currentTimeMillis()-time > 250){
+ Thread.yield();
+ }
}
protected void measure(){
measMotor.backward();
- while(suppressed == SuppressedState.IN_ACTION && !measMotor.isStalled()){
+ while(getSuppressed() == SuppressedState.IN_ACTION && !measMotor.isStalled()){
Thread.yield();
}
measMotor.forward();
- while(suppressed == SuppressedState.IN_ACTION && !measMotor.isStalled()){
+ while(getSuppressed() == SuppressedState.IN_ACTION && !measMotor.isStalled()){
Thread.yield();
}
measMotor.stop(true);
sensors.resetGyro();
rightMotor.backward();
leftMotor.forward();
- while(suppressed == SuppressedState.IN_ACTION && Math.abs(sensors.gyro()) < angle){
+ while(getSuppressed() == SuppressedState.IN_ACTION && Math.abs(sensors.gyro()) < angle){
Thread.yield();
}
LCDPrinter.print(Float.toString(sensors.gyro()));
sensors.resetGyro();
leftMotor.backward();
rightMotor.forward();
- while(suppressed == SuppressedState.IN_ACTION && Math.abs(sensors.gyro()) < angle){
+ while(getSuppressed() == SuppressedState.IN_ACTION && Math.abs(sensors.gyro()) < angle){
Thread.yield();
}
LCDPrinter.print(Float.toString(sensors.gyro()));
}
+ protected synchronized void setSuppressed(SuppressedState sup){
+ suppressed = sup;
+ }
+
+ protected SuppressedState getSuppressed(){
+ return suppressed;
+ }
+
@Override
public void action() {
- suppressed = SuppressedState.IN_ACTION;
+ setSuppressed(SuppressedState.IN_ACTION);
}
@Override
public void suppress() {
- suppressed = SuppressedState.SUPPRESSED;
+ setSuppressed(SuppressedState.SUPPRESSED);
}
@Override public boolean takeControl(){