//package cbccore.tests;
import cbccore.motors.Drive;
import cbccore.motors.LeftTurnMovement;
import cbccore.motors.Motor;
import cbccore.motors.NonBlockingDriver;
import cbccore.motors.StraightMovement;
import cbccore.motors.TwoWheelDriver;
public class Main {
private final static int SPEED = 1000;
public static void main(String[] args) {
// Motors encapsulate all motor functionality
Motor left = new Motor(0);
Motor right = new Motor(1);
// Drivers are fed movements and must do something with them
TwoWheelDriver driver = new TwoWheelDriver(left, right);
// Drives encapsulate complex movement patterns
Drive toEnemy = new Drive();
toEnemy.add(new StraightMovement(SPEED, 100));
toEnemy.add(new LeftTurnMovement(SPEED, 90));
toEnemy.add(new StraightMovement(SPEED, 100));
// Blocking drive
driver.drive(toEnemy);
// Non-blocking drive
NonBlockingDriver nonBlock = new NonBlockingDriver(driver);
nonBlock.getDrives().add(toEnemy);
nonBlock.run();
}
}