-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2b9c4e2
commit 9fd395f
Showing
3 changed files
with
17 additions
and
168 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,12 @@ | ||
// Copyright (c) FIRST and other WPILib contributors. | ||
// Open Source Software; you can modify and/or share it under the terms of | ||
// the WPILib BSD license file in the root directory of this project. | ||
|
||
package frc.robot; | ||
|
||
import edu.wpi.first.wpilibj.RobotBase; | ||
|
||
/** | ||
* Do NOT add any static variables to this class, or any initialization at all. Unless you know what | ||
* you are doing, do not modify this file except to change the parameter class to the startRobot | ||
* call. | ||
*/ | ||
public final class Main { | ||
private Main() {} | ||
private Main() { | ||
} | ||
|
||
/** | ||
* Main initialization function. Do not perform any initialization here. | ||
* | ||
* <p>If you change your main robot class, change the parameter type. | ||
*/ | ||
public static void main(String... args) { | ||
RobotBase.startRobot(Robot::new); | ||
} | ||
public static void main(String... args) { | ||
RobotBase.startRobot(Robot::new); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,103 +1,18 @@ | ||
// Copyright (c) FIRST and other WPILib contributors. | ||
// Open Source Software; you can modify and/or share it under the terms of | ||
// the WPILib BSD license file in the root directory of this project. | ||
|
||
package frc.robot; | ||
|
||
import edu.wpi.first.wpilibj.TimedRobot; | ||
import edu.wpi.first.wpilibj2.command.Command; | ||
import edu.wpi.first.wpilibj2.command.CommandScheduler; | ||
|
||
/** | ||
* The VM is configured to automatically run this class, and to call the functions corresponding to | ||
* each mode, as described in the TimedRobot documentation. If you change the name of this class or | ||
* the package after creating this project, you must also update the build.gradle file in the | ||
* project. | ||
*/ | ||
public class Robot extends TimedRobot { | ||
private Command m_autonomousCommand; | ||
|
||
private RobotContainer m_robotContainer; | ||
|
||
/** | ||
* This function is run when the robot is first started up and should be used for any | ||
* initialization code. | ||
*/ | ||
@Override | ||
public void robotInit() { | ||
// Instantiate our RobotContainer. This will perform all our button bindings, and put our | ||
// autonomous chooser on the dashboard. | ||
m_robotContainer = new RobotContainer(); | ||
} | ||
|
||
/** | ||
* This function is called every 20 ms, no matter the mode. Use this for items like diagnostics | ||
* that you want ran during disabled, autonomous, teleoperated and test. | ||
* | ||
* <p>This runs after the mode specific periodic functions, but before LiveWindow and | ||
* SmartDashboard integrated updating. | ||
*/ | ||
@Override | ||
public void robotPeriodic() { | ||
// Runs the Scheduler. This is responsible for polling buttons, adding newly-scheduled | ||
// commands, running already-scheduled commands, removing finished or interrupted commands, | ||
// and running subsystem periodic() methods. This must be called from the robot's periodic | ||
// block in order for anything in the Command-based framework to work. | ||
CommandScheduler.getInstance().run(); | ||
} | ||
|
||
/** This function is called once each time the robot enters Disabled mode. */ | ||
@Override | ||
public void disabledInit() {} | ||
|
||
@Override | ||
public void disabledPeriodic() {} | ||
|
||
/** This autonomous runs the autonomous command selected by your {@link RobotContainer} class. */ | ||
@Override | ||
public void autonomousInit() { | ||
m_autonomousCommand = m_robotContainer.getAutonomousCommand(); | ||
private RobotContainer robotContainer; | ||
|
||
// schedule the autonomous command (example) | ||
if (m_autonomousCommand != null) { | ||
m_autonomousCommand.schedule(); | ||
@Override | ||
public void robotInit() { | ||
robotContainer = new RobotContainer(); | ||
} | ||
} | ||
|
||
/** This function is called periodically during autonomous. */ | ||
@Override | ||
public void autonomousPeriodic() {} | ||
|
||
@Override | ||
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 (m_autonomousCommand != null) { | ||
m_autonomousCommand.cancel(); | ||
@Override | ||
public void robotPeriodic() { | ||
CommandScheduler.getInstance().run(); | ||
} | ||
} | ||
|
||
/** This function is called periodically during operator control. */ | ||
@Override | ||
public void teleopPeriodic() {} | ||
|
||
@Override | ||
public void testInit() { | ||
// Cancels all running commands at the start of test mode. | ||
CommandScheduler.getInstance().cancelAll(); | ||
} | ||
|
||
/** This function is called periodically during test mode. */ | ||
@Override | ||
public void testPeriodic() {} | ||
|
||
/** This function is called once when the robot is first started up. */ | ||
@Override | ||
public void simulationInit() {} | ||
|
||
/** This function is called periodically whilst in simulation. */ | ||
@Override | ||
public void simulationPeriodic() {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,63 +1,10 @@ | ||
// Copyright (c) FIRST and other WPILib contributors. | ||
// Open Source Software; you can modify and/or share it under the terms of | ||
// the WPILib BSD license file in the root directory of this project. | ||
|
||
package frc.robot; | ||
|
||
import frc.robot.Constants.OperatorConstants; | ||
import frc.robot.commands.Autos; | ||
import frc.robot.commands.ExampleCommand; | ||
import frc.robot.subsystems.ExampleSubsystem; | ||
import edu.wpi.first.wpilibj2.command.Command; | ||
import edu.wpi.first.wpilibj2.command.button.CommandXboxController; | ||
import edu.wpi.first.wpilibj2.command.button.Trigger; | ||
|
||
/** | ||
* This class is where the bulk of the robot should be declared. Since Command-based is a | ||
* "declarative" paradigm, very little robot logic should actually be handled in the {@link Robot} | ||
* periodic methods (other than the scheduler calls). Instead, the structure of the robot (including | ||
* subsystems, commands, and trigger mappings) should be declared here. | ||
*/ | ||
public class RobotContainer { | ||
// The robot's subsystems and commands are defined here... | ||
private final ExampleSubsystem m_exampleSubsystem = new ExampleSubsystem(); | ||
|
||
// Replace with CommandPS4Controller or CommandJoystick if needed | ||
private final CommandXboxController m_driverController = | ||
new CommandXboxController(OperatorConstants.kDriverControllerPort); | ||
|
||
/** The container for the robot. Contains subsystems, OI devices, and commands. */ | ||
public RobotContainer() { | ||
// Configure the trigger bindings | ||
configureBindings(); | ||
} | ||
|
||
/** | ||
* Use this method to define your trigger->command mappings. Triggers can be created via the | ||
* {@link Trigger#Trigger(java.util.function.BooleanSupplier)} constructor with an arbitrary | ||
* predicate, or via the named factories in {@link | ||
* edu.wpi.first.wpilibj2.command.button.CommandGenericHID}'s subclasses for {@link | ||
* CommandXboxController Xbox}/{@link edu.wpi.first.wpilibj2.command.button.CommandPS4Controller | ||
* PS4} controllers or {@link edu.wpi.first.wpilibj2.command.button.CommandJoystick Flight | ||
* joysticks}. | ||
*/ | ||
private void configureBindings() { | ||
// Schedule `ExampleCommand` when `exampleCondition` changes to `true` | ||
new Trigger(m_exampleSubsystem::exampleCondition) | ||
.onTrue(new ExampleCommand(m_exampleSubsystem)); | ||
|
||
// Schedule `exampleMethodCommand` when the Xbox controller's B button is pressed, | ||
// cancelling on release. | ||
m_driverController.b().whileTrue(m_exampleSubsystem.exampleMethodCommand()); | ||
} | ||
public RobotContainer() { | ||
configureBindings(); | ||
} | ||
|
||
/** | ||
* Use this to pass the autonomous command to the main {@link Robot} class. | ||
* | ||
* @return the command to run in autonomous | ||
*/ | ||
public Command getAutonomousCommand() { | ||
// An example command will be run in autonomous | ||
return Autos.exampleAuto(m_exampleSubsystem); | ||
} | ||
private void configureBindings() { | ||
} | ||
} |