betabot-2023/src/main/java/frc/robot/RobotContainer.java
EdwardFaucher 92d35d19f8 hncfcb
2022-12-10 14:53:29 -05:00

100 lines
4.1 KiB
Java

// 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.cameraserver.CameraServer;
import edu.wpi.first.wpilibj.GenericHID;
import edu.wpi.first.wpilibj.XboxController;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.InstantCommand;
import edu.wpi.first.wpilibj2.command.RunCommand;
import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
import edu.wpi.first.wpilibj2.command.button.JoystickButton;
// subsystems
import frc.robot.subsystems.BasePilotable;
import frc.robot.subsystems.Poussoir;
import frc.robot.subsystems.Pistonshaker;
// commands
import frc.robot.commands.Activer_poussoir;
import frc.robot.commands.ActiverBlockeur;
import frc.robot.commands.DesactiverBlockeur;
import frc.robot.commands.Activershaker;
import frc.robot.commands.Avancer;
import frc.robot.commands.BoutonA;
/**
* 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 button mappings) should be declared here.
*/
public class RobotContainer {
// The robot's subsystems and commands are defined here...
XboxController manette = new XboxController(0);
BasePilotable basePilotable = new BasePilotable();
private Pistonshaker pistonshaker = new Pistonshaker();
private Poussoir poussoir = new Poussoir();
private BoutonA BoutonA = new BoutonA(poussoir,pistonshaker);
private ActiverBlockeur ActiverBlockeur = new ActiverBlockeur(poussoir);
private Activershaker Activershaker = new Activershaker(pistonshaker);
private DesactiverBlockeur DesactiverBlockeur = new DesactiverBlockeur(poussoir);
/** The container for the robot. Contains subsystems, OI devices, and commands. */
public RobotContainer() {
CameraServer.startAutomaticCapture();
SmartDashboard.putNumber("AvancerVit", -0.3);
SmartDashboard.putNumber("avancer", 2.71);
// Configure the button bindings
configureButtonBindings();
basePilotable.setDefaultCommand(
new RunCommand(
()-> basePilotable.drive(-manette.getLeftY(), manette.getLeftX(), -manette.getLeftTriggerAxis()+manette.getRightTriggerAxis()), basePilotable)
);
}
/**
* Use this method to define your button->command mappings. Buttons can be created by
* instantiating a {@link GenericHID} or one of its subclasses ({@link
* edu.wpi.first.wpilibj.Joystick} or {@link XboxController}), and then passing it to a {@link
* edu.wpi.first.wpilibj2.command.button.JoystickButton}.
*/
private void configureButtonBindings() {
JoystickButton buttonA = new JoystickButton(manette, XboxController.Button.kA.value);
buttonA.whileHeld(new SequentialCommandGroup(
new Activer_poussoir(poussoir).withTimeout(0.5),
new Activershaker(pistonshaker)
));
JoystickButton rightbumper = new JoystickButton(manette, XboxController.Button.kLeftBumper.value);
rightbumper.whileHeld(Activershaker);
JoystickButton buttonY = new JoystickButton(manette, XboxController.Button.kY.value);
buttonY.whenPressed(DesactiverBlockeur);
JoystickButton buttonX = new JoystickButton(manette, XboxController.Button.kX.value);
buttonX.whenPressed(ActiverBlockeur);
JoystickButton buttonstart = new JoystickButton(manette, XboxController.Button.kStart.value);
buttonstart.whenPressed(
new InstantCommand(
() -> basePilotable.resetgyro(),
basePilotable
)
);
}
/**
* Use this to pass the autonomous command to the main {@link Robot} class.
* @return the command to run in autonomous
*/
public Command getAutonomousCommand() {
// An ExampleCommand will run in autonomous
return new Avancer(basePilotable, SmartDashboard.getNumber("AvancerVit",0)).withTimeout(SmartDashboard.getNumber("avancer", 1));
}
}