diff --git a/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckManager.java b/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckManager.java index a4c4fc4..ec261c1 100644 --- a/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckManager.java +++ b/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckManager.java @@ -6,6 +6,7 @@ */ package com.TwentyCodes.android.IOIOTruck; +import ioio.lib.api.DigitalInput; import ioio.lib.api.DigitalOutput; import ioio.lib.api.IOIO; import ioio.lib.api.PwmOutput; @@ -39,6 +40,8 @@ public class IOIOTruckManager extends IOIOManager { private TB6612FNGMotorDriver mRightMotor; private PwmOutput mShifter; private DigitalOutput mMotorDriverStandBy; + private DigitalInput mLeftFrontBumber; + private DigitalInput mRightFrontBumber; /** * Creates a new IOIOTruckThread @@ -111,6 +114,12 @@ public class IOIOTruckManager extends IOIOManager { //enable the motor driver mMotorDriverStandBy = ioio.openDigitalOutput(IOIOTruckValues.MOTOR_DRIVER_STANDBY, true); + + /* + * bumper switches in the front + */ + mLeftFrontBumber = ioio.openDigitalInput(IOIOTruckValues.LEFT_FRONT_BUMPER_PORT); + mRightFrontBumber = ioio.openDigitalInput(IOIOTruckValues.RIGHT_FRONT_BUMBER_PORT); } /** @@ -128,13 +137,26 @@ public class IOIOTruckManager extends IOIOManager { * @see com.TwentyCodes.android.ioio.IOIOThread#onUpdate() */ @Override - public void loop() throws ConnectionLostException { + public void loop() throws ConnectionLostException, InterruptedException { this.setStatLedEnabled(mStatLedValue); mShifter.setPulseWidth(mShifterValue); mMotorDriverStandBy.write(mStatLedValue); + + /* + * we need to check our sensors before we can make a move. + */ + if(mLeftFrontBumber.read()){ + //TODO backup, spin right, drive forward + mLeftMotor.setSpeed(0); + mRightMotor.setSpeed(0); + } else if(mRightFrontBumber.read()){ + //TODO backup, spin left, drive forward + mLeftMotor.setSpeed(0); + mRightMotor.setSpeed(0); + } else /* * if the autonomous routine is running @@ -148,7 +170,6 @@ public class IOIOTruckManager extends IOIOManager { mLeftMotor.setSpeed(0); mRightMotor.setSpeed(0); } - } /** diff --git a/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckValues.java b/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckValues.java index e49537f..e208263 100644 --- a/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckValues.java +++ b/IOIOTruck/src/com/TwentyCodes/android/IOIOTruck/IOIOTruckValues.java @@ -87,4 +87,14 @@ public class IOIOTruckValues extends IOIOValues { */ public static final int STEER_LEFT = 1300; + /** + * IOIO port for the left front bumper switch + */ + public static final int LEFT_FRONT_BUMPER_PORT = 11; + + /** + * IOIO port for the right front bumper switch + */ + public static final int RIGHT_FRONT_BUMBER_PORT = 12; + } \ No newline at end of file