// 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. #include "frc/simulation/XboxControllerSim.h" #include "frc/XboxController.h" using namespace frc; using namespace frc::sim; XboxControllerSim::XboxControllerSim(const XboxController& joystick) : GenericHIDSim{joystick} { SetAxisCount(6); SetButtonCount(10); } XboxControllerSim::XboxControllerSim(int port) : GenericHIDSim{port} { SetAxisCount(6); SetButtonCount(10); } void XboxControllerSim::SetX(GenericHID::JoystickHand hand, double value) { if (hand == GenericHID::kLeftHand) { SetRawAxis(static_cast(XboxController::Axis::kLeftX), value); } else { SetRawAxis(static_cast(XboxController::Axis::kRightX), value); } } void XboxControllerSim::SetY(GenericHID::JoystickHand hand, double value) { if (hand == GenericHID::kLeftHand) { SetRawAxis(static_cast(XboxController::Axis::kLeftY), value); } else { SetRawAxis(static_cast(XboxController::Axis::kRightY), value); } } void XboxControllerSim::SetTriggerAxis(GenericHID::JoystickHand hand, double value) { if (hand == GenericHID::kLeftHand) { SetRawAxis(static_cast(XboxController::Axis::kLeftTrigger), value); } else { SetRawAxis(static_cast(XboxController::Axis::kRightTrigger), value); } } void XboxControllerSim::SetBumper(GenericHID::JoystickHand hand, bool state) { if (hand == GenericHID::kLeftHand) { SetRawButton(static_cast(XboxController::Button::kBumperLeft), state); } else { SetRawButton(static_cast(XboxController::Button::kBumperRight), state); } } void XboxControllerSim::SetStickButton(GenericHID::JoystickHand hand, bool state) { if (hand == GenericHID::kLeftHand) { SetRawButton(static_cast(XboxController::Button::kStickLeft), state); } else { SetRawButton(static_cast(XboxController::Button::kStickRight), state); } } void XboxControllerSim::SetAButton(bool state) { SetRawButton(static_cast(XboxController::Button::kA), state); } void XboxControllerSim::SetBButton(bool state) { SetRawButton(static_cast(XboxController::Button::kB), state); } void XboxControllerSim::SetXButton(bool state) { SetRawButton(static_cast(XboxController::Button::kX), state); } void XboxControllerSim::SetYButton(bool state) { SetRawButton(static_cast(XboxController::Button::kY), state); } void XboxControllerSim::SetBackButton(bool state) { SetRawButton(static_cast(XboxController::Button::kBack), state); } void XboxControllerSim::SetStartButton(bool state) { SetRawButton(static_cast(XboxController::Button::kStart), state); }