#include "WPILib.h" #include "Commands/Command.h" #include "Commands/ExampleCommand.h" #include "CommandBase.h" class Robot: public IterativeRobot { private: std::unique_ptr autonomousCommand; void RobotInit() { CommandBase::init(); autonomousCommand.reset(new ExampleCommand()); } /** * This function is called once each time the robot enters Disabled mode. * You can use it to reset any subsystem information you want to clear when * the robot is disabled. */ void DisabledInit() { } void DisabledPeriodic() { Scheduler::GetInstance().Run(); } void AutonomousInit() { if (autonomousCommand != NULL) autonomousCommand->Start(); } void AutonomousPeriodic() { Scheduler::GetInstance().Run(); } 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(); } void TeleopPeriodic() { Scheduler::GetInstance().Run(); } void TestPeriodic() { LiveWindow::GetInstance().Run(); } }; START_ROBOT_CLASS(Robot)