I’m trying to do the most absolutely basic wpilib autonomous, and I can’t get it to trigger. It isn’t doing anything, and I’m following the wpilib pretty closely…
// RobotBuilder Version: 2.0
//
// This file was generated by RobotBuilder. It contains sections of
// code that are automatically generated and assigned by robotbuilder.
// These sections will be updated in the future when you export to
// Java from RobotBuilder. Do not put any code or make any change in
// the blocks indicating autogenerated code or it will be lost on an
// update. Deleting the comments indicating the section will prevent
// it from being updated in the future.
package org.usfirst.frc5858.SteamworksBot;
import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.livewindow.LiveWindow;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import org.usfirst.frc5858.SteamworksBot.commands.*;
import org.usfirst.frc5858.SteamworksBot.subsystems.*;
/**
* The VM is configured to automatically run this class, and to call the
* functions corresponding to each mode, as described in the IterativeRobot
* documentation. If you change the name of this class or the package after
* creating this project, you must also update the manifest file in the resource
* directory.
*/
public class Robot extends IterativeRobot {
Command autonomousCommand;
public static OI oi;
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
RobotMap.init();
oi = new OI();
//autonomousCommand = new AutonomousCommand();
autonomousCommand = new DebugAutoCommandOne();
}
/**
* This function is called when the disabled button is hit.
* You can use it to reset subsystems before shutting down.
*/
public void disabledInit(){
}
public void disabledPeriodic() {
Scheduler.getInstance().run();
}
public void autonomousInit() {
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
/**
* This function is called periodically during autonomous
*/
public void autonomousPeriodic() {
Scheduler.getInstance().run();
}
public void teleopInit() {
// This makes sure that the autonomous stops running when
// teleop starts running. If you want the autonomous to
// continue until interrupted by another command, remove
// this line or comment it out.
if (autonomousCommand != null) autonomousCommand.cancel();
}
/**
* This function is called periodically during operator control
*/
public void teleopPeriodic() {
Scheduler.getInstance().run();
}
/**
* This function is called periodically during test mode
*/
public void testPeriodic() {
LiveWindow.run();
}
}
package org.usfirst.frc5858.SteamworksBot.commands;
import java.util.Timer;
import org.usfirst.frc5858.SteamworksBot.Robot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
/**
*
*/
public class DebugAutoCommandOne extends Command {
// we're using 8 so we can use 9 later during a sequential operation!
public String debug_output = "DB/String 9";
double start_time;
double elapsed_time;
public DebugAutoCommandOne() {
// Use requires() here to declare subsystem dependencies
// eg. requires(chassis);
requires(Robot.drivetrain);
}
// Called just before this Command runs the first time
protected void initialize() {
SmartDashboard.putString(debug_output, "Debug one INIT.");
start_time = System.currentTimeMillis();
}
// Called repeatedly when this Command is scheduled to run
protected void execute() {
elapsed_time = System.currentTimeMillis() - start_time;
SmartDashboard.putString(debug_output, "Debug 1 : " + elapsed_time + " ms");
}
// Make this return true when this Command no longer needs to run execute()
protected boolean isFinished() {
SmartDashboard.putString(debug_output, "Debug one DONE.");
return elapsed_time - start_time >= 2.0;
}
// Called once after isFinished returns true
protected void end() {
SmartDashboard.putString(debug_output, "Debug one END.");
}
// Called when another command which requires one or more of the same
// subsystems is scheduled to run
protected void interrupted() {
SmartDashboard.putString(debug_output, "Debug one INTERRUPTED.");
}
}
I never see any indication it’s running, either in the debug boxes OR by debugging and setting breakpoints. It never hits any of the breakpoints at all… am I missing something that’s not covered in the wpilib documentation?