package pwmStateMachine;
import Systems.CANDriveAssembly;
import Systems.PWMDriveAssembly;
public class DriveForwardState extends AutoState {
private boolean isPWM = false;
private double speed = 0.0;
public DriveForwardState(boolean isPWM, double speed)
{
this.speed = speed;
this.isPWM = isPWM;
if (isPWM)
{
this.name = "<PWM Drive Forward State>";
PWMDriveAssembly.initialize();
}
else
{
this.name = "<CAN Drive Forward State>";
CANDriveAssembly.initialize();
}
}
public DriveForwardState(String name, boolean isPWM, double speed)
{
this.name = name;
this.speed = speed;
this.isPWM = isPWM;
if (isPWM)
PWMDriveAssembly.initialize();
else
CANDriveAssembly.initialize();
}
// state entry
public void enter() {
// do some drivey initialization
if (isPWM)
PWMDriveAssembly.autoInit();
else
CANDriveAssembly.autoInit();
super.enter();
}
// called periodically
public AutoState process() {
// do some drivey stuff
if (isPWM)
PWMDriveAssembly.autoPeriodicStraight(speed);
else
CANDriveAssembly.autoPeriodicStraight(speed);
return super.process();
}
// state cleanup and exit
public void exit() {
// do some drivey cleanup
if (isPWM)
PWMDriveAssembly.autoStop();
else
CANDriveAssembly.autoStop();
// cleanup base class
super.exit();
}
}