[wpilib] Add PS4Controller, remove Hand from GenericHID/XboxController (#3345)

- GenericHID is now concrete, and has only getRawAxis/Button(int) functionality
- getXxx() has been moved into Joystick as that's the only place where it makes sense
- Hand (and therefore getXxx(Hand)) has been removed, replaced by specific getLeft/RightXxx() methods in XboxController and the new PS4Controller class
- C++ ::Button:: and ::Axis:: enums have been converted to identically-namespaced static constexpr ints
This commit is contained in:
Starlight220
2021-08-14 20:00:46 +03:00
committed by GitHub
parent 25f6f478a5
commit 031962608b
82 changed files with 2548 additions and 934 deletions

View File

@@ -22,10 +22,9 @@ RobotContainer::RobotContainer()
frc::SmartDashboard::PutData(&m_wrist);
frc::SmartDashboard::PutData(&m_claw);
m_drivetrain.SetDefaultCommand(TankDrive(
[this] { return m_joy.GetY(frc::GenericHID::JoystickHand::kLeftHand); },
[this] { return m_joy.GetY(frc::GenericHID::JoystickHand::kRightHand); },
&m_drivetrain));
m_drivetrain.SetDefaultCommand(TankDrive([this] { return m_joy.GetLeftY(); },
[this] { return m_joy.GetRightY(); },
&m_drivetrain));
// Configure the button bindings
ConfigureButtonBindings();
@@ -33,24 +32,20 @@ RobotContainer::RobotContainer()
void RobotContainer::ConfigureButtonBindings() {
// Configure your button bindings here
frc2::JoystickButton m_dUp{&m_joy, 5};
frc2::JoystickButton m_dRight{&m_joy, 6};
frc2::JoystickButton m_dDown{&m_joy, 7};
frc2::JoystickButton m_dLeft{&m_joy, 8};
frc2::JoystickButton m_l2{&m_joy, 9};
frc2::JoystickButton m_r2{&m_joy, 10};
frc2::JoystickButton m_l1{&m_joy, 11};
frc2::JoystickButton m_r1{&m_joy, 12};
m_dUp.WhenPressed(SetElevatorSetpoint(0.25, &m_elevator));
m_dDown.WhenPressed(SetElevatorSetpoint(0.0, &m_elevator));
m_dRight.WhenPressed(CloseClaw(&m_claw));
m_dLeft.WhenPressed(OpenClaw(&m_claw));
m_r1.WhenPressed(PrepareToPickup(&m_claw, &m_wrist, &m_elevator));
m_r2.WhenPressed(Pickup(&m_claw, &m_wrist, &m_elevator));
m_l1.WhenPressed(Place(&m_claw, &m_wrist, &m_elevator));
m_l2.WhenPressed(Autonomous(&m_claw, &m_wrist, &m_elevator, &m_drivetrain));
frc2::JoystickButton(&m_joy, 5).WhenPressed(
SetElevatorSetpoint(0.25, &m_elevator));
frc2::JoystickButton(&m_joy, 6).WhenPressed(CloseClaw(&m_claw));
frc2::JoystickButton(&m_joy, 7).WhenPressed(
SetElevatorSetpoint(0.0, &m_elevator));
frc2::JoystickButton(&m_joy, 8).WhenPressed(OpenClaw(&m_claw));
frc2::JoystickButton(&m_joy, 9).WhenPressed(
Autonomous(&m_claw, &m_wrist, &m_elevator, &m_drivetrain));
frc2::JoystickButton(&m_joy, 10)
.WhenPressed(Pickup(&m_claw, &m_wrist, &m_elevator));
frc2::JoystickButton(&m_joy, 11)
.WhenPressed(Place(&m_claw, &m_wrist, &m_elevator));
frc2::JoystickButton(&m_joy, 12)
.WhenPressed(PrepareToPickup(&m_claw, &m_wrist, &m_elevator));
}
frc2::Command* RobotContainer::GetAutonomousCommand() {

View File

@@ -4,7 +4,7 @@
#pragma once
#include <frc/Joystick.h>
#include <frc/XboxController.h>
#include <frc2/command/Command.h>
#include "commands/Autonomous.h"
@@ -28,7 +28,7 @@ class RobotContainer {
private:
// The robot's subsystems and commands are defined here...
frc::Joystick m_joy{0};
frc::XboxController m_joy{0};
Claw m_claw;
Wrist m_wrist;