|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Autonomous Timer Issue
Also working from fuzzy memory, but I think you will need to call something like isTimedOut() in your isFinished() method and return true or false appropriately. If I recall correctly, setting a timeout does not mean the command will automatically be stopped.
Hope this helps, Steve |
|
#2
|
|||
|
|||
|
Re: Autonomous Timer Issue
Here is our code as of bagging up the robot. We cannot get it to move to the next steps of ArmDown, Turn. and Shoot. It just keep driving forward. If we switch code around whatever is in the top slot just keeps going on and on. So we are attaching to the code however the code does not seem to attach to a timer. So trying to attach a timer.
Public classAutonomous extends CommandGroup public static double getFPGATimestamp() { return 0; } public Autonomous() { requires(Robot.drivetrain); requires(Robot.robotshooter); requires(Robot.armstart); addSequential(new DriveForward(3.0)); addParallel(new ArmDown()); addSequential(new Turn(2.0)); addSequential(new Shoot(2.0)); Last edited by Rocinante : 02-25-2016 at 03:46 PM. Reason: Forgot a line of code that could be helpful. |
|
#3
|
|||
|
|||
|
Re: Autonomous Timer Issue
I did not see the source for your DriveForward command. I'm guessing it should look something like the following:
Code:
public class DriveForward extends Command {
private double timeToRun;
public DriveForward(double timeout) {
requires(Robot.drivetrain);
timeToRun = timeout;
}
@Override
protected void initialize() {
}
@Override
protected void execute() {
// Change to method to apply power to your drivetrain
drivetrain.setPower(0.4, 0.4);
}
@Override
protected boolean isFinished() {
return (timeSinceInitialized() >= timeout);
}
@Override
protected void end() {
// Don't forget to stop
drivetrain.setPower(0, 0);
}
@Override
protected void interrupted() {
end();
}
}
Also, don't forget to stop the motors in your end() and interrupted() methods - unless you want the robot to continue to move even after the command terminates. |
|
#4
|
|||
|
|||
|
Re: Autonomous Timer Issue
So you are putting the timer in the Drive Forward code not the Autonomous code. I have seen several ways. I think I like this one best. I will give it a shot. Thank you very much.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|