diff --git a/wpilibc/src/main/native/cpp/drive/DifferentialDrive.cpp b/wpilibc/src/main/native/cpp/drive/DifferentialDrive.cpp index 7a7a93b475..59e3622dbe 100644 --- a/wpilibc/src/main/native/cpp/drive/DifferentialDrive.cpp +++ b/wpilibc/src/main/native/cpp/drive/DifferentialDrive.cpp @@ -15,6 +15,14 @@ using namespace frc; +#if defined(_MSC_VER) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + DifferentialDrive::DifferentialDrive(SpeedController& leftMotor, SpeedController& rightMotor) : m_leftMotor(&leftMotor), m_rightMotor(&rightMotor) { diff --git a/wpilibc/src/main/native/cpp/drive/KilloughDrive.cpp b/wpilibc/src/main/native/cpp/drive/KilloughDrive.cpp index 6c2247b9b6..7cdf145d8f 100644 --- a/wpilibc/src/main/native/cpp/drive/KilloughDrive.cpp +++ b/wpilibc/src/main/native/cpp/drive/KilloughDrive.cpp @@ -16,6 +16,14 @@ using namespace frc; +#if defined(_MSC_VER) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + KilloughDrive::KilloughDrive(SpeedController& leftMotor, SpeedController& rightMotor, SpeedController& backMotor) diff --git a/wpilibc/src/main/native/cpp/drive/MecanumDrive.cpp b/wpilibc/src/main/native/cpp/drive/MecanumDrive.cpp index 2a9eac01f9..d9886b66f5 100644 --- a/wpilibc/src/main/native/cpp/drive/MecanumDrive.cpp +++ b/wpilibc/src/main/native/cpp/drive/MecanumDrive.cpp @@ -17,6 +17,14 @@ using namespace frc; +#if defined(_MSC_VER) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + MecanumDrive::MecanumDrive(SpeedController& frontLeftMotor, SpeedController& rearLeftMotor, SpeedController& frontRightMotor, diff --git a/wpilibc/src/main/native/cpp/drive/RobotDriveBase.cpp b/wpilibc/src/main/native/cpp/drive/RobotDriveBase.cpp index 594cfbcf0c..3b03c3a75a 100644 --- a/wpilibc/src/main/native/cpp/drive/RobotDriveBase.cpp +++ b/wpilibc/src/main/native/cpp/drive/RobotDriveBase.cpp @@ -11,7 +11,7 @@ #include #include "frc/Base.h" -#include "frc/SpeedController.h" +#include "frc/motorcontrol/MotorController.h" using namespace frc; diff --git a/wpilibc/src/main/native/cpp/DMC60.cpp b/wpilibc/src/main/native/cpp/motorcontrol/DMC60.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/DMC60.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/DMC60.cpp index 001a51e5c8..81fa868f84 100644 --- a/wpilibc/src/main/native/cpp/DMC60.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/DMC60.cpp @@ -2,13 +2,13 @@ // 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/DMC60.h" +#include "frc/motorcontrol/DMC60.h" #include using namespace frc; -DMC60::DMC60(int channel) : PWMSpeedController("DMC60", channel) { +DMC60::DMC60(int channel) : PWMMotorController("DMC60", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/Jaguar.cpp b/wpilibc/src/main/native/cpp/motorcontrol/Jaguar.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/Jaguar.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/Jaguar.cpp index 2cf93c1de2..c68ae0c8f2 100644 --- a/wpilibc/src/main/native/cpp/Jaguar.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/Jaguar.cpp @@ -2,13 +2,13 @@ // 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/Jaguar.h" +#include "frc/motorcontrol/Jaguar.h" #include using namespace frc; -Jaguar::Jaguar(int channel) : PWMSpeedController("Jaguar", channel) { +Jaguar::Jaguar(int channel) : PWMMotorController("Jaguar", channel) { m_pwm.SetBounds(2.31, 1.55, 1.507, 1.454, 0.697); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/motorcontrol/MotorControllerGroup.cpp b/wpilibc/src/main/native/cpp/motorcontrol/MotorControllerGroup.cpp new file mode 100644 index 0000000000..54ec4d8a94 --- /dev/null +++ b/wpilibc/src/main/native/cpp/motorcontrol/MotorControllerGroup.cpp @@ -0,0 +1,69 @@ +// 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/motorcontrol/MotorControllerGroup.h" + +#include "frc/smartdashboard/SendableBuilder.h" +#include "frc/smartdashboard/SendableRegistry.h" + +using namespace frc; + +// Can't use a delegated constructor here because of an MSVC bug. +// https://developercommunity.visualstudio.com/content/problem/583/compiler-bug-with-delegating-a-constructor.html + +MotorControllerGroup::MotorControllerGroup( + std::vector>&& motorControllers) + : m_motorControllers(std::move(motorControllers)) { + Initialize(); +} + +void MotorControllerGroup::Initialize() { + for (auto& motorController : m_motorControllers) { + SendableRegistry::GetInstance().AddChild(this, &motorController.get()); + } + static int instances = 0; + ++instances; + SendableRegistry::GetInstance().Add(this, "MotorControllerGroup", instances); +} + +void MotorControllerGroup::Set(double speed) { + for (auto motorController : m_motorControllers) { + motorController.get().Set(m_isInverted ? -speed : speed); + } +} + +double MotorControllerGroup::Get() const { + if (!m_motorControllers.empty()) { + return m_motorControllers.front().get().Get() * (m_isInverted ? -1 : 1); + } + return 0.0; +} + +void MotorControllerGroup::SetInverted(bool isInverted) { + m_isInverted = isInverted; +} + +bool MotorControllerGroup::GetInverted() const { + return m_isInverted; +} + +void MotorControllerGroup::Disable() { + for (auto motorController : m_motorControllers) { + motorController.get().Disable(); + } +} + +void MotorControllerGroup::StopMotor() { + for (auto motorController : m_motorControllers) { + motorController.get().StopMotor(); + } +} + +void MotorControllerGroup::InitSendable(SendableBuilder& builder) { + builder.SetSmartDashboardType("Motor Controller"); + builder.SetActuator(true); + builder.SetSafeState([=]() { StopMotor(); }); + builder.AddDoubleProperty( + "Value", [=]() { return Get(); }, [=](double value) { Set(value); }); +} diff --git a/wpilibc/src/main/native/cpp/NidecBrushless.cpp b/wpilibc/src/main/native/cpp/motorcontrol/NidecBrushless.cpp similarity index 97% rename from wpilibc/src/main/native/cpp/NidecBrushless.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/NidecBrushless.cpp index ff61843000..fdca9b9341 100644 --- a/wpilibc/src/main/native/cpp/NidecBrushless.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/NidecBrushless.cpp @@ -2,7 +2,7 @@ // 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/NidecBrushless.h" +#include "frc/motorcontrol/NidecBrushless.h" #include #include diff --git a/wpilibc/src/main/native/cpp/PWMSpeedController.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp similarity index 59% rename from wpilibc/src/main/native/cpp/PWMSpeedController.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp index ff04282559..9f0394639a 100644 --- a/wpilibc/src/main/native/cpp/PWMSpeedController.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp @@ -2,7 +2,7 @@ // 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/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" #include @@ -10,45 +10,45 @@ using namespace frc; -void PWMSpeedController::Set(double speed) { +void PWMMotorController::Set(double speed) { m_pwm.SetSpeed(m_isInverted ? -speed : speed); } -double PWMSpeedController::Get() const { +double PWMMotorController::Get() const { return m_pwm.GetSpeed() * (m_isInverted ? -1.0 : 1.0); } -void PWMSpeedController::SetInverted(bool isInverted) { +void PWMMotorController::SetInverted(bool isInverted) { m_isInverted = isInverted; } -bool PWMSpeedController::GetInverted() const { +bool PWMMotorController::GetInverted() const { return m_isInverted; } -void PWMSpeedController::Disable() { +void PWMMotorController::Disable() { m_pwm.SetDisabled(); } -void PWMSpeedController::StopMotor() { +void PWMMotorController::StopMotor() { Disable(); } -void PWMSpeedController::GetDescription(wpi::raw_ostream& desc) const { +void PWMMotorController::GetDescription(wpi::raw_ostream& desc) const { desc << "PWM " << GetChannel(); } -int PWMSpeedController::GetChannel() const { +int PWMMotorController::GetChannel() const { return m_pwm.GetChannel(); } -PWMSpeedController::PWMSpeedController(const wpi::Twine& name, int channel) +PWMMotorController::PWMMotorController(const wpi::Twine& name, int channel) : m_pwm(channel, false) { SendableRegistry::GetInstance().AddLW(this, name, channel); } -void PWMSpeedController::InitSendable(SendableBuilder& builder) { - builder.SetSmartDashboardType("Speed Controller"); +void PWMMotorController::InitSendable(SendableBuilder& builder) { + builder.SetSmartDashboardType("Motor Controller"); builder.SetActuator(true); builder.SetSafeState([=] { Disable(); }); builder.AddDoubleProperty( diff --git a/wpilibc/src/main/native/cpp/PWMSparkMax.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMSparkMax.cpp similarity index 86% rename from wpilibc/src/main/native/cpp/PWMSparkMax.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMSparkMax.cpp index 2e4a08e9be..666f1e928c 100644 --- a/wpilibc/src/main/native/cpp/PWMSparkMax.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMSparkMax.cpp @@ -2,7 +2,7 @@ // 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/PWMSparkMax.h" +#include "frc/motorcontrol/PWMSparkMax.h" #include @@ -11,7 +11,7 @@ using namespace frc; PWMSparkMax::PWMSparkMax(int channel) - : PWMSpeedController("PWMSparkMax", channel) { + : PWMMotorController("PWMSparkMax", channel) { m_pwm.SetBounds(2.003, 1.55, 1.50, 1.46, 0.999); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/PWMTalonFX.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMTalonFX.cpp similarity index 85% rename from wpilibc/src/main/native/cpp/PWMTalonFX.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMTalonFX.cpp index 7b85cf8bd6..2c6982b132 100644 --- a/wpilibc/src/main/native/cpp/PWMTalonFX.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMTalonFX.cpp @@ -2,14 +2,14 @@ // 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/PWMTalonFX.h" +#include "frc/motorcontrol/PWMTalonFX.h" #include using namespace frc; PWMTalonFX::PWMTalonFX(int channel) - : PWMSpeedController("PWMTalonFX", channel) { + : PWMMotorController("PWMTalonFX", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/PWMTalonSRX.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMTalonSRX.cpp similarity index 85% rename from wpilibc/src/main/native/cpp/PWMTalonSRX.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMTalonSRX.cpp index b70c706760..b253412766 100644 --- a/wpilibc/src/main/native/cpp/PWMTalonSRX.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMTalonSRX.cpp @@ -2,14 +2,14 @@ // 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/PWMTalonSRX.h" +#include "frc/motorcontrol/PWMTalonSRX.h" #include using namespace frc; PWMTalonSRX::PWMTalonSRX(int channel) - : PWMSpeedController("PWMTalonSRX", channel) { + : PWMMotorController("PWMTalonSRX", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/PWMVenom.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMVenom.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/PWMVenom.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMVenom.cpp index 75dc008862..e55802837a 100644 --- a/wpilibc/src/main/native/cpp/PWMVenom.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMVenom.cpp @@ -2,13 +2,13 @@ // 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/PWMVenom.h" +#include "frc/motorcontrol/PWMVenom.h" #include using namespace frc; -PWMVenom::PWMVenom(int channel) : PWMSpeedController("PWMVenom", channel) { +PWMVenom::PWMVenom(int channel) : PWMMotorController("PWMVenom", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/PWMVictorSPX.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMVictorSPX.cpp similarity index 84% rename from wpilibc/src/main/native/cpp/PWMVictorSPX.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/PWMVictorSPX.cpp index 89cb207986..10ce992114 100644 --- a/wpilibc/src/main/native/cpp/PWMVictorSPX.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMVictorSPX.cpp @@ -2,14 +2,14 @@ // 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/PWMVictorSPX.h" +#include "frc/motorcontrol/PWMVictorSPX.h" #include using namespace frc; PWMVictorSPX::PWMVictorSPX(int channel) - : PWMSpeedController("PWMVictorSPX", channel) { + : PWMMotorController("PWMVictorSPX", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/SD540.cpp b/wpilibc/src/main/native/cpp/motorcontrol/SD540.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/SD540.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/SD540.cpp index 2ff10f5814..3d5738f3bc 100644 --- a/wpilibc/src/main/native/cpp/SD540.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/SD540.cpp @@ -2,13 +2,13 @@ // 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/SD540.h" +#include "frc/motorcontrol/SD540.h" #include using namespace frc; -SD540::SD540(int channel) : PWMSpeedController("SD540", channel) { +SD540::SD540(int channel) : PWMMotorController("SD540", channel) { m_pwm.SetBounds(2.05, 1.55, 1.50, 1.44, 0.94); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/Spark.cpp b/wpilibc/src/main/native/cpp/motorcontrol/Spark.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/Spark.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/Spark.cpp index 80db37d45f..45394df33d 100644 --- a/wpilibc/src/main/native/cpp/Spark.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/Spark.cpp @@ -2,13 +2,13 @@ // 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/Spark.h" +#include "frc/motorcontrol/Spark.h" #include using namespace frc; -Spark::Spark(int channel) : PWMSpeedController("Spark", channel) { +Spark::Spark(int channel) : PWMMotorController("Spark", channel) { m_pwm.SetBounds(2.003, 1.55, 1.50, 1.46, 0.999); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/Talon.cpp b/wpilibc/src/main/native/cpp/motorcontrol/Talon.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/Talon.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/Talon.cpp index 7424157053..f4b3b69740 100644 --- a/wpilibc/src/main/native/cpp/Talon.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/Talon.cpp @@ -2,13 +2,13 @@ // 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/Talon.h" +#include "frc/motorcontrol/Talon.h" #include using namespace frc; -Talon::Talon(int channel) : PWMSpeedController("Talon", channel) { +Talon::Talon(int channel) : PWMMotorController("Talon", channel) { m_pwm.SetBounds(2.037, 1.539, 1.513, 1.487, 0.989); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/Victor.cpp b/wpilibc/src/main/native/cpp/motorcontrol/Victor.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/Victor.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/Victor.cpp index a6d4805022..3ad29f73ee 100644 --- a/wpilibc/src/main/native/cpp/Victor.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/Victor.cpp @@ -2,13 +2,13 @@ // 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/Victor.h" +#include "frc/motorcontrol/Victor.h" #include using namespace frc; -Victor::Victor(int channel) : PWMSpeedController("Victor", channel) { +Victor::Victor(int channel) : PWMMotorController("Victor", channel) { m_pwm.SetBounds(2.027, 1.525, 1.507, 1.49, 1.026); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_2X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/cpp/VictorSP.cpp b/wpilibc/src/main/native/cpp/motorcontrol/VictorSP.cpp similarity index 83% rename from wpilibc/src/main/native/cpp/VictorSP.cpp rename to wpilibc/src/main/native/cpp/motorcontrol/VictorSP.cpp index f4da973b59..6dc888ef1a 100644 --- a/wpilibc/src/main/native/cpp/VictorSP.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/VictorSP.cpp @@ -2,13 +2,13 @@ // 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/VictorSP.h" +#include "frc/motorcontrol/VictorSP.h" #include using namespace frc; -VictorSP::VictorSP(int channel) : PWMSpeedController("VictorSP", channel) { +VictorSP::VictorSP(int channel) : PWMMotorController("VictorSP", channel) { m_pwm.SetBounds(2.004, 1.52, 1.50, 1.48, 0.997); m_pwm.SetPeriodMultiplier(PWM::kPeriodMultiplier_1X); m_pwm.SetSpeed(0.0); diff --git a/wpilibc/src/main/native/include/frc/Servo.h b/wpilibc/src/main/native/include/frc/Servo.h index aa14185aba..feaaf0f557 100644 --- a/wpilibc/src/main/native/include/frc/Servo.h +++ b/wpilibc/src/main/native/include/frc/Servo.h @@ -5,7 +5,6 @@ #pragma once #include "frc/PWM.h" -#include "frc/SpeedController.h" namespace frc { diff --git a/wpilibc/src/main/native/include/frc/SpeedController.h b/wpilibc/src/main/native/include/frc/SpeedController.h index fcb5de9b68..a1827b4c3a 100644 --- a/wpilibc/src/main/native/include/frc/SpeedController.h +++ b/wpilibc/src/main/native/include/frc/SpeedController.h @@ -5,13 +5,14 @@ #pragma once #include +#include namespace frc { /** * Interface for speed controlling devices. */ -class SpeedController { +class WPI_DEPRECATED("use MotorController") SpeedController { public: virtual ~SpeedController() = default; diff --git a/wpilibc/src/main/native/include/frc/SpeedControllerGroup.h b/wpilibc/src/main/native/include/frc/SpeedControllerGroup.h index 2b621109b4..5552c80ebe 100644 --- a/wpilibc/src/main/native/include/frc/SpeedControllerGroup.h +++ b/wpilibc/src/main/native/include/frc/SpeedControllerGroup.h @@ -7,15 +7,18 @@ #include #include -#include "frc/SpeedController.h" +#include + +#include "frc/motorcontrol/MotorController.h" #include "frc/smartdashboard/Sendable.h" #include "frc/smartdashboard/SendableHelper.h" namespace frc { -class SpeedControllerGroup : public Sendable, - public SpeedController, - public SendableHelper { +class WPI_DEPRECATED("use MotorControllerGroup") SpeedControllerGroup + : public Sendable, + public MotorController, + public SendableHelper { public: template explicit SpeedControllerGroup(SpeedController& speedController, diff --git a/wpilibc/src/main/native/include/frc/drive/DifferentialDrive.h b/wpilibc/src/main/native/include/frc/drive/DifferentialDrive.h index dc24959a80..57a125e558 100644 --- a/wpilibc/src/main/native/include/frc/drive/DifferentialDrive.h +++ b/wpilibc/src/main/native/include/frc/drive/DifferentialDrive.h @@ -12,6 +12,17 @@ namespace frc { +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + class SpeedController; /** @@ -19,9 +30,9 @@ class SpeedController; * the Kit of Parts drive base, "tank drive", or West Coast Drive. * * These drive bases typically have drop-center / skid-steer with two or more - * wheels per side (e.g., 6WD or 8WD). This class takes a SpeedController per + * wheels per side (e.g., 6WD or 8WD). This class takes a MotorController per * side. For four and six motor drivetrains, construct and pass in - * SpeedControllerGroup instances as follows. + * MotorControllerGroup instances as follows. * * Four motor drivetrain: * @code{.cpp} @@ -29,11 +40,11 @@ class SpeedController; * public: * frc::PWMVictorSPX m_frontLeft{1}; * frc::PWMVictorSPX m_rearLeft{2}; - * frc::SpeedControllerGroup m_left{m_frontLeft, m_rearLeft}; + * frc::MotorControllerGroup m_left{m_frontLeft, m_rearLeft}; * * frc::PWMVictorSPX m_frontRight{3}; * frc::PWMVictorSPX m_rearRight{4}; - * frc::SpeedControllerGroup m_right{m_frontRight, m_rearRight}; + * frc::MotorControllerGroup m_right{m_frontRight, m_rearRight}; * * frc::DifferentialDrive m_drive{m_left, m_right}; * }; @@ -46,12 +57,12 @@ class SpeedController; * frc::PWMVictorSPX m_frontLeft{1}; * frc::PWMVictorSPX m_midLeft{2}; * frc::PWMVictorSPX m_rearLeft{3}; - * frc::SpeedControllerGroup m_left{m_frontLeft, m_midLeft, m_rearLeft}; + * frc::MotorControllerGroup m_left{m_frontLeft, m_midLeft, m_rearLeft}; * * frc::PWMVictorSPX m_frontRight{4}; * frc::PWMVictorSPX m_midRight{5}; * frc::PWMVictorSPX m_rearRight{6}; - * frc::SpeedControllerGroup m_right{m_frontRight, m_midRight, m_rearRight}; + * frc::MotorControllerGroup m_right{m_frontRight, m_midRight, m_rearRight}; * * frc::DifferentialDrive m_drive{m_left, m_right}; * }; @@ -105,7 +116,7 @@ class DifferentialDrive : public RobotDriveBase, /** * Construct a DifferentialDrive. * - * To pass multiple motors per side, use a SpeedControllerGroup. If a motor + * To pass multiple motors per side, use a MotorControllerGroup. If a motor * needs to be inverted, do so before passing it in. */ DifferentialDrive(SpeedController& leftMotor, SpeedController& rightMotor); @@ -219,4 +230,12 @@ class DifferentialDrive : public RobotDriveBase, double m_rightSideInvertMultiplier = -1.0; }; +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__clang__) +#pragma clang diagnostic pop +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#endif + } // namespace frc diff --git a/wpilibc/src/main/native/include/frc/drive/KilloughDrive.h b/wpilibc/src/main/native/include/frc/drive/KilloughDrive.h index d2ebd83d8d..25f370a77a 100644 --- a/wpilibc/src/main/native/include/frc/drive/KilloughDrive.h +++ b/wpilibc/src/main/native/include/frc/drive/KilloughDrive.h @@ -15,6 +15,17 @@ namespace frc { +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + class SpeedController; /** @@ -140,4 +151,12 @@ class KilloughDrive : public RobotDriveBase, bool reported = false; }; +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__clang__) +#pragma clang diagnostic pop +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#endif + } // namespace frc diff --git a/wpilibc/src/main/native/include/frc/drive/MecanumDrive.h b/wpilibc/src/main/native/include/frc/drive/MecanumDrive.h index 13d56c5aa8..7c7c161f01 100644 --- a/wpilibc/src/main/native/include/frc/drive/MecanumDrive.h +++ b/wpilibc/src/main/native/include/frc/drive/MecanumDrive.h @@ -14,6 +14,17 @@ namespace frc { +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + class SpeedController; /** @@ -145,4 +156,12 @@ class MecanumDrive : public RobotDriveBase, bool reported = false; }; +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__clang__) +#pragma clang diagnostic pop +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#endif + } // namespace frc diff --git a/wpilibc/src/main/native/include/frc/drive/RobotDriveBase.h b/wpilibc/src/main/native/include/frc/drive/RobotDriveBase.h index 830ed326b4..60c0ac38ac 100644 --- a/wpilibc/src/main/native/include/frc/drive/RobotDriveBase.h +++ b/wpilibc/src/main/native/include/frc/drive/RobotDriveBase.h @@ -13,8 +13,6 @@ namespace frc { -class SpeedController; - /** * Common base class for drive platforms. */ diff --git a/wpilibc/src/main/native/include/frc/DMC60.h b/wpilibc/src/main/native/include/frc/motorcontrol/DMC60.h similarity index 90% rename from wpilibc/src/main/native/include/frc/DMC60.h rename to wpilibc/src/main/native/include/frc/motorcontrol/DMC60.h index 492059ca86..928cceda07 100644 --- a/wpilibc/src/main/native/include/frc/DMC60.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/DMC60.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Digilent DMC 60 Speed Controller. + * Digilent DMC 60 Motor Controller. * * Note that the DMC 60 uses the following bounds for PWM values. These * values should work reasonably well for most controllers, but if users @@ -24,7 +24,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class DMC60 : public PWMSpeedController { +class DMC60 : public PWMMotorController { public: /** * Constructor for a Digilent DMC 60. diff --git a/wpilibc/src/main/native/include/frc/Jaguar.h b/wpilibc/src/main/native/include/frc/motorcontrol/Jaguar.h similarity index 88% rename from wpilibc/src/main/native/include/frc/Jaguar.h rename to wpilibc/src/main/native/include/frc/motorcontrol/Jaguar.h index 15cbf7b3c7..461bf91947 100644 --- a/wpilibc/src/main/native/include/frc/Jaguar.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/Jaguar.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Luminary Micro / Vex Robotics Jaguar Speed Controller with PWM control. + * Luminary Micro / Vex Robotics Jaguar Motor Controller with PWM control. * * Note that the Jaguar uses the following bounds for PWM values. These values * should work reasonably well for most controllers, but if users experience @@ -24,7 +24,7 @@ namespace frc { * \li 1.454ms = the "low end" of the deadband range * \li 0.697ms = full "reverse" */ -class Jaguar : public PWMSpeedController { +class Jaguar : public PWMMotorController { public: /** * Constructor for a Jaguar connected via PWM. diff --git a/wpilibc/src/main/native/include/frc/motorcontrol/MotorController.h b/wpilibc/src/main/native/include/frc/motorcontrol/MotorController.h new file mode 100644 index 0000000000..8ed19bcba5 --- /dev/null +++ b/wpilibc/src/main/native/include/frc/motorcontrol/MotorController.h @@ -0,0 +1,37 @@ +// 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. + +#pragma once + +#include + +#include "frc/SpeedController.h" + +namespace frc { + +#if defined(_MSC_VER) +#pragma warning(push) +#pragma warning(disable : 4996) // was declared deprecated +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif + +/** + * Interface for motor controlling devices. + */ +class MotorController : public SpeedController {}; + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__clang__) +#pragma clang diagnostic pop +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#endif + +} // namespace frc diff --git a/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.h b/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.h new file mode 100644 index 0000000000..584eb02da9 --- /dev/null +++ b/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.h @@ -0,0 +1,47 @@ +// 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. + +#pragma once + +#include +#include + +#include "frc/motorcontrol/MotorController.h" +#include "frc/smartdashboard/Sendable.h" +#include "frc/smartdashboard/SendableHelper.h" + +namespace frc { + +class MotorControllerGroup : public Sendable, + public MotorController, + public SendableHelper { + public: + template + explicit MotorControllerGroup(MotorController& motorController, + MotorControllers&... motorControllers); + explicit MotorControllerGroup( + std::vector>&& motorControllers); + + MotorControllerGroup(MotorControllerGroup&&) = default; + MotorControllerGroup& operator=(MotorControllerGroup&&) = default; + + void Set(double speed) override; + double Get() const override; + void SetInverted(bool isInverted) override; + bool GetInverted() const override; + void Disable() override; + void StopMotor() override; + + void InitSendable(SendableBuilder& builder) override; + + private: + bool m_isInverted = false; + std::vector> m_motorControllers; + + void Initialize(); +}; + +} // namespace frc + +#include "frc/motorcontrol/MotorControllerGroup.inc" diff --git a/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.inc b/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.inc new file mode 100644 index 0000000000..8f876354a1 --- /dev/null +++ b/wpilibc/src/main/native/include/frc/motorcontrol/MotorControllerGroup.inc @@ -0,0 +1,22 @@ +// 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. + +#pragma once + +#include +#include + +#include "frc/motorcontrol/MotorControllerGroup.h" + +namespace frc { + +template +MotorControllerGroup::MotorControllerGroup( + MotorController& motorController, MotorControllers&... motorControllers) + : m_motorControllers(std::vector>{ + motorController, motorControllers...}) { + Initialize(); +} + +} // namespace frc diff --git a/wpilibc/src/main/native/include/frc/NidecBrushless.h b/wpilibc/src/main/native/include/frc/motorcontrol/NidecBrushless.h similarity index 95% rename from wpilibc/src/main/native/include/frc/NidecBrushless.h rename to wpilibc/src/main/native/include/frc/motorcontrol/NidecBrushless.h index 5e1becaae6..f92e0f3759 100644 --- a/wpilibc/src/main/native/include/frc/NidecBrushless.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/NidecBrushless.h @@ -8,7 +8,7 @@ #include "frc/ErrorBase.h" #include "frc/MotorSafety.h" #include "frc/PWM.h" -#include "frc/SpeedController.h" +#include "frc/motorcontrol/MotorController.h" #include "frc/smartdashboard/Sendable.h" #include "frc/smartdashboard/SendableHelper.h" @@ -19,7 +19,7 @@ class SendableBuilder; /** * Nidec Brushless Motor. */ -class NidecBrushless : public SpeedController, +class NidecBrushless : public MotorController, public MotorSafety, public Sendable, public SendableHelper { @@ -39,7 +39,7 @@ class NidecBrushless : public SpeedController, NidecBrushless(NidecBrushless&&) = default; NidecBrushless& operator=(NidecBrushless&&) = default; - // SpeedController interface + // MotorController interface /** * Set the PWM value. * diff --git a/wpilibc/src/main/native/include/frc/PWMSpeedController.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMMotorController.h similarity index 76% rename from wpilibc/src/main/native/include/frc/PWMSpeedController.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMMotorController.h index 786855e756..eb85b0a992 100644 --- a/wpilibc/src/main/native/include/frc/PWMSpeedController.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMMotorController.h @@ -8,7 +8,7 @@ #include "frc/MotorSafety.h" #include "frc/PWM.h" -#include "frc/SpeedController.h" +#include "frc/motorcontrol/MotorController.h" #include "frc/smartdashboard/Sendable.h" #include "frc/smartdashboard/SendableHelper.h" @@ -19,15 +19,15 @@ class raw_ostream; namespace frc { /** - * Common base class for all PWM Speed Controllers. + * Common base class for all PWM Motor Controllers. */ -class PWMSpeedController : public SpeedController, +class PWMMotorController : public MotorController, public MotorSafety, public Sendable, - public SendableHelper { + public SendableHelper { public: - PWMSpeedController(PWMSpeedController&&) = default; - PWMSpeedController& operator=(PWMSpeedController&&) = default; + PWMMotorController(PWMMotorController&&) = default; + PWMMotorController& operator=(PWMMotorController&&) = default; /** * Set the PWM value. @@ -42,7 +42,7 @@ class PWMSpeedController : public SpeedController, /** * Get the recently set value of the PWM. This value is affected by the * inversion property. If you want the value that is sent directly to the - * SpeedController, use {@link PWM#getSpeed()} instead. + * MotorController, use {@link PWM#getSpeed()} instead. * * @return The most recently set value for the PWM between -1.0 and 1.0. */ @@ -62,13 +62,13 @@ class PWMSpeedController : public SpeedController, protected: /** - * Constructor for a PWM Speed Controller connected via PWM. + * Constructor for a PWM Motor Controller connected via PWM. * * @param name Name to use for SendableRegistry * @param channel The PWM channel that the controller is attached to. 0-9 are * on-board, 10-19 are on the MXP port */ - PWMSpeedController(const wpi::Twine& name, int channel); + PWMMotorController(const wpi::Twine& name, int channel); void InitSendable(SendableBuilder& builder) override; diff --git a/wpilibc/src/main/native/include/frc/PWMSparkMax.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMSparkMax.h similarity index 89% rename from wpilibc/src/main/native/include/frc/PWMSparkMax.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMSparkMax.h index 2a32d996a2..9b6b65aba4 100644 --- a/wpilibc/src/main/native/include/frc/PWMSparkMax.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMSparkMax.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * REV Robotics SPARK MAX Speed Controller. + * REV Robotics SPARK MAX Motor Controller. * * Note that the SPARK MAX uses the following bounds for PWM values. These * values should work reasonably well for most controllers, but if users @@ -24,7 +24,7 @@ namespace frc { * \li 1.460ms = the "low end" of the deadband range * \li 0.999ms = full "reverse" */ -class PWMSparkMax : public PWMSpeedController { +class PWMSparkMax : public PWMMotorController { public: /** * Constructor for a SPARK MAX. diff --git a/wpilibc/src/main/native/include/frc/PWMTalonFX.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonFX.h similarity index 88% rename from wpilibc/src/main/native/include/frc/PWMTalonFX.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonFX.h index 406d8afd0a..38d24248ee 100644 --- a/wpilibc/src/main/native/include/frc/PWMTalonFX.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonFX.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Cross the Road Electronics (CTRE) Talon FX Speed Controller with PWM + * Cross the Road Electronics (CTRE) Talon FX Motor Controller with PWM * control. * * Note that the Talon FX uses the following bounds for PWM values. These @@ -25,7 +25,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class PWMTalonFX : public PWMSpeedController { +class PWMTalonFX : public PWMMotorController { public: /** * Construct a Talon FX connected via PWM. diff --git a/wpilibc/src/main/native/include/frc/PWMTalonSRX.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonSRX.h similarity index 88% rename from wpilibc/src/main/native/include/frc/PWMTalonSRX.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonSRX.h index c7e01e690d..6b0e1c2871 100644 --- a/wpilibc/src/main/native/include/frc/PWMTalonSRX.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMTalonSRX.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Cross the Road Electronics (CTRE) Talon SRX Speed Controller with PWM + * Cross the Road Electronics (CTRE) Talon SRX Motor Controller with PWM * control. * * Note that the Talon SRX uses the following bounds for PWM values. These @@ -25,7 +25,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class PWMTalonSRX : public PWMSpeedController { +class PWMTalonSRX : public PWMMotorController { public: /** * Construct a Talon SRX connected via PWM. diff --git a/wpilibc/src/main/native/include/frc/PWMVenom.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMVenom.h similarity index 92% rename from wpilibc/src/main/native/include/frc/PWMVenom.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMVenom.h index 60526b31fb..1047e8e7fc 100644 --- a/wpilibc/src/main/native/include/frc/PWMVenom.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMVenom.h @@ -4,7 +4,7 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { @@ -23,7 +23,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class PWMVenom : public PWMSpeedController { +class PWMVenom : public PWMMotorController { public: /** * Construct a Venom connected via PWM. diff --git a/wpilibc/src/main/native/include/frc/PWMVictorSPX.h b/wpilibc/src/main/native/include/frc/motorcontrol/PWMVictorSPX.h similarity index 88% rename from wpilibc/src/main/native/include/frc/PWMVictorSPX.h rename to wpilibc/src/main/native/include/frc/motorcontrol/PWMVictorSPX.h index ecba52a974..b0369966e1 100644 --- a/wpilibc/src/main/native/include/frc/PWMVictorSPX.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/PWMVictorSPX.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Cross the Road Electronics (CTRE) Victor SPX Speed Controller with PWM + * Cross the Road Electronics (CTRE) Victor SPX Motor Controller with PWM * control. * * Note that the Victor SPX uses the following bounds for PWM values. These @@ -25,7 +25,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class PWMVictorSPX : public PWMSpeedController { +class PWMVictorSPX : public PWMMotorController { public: /** * Construct a Victor SPX connected via PWM. diff --git a/wpilibc/src/main/native/include/frc/SD540.h b/wpilibc/src/main/native/include/frc/motorcontrol/SD540.h similarity index 90% rename from wpilibc/src/main/native/include/frc/SD540.h rename to wpilibc/src/main/native/include/frc/motorcontrol/SD540.h index 101a677dac..b292c34886 100644 --- a/wpilibc/src/main/native/include/frc/SD540.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/SD540.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Mindsensors SD540 Speed Controller. + * Mindsensors SD540 Motor Controller. * * Note that the SD540 uses the following bounds for PWM values. These values * should work reasonably well for most controllers, but if users experience @@ -24,7 +24,7 @@ namespace frc { * \li 1.44ms = the "low end" of the deadband range * \li 0.94ms = full "reverse" */ -class SD540 : public PWMSpeedController { +class SD540 : public PWMMotorController { public: /** * Constructor for a SD540. diff --git a/wpilibc/src/main/native/include/frc/Spark.h b/wpilibc/src/main/native/include/frc/motorcontrol/Spark.h similarity index 90% rename from wpilibc/src/main/native/include/frc/Spark.h rename to wpilibc/src/main/native/include/frc/motorcontrol/Spark.h index 7ec2b82c1d..9391d25251 100644 --- a/wpilibc/src/main/native/include/frc/Spark.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/Spark.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * REV Robotics SPARK Speed Controller. + * REV Robotics SPARK Motor Controller. * * Note that the SPARK uses the following bounds for PWM values. These values * should work reasonably well for most controllers, but if users experience @@ -24,7 +24,7 @@ namespace frc { * \li 1.460ms = the "low end" of the deadband range * \li 0.999ms = full "reverse" */ -class Spark : public PWMSpeedController { +class Spark : public PWMMotorController { public: /** * Constructor for a SPARK. diff --git a/wpilibc/src/main/native/include/frc/Talon.h b/wpilibc/src/main/native/include/frc/motorcontrol/Talon.h similarity index 88% rename from wpilibc/src/main/native/include/frc/Talon.h rename to wpilibc/src/main/native/include/frc/motorcontrol/Talon.h index 510eba512a..dbeb836ea8 100644 --- a/wpilibc/src/main/native/include/frc/Talon.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/Talon.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Cross the Road Electronics (CTRE) Talon and Talon SR Speed Controller. + * Cross the Road Electronics (CTRE) Talon and Talon SR Motor Controller. * * Note that the Talon uses the following bounds for PWM values. These values * should work reasonably well for most controllers, but if users experience @@ -24,7 +24,7 @@ namespace frc { * \li 1.487ms = the "low end" of the deadband range * \li 0.989ms = full "reverse" */ -class Talon : public PWMSpeedController { +class Talon : public PWMMotorController { public: /** * Constructor for a Talon (original or Talon SR). diff --git a/wpilibc/src/main/native/include/frc/Victor.h b/wpilibc/src/main/native/include/frc/motorcontrol/Victor.h similarity index 87% rename from wpilibc/src/main/native/include/frc/Victor.h rename to wpilibc/src/main/native/include/frc/motorcontrol/Victor.h index 600e9a17aa..670eb3dbf2 100644 --- a/wpilibc/src/main/native/include/frc/Victor.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/Victor.h @@ -4,14 +4,14 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Vex Robotics Victor 888 Speed Controller. + * Vex Robotics Victor 888 Motor Controller. * - * The Vex Robotics Victor 884 Speed Controller can also be used with this + * The Vex Robotics Victor 884 Motor Controller can also be used with this * class but may need to be calibrated per the Victor 884 user manual. * * Note that the Victor uses the following bounds for PWM values. These @@ -28,7 +28,7 @@ namespace frc { * \li 1.490ms = the "low end" of the deadband range * \li 1.026ms = full "reverse" */ -class Victor : public PWMSpeedController { +class Victor : public PWMMotorController { public: /** * Constructor for a Victor. diff --git a/wpilibc/src/main/native/include/frc/VictorSP.h b/wpilibc/src/main/native/include/frc/motorcontrol/VictorSP.h similarity index 89% rename from wpilibc/src/main/native/include/frc/VictorSP.h rename to wpilibc/src/main/native/include/frc/motorcontrol/VictorSP.h index 941a3ec6ee..534e83afd7 100644 --- a/wpilibc/src/main/native/include/frc/VictorSP.h +++ b/wpilibc/src/main/native/include/frc/motorcontrol/VictorSP.h @@ -4,12 +4,12 @@ #pragma once -#include "frc/PWMSpeedController.h" +#include "frc/motorcontrol/PWMMotorController.h" namespace frc { /** - * Vex Robotics Victor SP Speed Controller. + * Vex Robotics Victor SP Motor Controller. * * Note that the Victor SP uses the following bounds for PWM values. These * values should work reasonably well for most controllers, but if users @@ -24,7 +24,7 @@ namespace frc { * \li 1.480ms = the "low end" of the deadband range * \li 0.997ms = full "reverse" */ -class VictorSP : public PWMSpeedController { +class VictorSP : public PWMMotorController { public: /** * Constructor for a Victor SP. diff --git a/wpilibc/src/main/native/include/frc/shuffleboard/BuiltInWidgets.h b/wpilibc/src/main/native/include/frc/shuffleboard/BuiltInWidgets.h index b2f5991b91..1b959ff4bf 100644 --- a/wpilibc/src/main/native/include/frc/shuffleboard/BuiltInWidgets.h +++ b/wpilibc/src/main/native/include/frc/shuffleboard/BuiltInWidgets.h @@ -200,10 +200,10 @@ enum class BuiltInWidgets { */ kEncoder, /** - * Displays a SpeedController. + * Displays a MotorController. * The speed controller will be controllable from the dashboard when test mode * is enabled, but will otherwise be view-only.
Supported types:
    - *
  • PWMSpeedController
  • + *
  • PWMMotorController
  • *
  • DMC60
  • *
  • Jaguar
  • *
  • PWMTalonSRX
  • @@ -213,7 +213,7 @@ enum class BuiltInWidgets { *
  • Talon
  • *
  • Victor
  • *
  • VictorSP
  • - *
  • SpeedControllerGroup
  • + *
  • MotorControllerGroup
  • *
  • Any custom subclass of {@code SpeedContorller}
  • *
*
Custom properties: @@ -223,7 +223,7 @@ enum class BuiltInWidgets { * One of {@code ["HORIZONTAL", "VERTICAL"]} * */ - kSpeedController, + kMotorController, /** * Displays a command with a toggle button. Pressing the button will start the * command, and the button will automatically release when the command diff --git a/wpilibc/src/test/native/cpp/MockSpeedController.cpp b/wpilibc/src/test/native/cpp/MockMotorController.cpp similarity index 55% rename from wpilibc/src/test/native/cpp/MockSpeedController.cpp rename to wpilibc/src/test/native/cpp/MockMotorController.cpp index 31ccb075fd..62fd54a31c 100644 --- a/wpilibc/src/test/native/cpp/MockSpeedController.cpp +++ b/wpilibc/src/test/native/cpp/MockMotorController.cpp @@ -2,30 +2,30 @@ // 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 "MockSpeedController.h" +#include "MockMotorController.h" using namespace frc; -void MockSpeedController::Set(double speed) { +void MockMotorController::Set(double speed) { m_speed = m_isInverted ? -speed : speed; } -double MockSpeedController::Get() const { +double MockMotorController::Get() const { return m_speed; } -void MockSpeedController::SetInverted(bool isInverted) { +void MockMotorController::SetInverted(bool isInverted) { m_isInverted = isInverted; } -bool MockSpeedController::GetInverted() const { +bool MockMotorController::GetInverted() const { return m_isInverted; } -void MockSpeedController::Disable() { +void MockMotorController::Disable() { m_speed = 0; } -void MockSpeedController::StopMotor() { +void MockMotorController::StopMotor() { Disable(); } diff --git a/wpilibc/src/test/native/cpp/SpeedControllerGroupTest.cpp b/wpilibc/src/test/native/cpp/SpeedControllerGroupTest.cpp index 0f62530db5..2b344afcfb 100644 --- a/wpilibc/src/test/native/cpp/SpeedControllerGroupTest.cpp +++ b/wpilibc/src/test/native/cpp/SpeedControllerGroupTest.cpp @@ -2,29 +2,29 @@ // 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/SpeedControllerGroup.h" // NOLINT(build/include_order) +#include "frc/motorcontrol/MotorControllerGroup.h" // NOLINT(build/include_order) #include #include -#include "MockSpeedController.h" +#include "MockMotorController.h" #include "gtest/gtest.h" using namespace frc; -enum SpeedControllerGroupTestType { TEST_ONE, TEST_TWO, TEST_THREE }; +enum MotorControllerGroupTestType { TEST_ONE, TEST_TWO, TEST_THREE }; std::ostream& operator<<(std::ostream& os, - const SpeedControllerGroupTestType& type) { + const MotorControllerGroupTestType& type) { switch (type) { case TEST_ONE: - os << "SpeedControllerGroup with one speed controller"; + os << "MotorControllerGroup with one speed controller"; break; case TEST_TWO: - os << "SpeedControllerGroup with two speed controllers"; + os << "MotorControllerGroup with two speed controllers"; break; case TEST_THREE: - os << "SpeedControllerGroup with three speed controllers"; + os << "MotorControllerGroup with three speed controllers"; break; } @@ -32,26 +32,26 @@ std::ostream& operator<<(std::ostream& os, } /** - * A fixture used for SpeedControllerGroup testing. + * A fixture used for MotorControllerGroup testing. */ -class SpeedControllerGroupTest - : public testing::TestWithParam { +class MotorControllerGroupTest + : public testing::TestWithParam { protected: - std::vector m_speedControllers; - std::unique_ptr m_group; + std::vector m_speedControllers; + std::unique_ptr m_group; void SetUp() override { switch (GetParam()) { case TEST_ONE: { m_speedControllers.emplace_back(); - m_group = std::make_unique(m_speedControllers[0]); + m_group = std::make_unique(m_speedControllers[0]); break; } case TEST_TWO: { m_speedControllers.emplace_back(); m_speedControllers.emplace_back(); - m_group = std::make_unique(m_speedControllers[0], + m_group = std::make_unique(m_speedControllers[0], m_speedControllers[1]); break; } @@ -60,7 +60,7 @@ class SpeedControllerGroupTest m_speedControllers.emplace_back(); m_speedControllers.emplace_back(); m_speedControllers.emplace_back(); - m_group = std::make_unique(m_speedControllers[0], + m_group = std::make_unique(m_speedControllers[0], m_speedControllers[1], m_speedControllers[2]); break; @@ -69,7 +69,7 @@ class SpeedControllerGroupTest } }; -TEST_P(SpeedControllerGroupTest, Set) { +TEST_P(MotorControllerGroupTest, Set) { m_group->Set(1.0); for (auto& speedController : m_speedControllers) { @@ -77,13 +77,13 @@ TEST_P(SpeedControllerGroupTest, Set) { } } -TEST_P(SpeedControllerGroupTest, GetInverted) { +TEST_P(MotorControllerGroupTest, GetInverted) { m_group->SetInverted(true); EXPECT_TRUE(m_group->GetInverted()); } -TEST_P(SpeedControllerGroupTest, SetInvertedDoesNotModifySpeedControllers) { +TEST_P(MotorControllerGroupTest, SetInvertedDoesNotModifyMotorControllers) { for (auto& speedController : m_speedControllers) { speedController.SetInverted(false); } @@ -94,7 +94,7 @@ TEST_P(SpeedControllerGroupTest, SetInvertedDoesNotModifySpeedControllers) { } } -TEST_P(SpeedControllerGroupTest, SetInvertedDoesInvert) { +TEST_P(MotorControllerGroupTest, SetInvertedDoesInvert) { m_group->SetInverted(true); m_group->Set(1.0); @@ -103,7 +103,7 @@ TEST_P(SpeedControllerGroupTest, SetInvertedDoesInvert) { } } -TEST_P(SpeedControllerGroupTest, Disable) { +TEST_P(MotorControllerGroupTest, Disable) { m_group->Set(1.0); m_group->Disable(); @@ -112,7 +112,7 @@ TEST_P(SpeedControllerGroupTest, Disable) { } } -TEST_P(SpeedControllerGroupTest, StopMotor) { +TEST_P(MotorControllerGroupTest, StopMotor) { m_group->Set(1.0); m_group->StopMotor(); @@ -121,5 +121,5 @@ TEST_P(SpeedControllerGroupTest, StopMotor) { } } -INSTANTIATE_TEST_SUITE_P(Test, SpeedControllerGroupTest, +INSTANTIATE_TEST_SUITE_P(Test, MotorControllerGroupTest, testing::Values(TEST_ONE, TEST_TWO, TEST_THREE)); diff --git a/wpilibc/src/test/native/cpp/simulation/ElevatorSimTest.cpp b/wpilibc/src/test/native/cpp/simulation/ElevatorSimTest.cpp index 1083ad51a6..6e9bfbd93a 100644 --- a/wpilibc/src/test/native/cpp/simulation/ElevatorSimTest.cpp +++ b/wpilibc/src/test/native/cpp/simulation/ElevatorSimTest.cpp @@ -7,10 +7,10 @@ #include #include "frc/Encoder.h" -#include "frc/PWMVictorSPX.h" #include "frc/RobotController.h" #include "frc/StateSpaceUtil.h" #include "frc/controller/PIDController.h" +#include "frc/motorcontrol/PWMVictorSPX.h" #include "frc/simulation/ElevatorSim.h" #include "frc/simulation/EncoderSim.h" #include "frc/system/NumericalIntegration.h" diff --git a/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp b/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp index c53605e224..ba089d54c1 100644 --- a/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp +++ b/wpilibc/src/test/native/cpp/simulation/StateSpaceSimTest.cpp @@ -8,10 +8,10 @@ #include #include "frc/Encoder.h" -#include "frc/PWMVictorSPX.h" #include "frc/RobotController.h" #include "frc/controller/PIDController.h" #include "frc/controller/SimpleMotorFeedforward.h" +#include "frc/motorcontrol/PWMVictorSPX.h" #include "frc/simulation/BatterySim.h" #include "frc/simulation/DifferentialDrivetrainSim.h" #include "frc/simulation/ElevatorSim.h" diff --git a/wpilibc/src/test/native/include/MockSpeedController.h b/wpilibc/src/test/native/include/MockMotorController.h similarity index 84% rename from wpilibc/src/test/native/include/MockSpeedController.h rename to wpilibc/src/test/native/include/MockMotorController.h index a5e119bae9..e17931fbb6 100644 --- a/wpilibc/src/test/native/include/MockSpeedController.h +++ b/wpilibc/src/test/native/include/MockMotorController.h @@ -4,11 +4,11 @@ #pragma once -#include "frc/SpeedController.h" +#include "frc/motorcontrol/MotorController.h" namespace frc { -class MockSpeedController : public SpeedController { +class MockMotorController : public MotorController { public: void Set(double speed) override; double Get() const override; diff --git a/wpilibcExamples/src/main/cpp/examples/ArcadeDrive/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ArcadeDrive/cpp/Robot.cpp index 379520e4ca..abe79f48a8 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArcadeDrive/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ArcadeDrive/cpp/Robot.cpp @@ -3,9 +3,9 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include #include +#include /** * This is a demo program showing the use of the DifferentialDrive class. diff --git a/wpilibcExamples/src/main/cpp/examples/ArcadeDriveXboxController/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ArcadeDriveXboxController/cpp/Robot.cpp index 7f34b09cae..5b48f0adb4 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArcadeDriveXboxController/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ArcadeDriveXboxController/cpp/Robot.cpp @@ -3,10 +3,10 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include #include #include +#include /** * This is a demo program showing the use of the DifferentialDrive class. diff --git a/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/ArmSubsystem.h b/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/ArmSubsystem.h index 1b1c1ee109..45cd582117 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/ArmSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/ArmSubsystem.h @@ -5,8 +5,8 @@ #pragma once #include -#include #include +#include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/DriveSubsystem.h index 7aaac36654..47bf28e4d9 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/ArmBot/include/subsystems/DriveSubsystem.h @@ -5,9 +5,9 @@ #pragma once #include -#include -#include #include +#include +#include #include #include "Constants.h" @@ -76,10 +76,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/ExampleSmartMotorController.h b/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/ExampleSmartMotorController.h index 9d7e5e54e8..5d55839892 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/ExampleSmartMotorController.h +++ b/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/ExampleSmartMotorController.h @@ -4,7 +4,7 @@ #pragma once -#include +#include /** * A simplified stub class that simulates the API of a common "smart" motor @@ -12,7 +12,7 @@ * *

Has no actual functionality. */ -class ExampleSmartMotorController : public frc::SpeedController { +class ExampleSmartMotorController : public frc::MotorController { public: enum PIDMode { kPosition, kVelocity, kMovementWitchcraft }; diff --git a/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/subsystems/DriveSubsystem.h index 7aaac36654..47bf28e4d9 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/ArmBotOffboard/include/subsystems/DriveSubsystem.h @@ -5,9 +5,9 @@ #pragma once #include -#include -#include #include +#include +#include #include #include "Constants.h" @@ -76,10 +76,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp index 94ef9c25f7..b777af3e2e 100644 --- a/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ArmSimulation/cpp/Robot.cpp @@ -5,11 +5,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/DifferentialDriveBot/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/DifferentialDriveBot/include/Drivetrain.h index 57532e9b14..d7e9e078b6 100644 --- a/wpilibcExamples/src/main/cpp/examples/DifferentialDriveBot/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/DifferentialDriveBot/include/Drivetrain.h @@ -6,12 +6,12 @@ #include #include -#include -#include #include #include #include #include +#include +#include #include #include #include @@ -57,8 +57,8 @@ class Drivetrain { frc::PWMSparkMax m_rightLeader{3}; frc::PWMSparkMax m_rightFollower{4}; - frc::SpeedControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; - frc::SpeedControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; + frc::MotorControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; + frc::MotorControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; frc::Encoder m_leftEncoder{0, 1}; frc::Encoder m_rightEncoder{2, 3}; diff --git a/wpilibcExamples/src/main/cpp/examples/DifferentialDrivePoseEstimator/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/DifferentialDrivePoseEstimator/include/Drivetrain.h index 37f05e40ca..e9b657be8a 100644 --- a/wpilibcExamples/src/main/cpp/examples/DifferentialDrivePoseEstimator/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/DifferentialDrivePoseEstimator/include/Drivetrain.h @@ -6,12 +6,12 @@ #include #include -#include -#include #include #include #include #include +#include +#include #include #include #include @@ -57,8 +57,8 @@ class Drivetrain { frc::PWMSparkMax m_rightLeader{3}; frc::PWMSparkMax m_rightFollower{4}; - frc::SpeedControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; - frc::SpeedControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; + frc::MotorControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; + frc::MotorControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; frc::Encoder m_leftEncoder{0, 1}; frc::Encoder m_rightEncoder{2, 3}; diff --git a/wpilibcExamples/src/main/cpp/examples/DriveDistanceOffboard/include/ExampleSmartMotorController.h b/wpilibcExamples/src/main/cpp/examples/DriveDistanceOffboard/include/ExampleSmartMotorController.h index 5e5b1d53cd..71dc4d4864 100644 --- a/wpilibcExamples/src/main/cpp/examples/DriveDistanceOffboard/include/ExampleSmartMotorController.h +++ b/wpilibcExamples/src/main/cpp/examples/DriveDistanceOffboard/include/ExampleSmartMotorController.h @@ -4,7 +4,7 @@ #pragma once -#include +#include /** * A simplified stub class that simulates the API of a common "smart" motor @@ -12,7 +12,7 @@ * *

Has no actual functionality. */ -class ExampleSmartMotorController : public frc::SpeedController { +class ExampleSmartMotorController : public frc::MotorController { public: enum PIDMode { kPosition, kVelocity, kMovementWitchcraft }; diff --git a/wpilibcExamples/src/main/cpp/examples/ElevatorProfiledPID/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ElevatorProfiledPID/cpp/Robot.cpp index 6472fa581b..14f34d729f 100644 --- a/wpilibcExamples/src/main/cpp/examples/ElevatorProfiledPID/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ElevatorProfiledPID/cpp/Robot.cpp @@ -4,9 +4,9 @@ #include #include -#include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp index 77de329929..0aa766fb15 100644 --- a/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ElevatorSimulation/cpp/Robot.cpp @@ -5,11 +5,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/ElevatorTrapezoidProfile/include/ExampleSmartMotorController.h b/wpilibcExamples/src/main/cpp/examples/ElevatorTrapezoidProfile/include/ExampleSmartMotorController.h index 9d7e5e54e8..5d55839892 100644 --- a/wpilibcExamples/src/main/cpp/examples/ElevatorTrapezoidProfile/include/ExampleSmartMotorController.h +++ b/wpilibcExamples/src/main/cpp/examples/ElevatorTrapezoidProfile/include/ExampleSmartMotorController.h @@ -4,7 +4,7 @@ #pragma once -#include +#include /** * A simplified stub class that simulates the API of a common "smart" motor @@ -12,7 +12,7 @@ * *

Has no actual functionality. */ -class ExampleSmartMotorController : public frc::SpeedController { +class ExampleSmartMotorController : public frc::MotorController { public: enum PIDMode { kPosition, kVelocity, kMovementWitchcraft }; diff --git a/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/DriveSubsystem.h index 7aaac36654..47bf28e4d9 100644 --- a/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/DriveSubsystem.h @@ -5,9 +5,9 @@ #pragma once #include -#include -#include #include +#include +#include #include #include "Constants.h" @@ -76,10 +76,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/ShooterSubsystem.h b/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/ShooterSubsystem.h index c3ccdc8325..e53b32ddae 100644 --- a/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/ShooterSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/Frisbeebot/include/subsystems/ShooterSubsystem.h @@ -5,8 +5,8 @@ #pragma once #include -#include #include +#include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Claw.h b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Claw.h index 4870705aba..3b65382c5c 100644 --- a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Claw.h +++ b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Claw.h @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include /** diff --git a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/DriveTrain.h b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/DriveTrain.h index 52a7153e23..f704df80ae 100644 --- a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/DriveTrain.h +++ b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/DriveTrain.h @@ -7,9 +7,9 @@ #include #include #include -#include -#include #include +#include +#include #include namespace frc { @@ -66,11 +66,11 @@ class DriveTrain : public frc2::SubsystemBase { private: frc::PWMSparkMax m_frontLeft{1}; frc::PWMSparkMax m_rearLeft{2}; - frc::SpeedControllerGroup m_left{m_frontLeft, m_rearLeft}; + frc::MotorControllerGroup m_left{m_frontLeft, m_rearLeft}; frc::PWMSparkMax m_frontRight{3}; frc::PWMSparkMax m_rearRight{4}; - frc::SpeedControllerGroup m_right{m_frontRight, m_rearRight}; + frc::MotorControllerGroup m_right{m_frontRight, m_rearRight}; frc::DifferentialDrive m_robotDrive{m_left, m_right}; diff --git a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Elevator.h b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Elevator.h index 875a5f1a97..80008c5d0e 100644 --- a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Elevator.h +++ b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Elevator.h @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include /** diff --git a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Wrist.h b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Wrist.h index ef660a2a39..e873c2cccc 100644 --- a/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Wrist.h +++ b/wpilibcExamples/src/main/cpp/examples/GearsBot/include/subsystems/Wrist.h @@ -5,7 +5,7 @@ #pragma once #include -#include +#include #include /** diff --git a/wpilibcExamples/src/main/cpp/examples/GettingStarted/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/GettingStarted/cpp/Robot.cpp index 6996c7fd39..a46581379c 100644 --- a/wpilibcExamples/src/main/cpp/examples/GettingStarted/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/GettingStarted/cpp/Robot.cpp @@ -3,11 +3,11 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include #include #include #include +#include class Robot : public frc::TimedRobot { public: diff --git a/wpilibcExamples/src/main/cpp/examples/Gyro/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/Gyro/cpp/Robot.cpp index 4bfc3c1154..1dda356ff5 100644 --- a/wpilibcExamples/src/main/cpp/examples/Gyro/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/Gyro/cpp/Robot.cpp @@ -6,9 +6,9 @@ #include #include -#include #include #include +#include /** * This is a sample program to demonstrate how to use a gyro sensor to make a diff --git a/wpilibcExamples/src/main/cpp/examples/GyroDriveCommands/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/GyroDriveCommands/include/subsystems/DriveSubsystem.h index dc546db0cf..96174dd4f7 100644 --- a/wpilibcExamples/src/main/cpp/examples/GyroDriveCommands/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/GyroDriveCommands/include/subsystems/DriveSubsystem.h @@ -6,9 +6,9 @@ #include #include -#include -#include #include +#include +#include #include #include @@ -92,10 +92,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/GyroMecanum/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/GyroMecanum/cpp/Robot.cpp index 0922ae4923..58858733f4 100644 --- a/wpilibcExamples/src/main/cpp/examples/GyroMecanum/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/GyroMecanum/cpp/Robot.cpp @@ -4,9 +4,9 @@ #include #include -#include #include #include +#include /** * This is a sample program that uses mecanum drive with a gyro sensor to diff --git a/wpilibcExamples/src/main/cpp/examples/HatchbotInlined/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/HatchbotInlined/include/subsystems/DriveSubsystem.h index 7aaac36654..47bf28e4d9 100644 --- a/wpilibcExamples/src/main/cpp/examples/HatchbotInlined/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/HatchbotInlined/include/subsystems/DriveSubsystem.h @@ -5,9 +5,9 @@ #pragma once #include -#include -#include #include +#include +#include #include #include "Constants.h" @@ -76,10 +76,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/HatchbotTraditional/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/HatchbotTraditional/include/subsystems/DriveSubsystem.h index 7aaac36654..47bf28e4d9 100644 --- a/wpilibcExamples/src/main/cpp/examples/HatchbotTraditional/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/HatchbotTraditional/include/subsystems/DriveSubsystem.h @@ -5,9 +5,9 @@ #pragma once #include -#include -#include #include +#include +#include #include #include "Constants.h" @@ -76,10 +76,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumBot/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/MecanumBot/include/Drivetrain.h index 62a14a0b12..1b097fe489 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumBot/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/MecanumBot/include/Drivetrain.h @@ -6,13 +6,13 @@ #include #include -#include #include #include #include #include #include #include +#include #include /** diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/RobotContainer.cpp b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/RobotContainer.cpp index 863034e0b1..e7822238f1 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/RobotContainer.cpp +++ b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/RobotContainer.cpp @@ -96,7 +96,7 @@ frc2::Command* RobotContainer::GetAutonomousCommand() { [this](units::volt_t frontLeft, units::volt_t rearLeft, units::volt_t frontRight, units::volt_t rearRight) { - m_drive.SetSpeedControllersVolts(frontLeft, rearLeft, frontRight, + m_drive.SetMotorControllersVolts(frontLeft, rearLeft, frontRight, rearRight); }, diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/subsystems/DriveSubsystem.cpp b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/subsystems/DriveSubsystem.cpp index 8d357f429f..4cc4e47a1c 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/subsystems/DriveSubsystem.cpp +++ b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/cpp/subsystems/DriveSubsystem.cpp @@ -56,7 +56,7 @@ void DriveSubsystem::Drive(double xSpeed, double ySpeed, double rot, } } -void DriveSubsystem::SetSpeedControllersVolts(units::volt_t frontLeftPower, +void DriveSubsystem::SetMotorControllersVolts(units::volt_t frontLeftPower, units::volt_t rearLeftPower, units::volt_t frontRightPower, units::volt_t rearRightPower) { diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/include/subsystems/DriveSubsystem.h index a521219f4a..95b08b6937 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/MecanumControllerCommand/include/subsystems/DriveSubsystem.h @@ -6,13 +6,13 @@ #include #include -#include #include #include #include #include #include #include +#include #include #include "Constants.h" @@ -82,9 +82,9 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::MecanumDriveWheelSpeeds getCurrentWheelSpeeds(); /** - * Sets the drive SpeedControllers to a desired voltage. + * Sets the drive MotorControllers to a desired voltage. */ - void SetSpeedControllersVolts(units::volt_t frontLeftPower, + void SetMotorControllersVolts(units::volt_t frontLeftPower, units::volt_t rearLeftPower, units::volt_t frontRightPower, units::volt_t rearRightPower); diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumDrive/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/MecanumDrive/cpp/Robot.cpp index f7c1be3517..822e9ee675 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumDrive/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/MecanumDrive/cpp/Robot.cpp @@ -3,9 +3,9 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include #include +#include /** * This is a demo program showing how to use Mecanum control with the diff --git a/wpilibcExamples/src/main/cpp/examples/MecanumDrivePoseEstimator/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/MecanumDrivePoseEstimator/include/Drivetrain.h index 5dca8277c9..ba796d5a0d 100644 --- a/wpilibcExamples/src/main/cpp/examples/MecanumDrivePoseEstimator/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/MecanumDrivePoseEstimator/include/Drivetrain.h @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -14,6 +13,7 @@ #include #include #include +#include #include /** diff --git a/wpilibcExamples/src/main/cpp/examples/MotorControl/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/MotorControl/cpp/Robot.cpp index 0b8351b6da..0092ec3240 100644 --- a/wpilibcExamples/src/main/cpp/examples/MotorControl/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/MotorControl/cpp/Robot.cpp @@ -3,8 +3,8 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include +#include /** * This sample program shows how to control a motor using a joystick. In the diff --git a/wpilibcExamples/src/main/cpp/examples/MotorControlEncoder/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/MotorControlEncoder/cpp/Robot.cpp index 76ba76d655..5b76a62f80 100644 --- a/wpilibcExamples/src/main/cpp/examples/MotorControlEncoder/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/MotorControlEncoder/cpp/Robot.cpp @@ -4,8 +4,8 @@ #include #include -#include #include +#include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Collector.h b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Collector.h index 77b0bb4695..9994a35bf7 100644 --- a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Collector.h +++ b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Collector.h @@ -5,9 +5,9 @@ #pragma once #include -#include #include #include +#include /** * The Collector subsystem has one motor for the rollers, a limit switch for diff --git a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/DriveTrain.h b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/DriveTrain.h index 739f662136..65d29cd933 100644 --- a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/DriveTrain.h +++ b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/DriveTrain.h @@ -6,10 +6,10 @@ #include #include -#include -#include #include #include +#include +#include namespace frc { class Joystick; @@ -62,11 +62,11 @@ class DriveTrain : public frc::Subsystem { // Subsystem devices frc::PWMSparkMax m_frontLeftCIM{1}; frc::PWMSparkMax m_rearLeftCIM{2}; - frc::SpeedControllerGroup m_leftCIMs{m_frontLeftCIM, m_rearLeftCIM}; + frc::MotorControllerGroup m_leftCIMs{m_frontLeftCIM, m_rearLeftCIM}; frc::PWMSparkMax m_frontRightCIM{3}; frc::PWMSparkMax m_rearRightCIM{4}; - frc::SpeedControllerGroup m_rightCIMs{m_frontRightCIM, m_rearRightCIM}; + frc::MotorControllerGroup m_rightCIMs{m_frontRightCIM, m_rearRightCIM}; frc::DifferentialDrive m_robotDrive{m_leftCIMs, m_rightCIMs}; diff --git a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Pivot.h b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Pivot.h index 23d342f1cf..95b3be9eca 100644 --- a/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Pivot.h +++ b/wpilibcExamples/src/main/cpp/examples/PacGoat/include/subsystems/Pivot.h @@ -6,8 +6,8 @@ #include #include -#include #include +#include /** * The Pivot subsystem contains the Van-door motor and the pot for PID control diff --git a/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp index 6149d40721..5b6b024ec1 100644 --- a/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/PotentiometerPID/cpp/Robot.cpp @@ -6,9 +6,9 @@ #include #include -#include #include #include +#include /** * This is a sample program to demonstrate how to use a soft potentiometer and a diff --git a/wpilibcExamples/src/main/cpp/examples/RamseteCommand/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/RamseteCommand/include/subsystems/DriveSubsystem.h index 28707ea61f..8ea14dad39 100644 --- a/wpilibcExamples/src/main/cpp/examples/RamseteCommand/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/RamseteCommand/include/subsystems/DriveSubsystem.h @@ -6,11 +6,11 @@ #include #include -#include -#include #include #include #include +#include +#include #include #include @@ -123,10 +123,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/RamseteController/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/RamseteController/include/Drivetrain.h index baa5a090ab..3cdbd1e4d2 100644 --- a/wpilibcExamples/src/main/cpp/examples/RamseteController/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/RamseteController/include/Drivetrain.h @@ -6,12 +6,12 @@ #include #include -#include -#include #include #include #include #include +#include +#include #include #include #include @@ -57,8 +57,8 @@ class Drivetrain { frc::PWMSparkMax m_rightLeader{3}; frc::PWMSparkMax m_rightFollower{4}; - frc::SpeedControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; - frc::SpeedControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; + frc::MotorControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; + frc::MotorControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; frc::Encoder m_leftEncoder{0, 1}; frc::Encoder m_rightEncoder{2, 3}; diff --git a/wpilibcExamples/src/main/cpp/examples/RomiReference/include/subsystems/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/RomiReference/include/subsystems/Drivetrain.h index 0f96ff4f4d..ace7d33bc7 100644 --- a/wpilibcExamples/src/main/cpp/examples/RomiReference/include/subsystems/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/RomiReference/include/subsystems/Drivetrain.h @@ -6,8 +6,8 @@ #include #include -#include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/ShuffleBoard/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/ShuffleBoard/cpp/Robot.cpp index ceb3470a1b..a114b927ae 100644 --- a/wpilibcExamples/src/main/cpp/examples/ShuffleBoard/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/ShuffleBoard/cpp/Robot.cpp @@ -5,9 +5,9 @@ #include #include #include -#include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/SimpleDifferentialDriveSimulation/include/Drivetrain.h b/wpilibcExamples/src/main/cpp/examples/SimpleDifferentialDriveSimulation/include/Drivetrain.h index 48d758a7af..f60deefc3e 100644 --- a/wpilibcExamples/src/main/cpp/examples/SimpleDifferentialDriveSimulation/include/Drivetrain.h +++ b/wpilibcExamples/src/main/cpp/examples/SimpleDifferentialDriveSimulation/include/Drivetrain.h @@ -6,12 +6,12 @@ #include #include -#include -#include #include #include #include #include +#include +#include #include #include #include @@ -73,8 +73,8 @@ class Drivetrain { frc::PWMSparkMax m_rightLeader{3}; frc::PWMSparkMax m_rightFollower{4}; - frc::SpeedControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; - frc::SpeedControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; + frc::MotorControllerGroup m_leftGroup{m_leftLeader, m_leftFollower}; + frc::MotorControllerGroup m_rightGroup{m_rightLeader, m_rightFollower}; frc::Encoder m_leftEncoder{0, 1}; frc::Encoder m_rightEncoder{2, 3}; diff --git a/wpilibcExamples/src/main/cpp/examples/StateSpaceArm/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/StateSpaceArm/cpp/Robot.cpp index 63fc0a6f37..5841f5fb15 100644 --- a/wpilibcExamples/src/main/cpp/examples/StateSpaceArm/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/StateSpaceArm/cpp/Robot.cpp @@ -4,7 +4,6 @@ #include #include -#include #include #include #include @@ -12,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation/include/subsystems/DriveSubsystem.h index 9b7dadba41..395133c88c 100644 --- a/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/StateSpaceDifferentialDriveSimulation/include/subsystems/DriveSubsystem.h @@ -6,11 +6,11 @@ #include #include -#include -#include #include #include #include +#include +#include #include #include #include @@ -134,10 +134,10 @@ class DriveSubsystem : public frc2::SubsystemBase { frc::PWMSparkMax m_right2{DriveConstants::kRightMotor2Port}; // The motors on the left side of the drive - frc::SpeedControllerGroup m_leftMotors{m_left1, m_left2}; + frc::MotorControllerGroup m_leftMotors{m_left1, m_left2}; // The motors on the right side of the drive - frc::SpeedControllerGroup m_rightMotors{m_right1, m_right2}; + frc::MotorControllerGroup m_rightMotors{m_right1, m_right2}; // The robot's drive frc::DifferentialDrive m_drive{m_leftMotors, m_rightMotors}; diff --git a/wpilibcExamples/src/main/cpp/examples/StateSpaceElevator/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/StateSpaceElevator/cpp/Robot.cpp index 4d94321e7f..a0d9eaf717 100644 --- a/wpilibcExamples/src/main/cpp/examples/StateSpaceElevator/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/StateSpaceElevator/cpp/Robot.cpp @@ -4,13 +4,13 @@ #include #include -#include #include #include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheel/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheel/cpp/Robot.cpp index bab52d939f..b52fc7ca7d 100644 --- a/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheel/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheel/cpp/Robot.cpp @@ -5,13 +5,13 @@ #include #include #include -#include #include #include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheelSysId/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheelSysId/cpp/Robot.cpp index 1b7d9b76d5..26cebd646b 100644 --- a/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheelSysId/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/StateSpaceFlywheelSysId/cpp/Robot.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #include #include @@ -13,6 +12,7 @@ #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/SwerveBot/include/SwerveModule.h b/wpilibcExamples/src/main/cpp/examples/SwerveBot/include/SwerveModule.h index 119137d5ef..3c3afa697a 100644 --- a/wpilibcExamples/src/main/cpp/examples/SwerveBot/include/SwerveModule.h +++ b/wpilibcExamples/src/main/cpp/examples/SwerveBot/include/SwerveModule.h @@ -5,11 +5,11 @@ #pragma once #include -#include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/DriveSubsystem.h b/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/DriveSubsystem.h index c11f8e2b64..351aeb3ac7 100644 --- a/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/DriveSubsystem.h +++ b/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/DriveSubsystem.h @@ -6,7 +6,6 @@ #include #include -#include #include #include #include @@ -14,6 +13,7 @@ #include #include #include +#include #include #include "Constants.h" @@ -51,7 +51,7 @@ class DriveSubsystem : public frc2::SubsystemBase { void ResetEncoders(); /** - * Sets the drive SpeedControllers to a power from -1 to 1. + * Sets the drive MotorControllers to a power from -1 to 1. */ void SetModuleStates(wpi::array desiredStates); diff --git a/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/SwerveModule.h b/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/SwerveModule.h index 7f3dba843b..304d8736c6 100644 --- a/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/SwerveModule.h +++ b/wpilibcExamples/src/main/cpp/examples/SwerveControllerCommand/include/subsystems/SwerveModule.h @@ -5,11 +5,11 @@ #pragma once #include -#include #include #include #include #include +#include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/SwerveDrivePoseEstimator/include/SwerveModule.h b/wpilibcExamples/src/main/cpp/examples/SwerveDrivePoseEstimator/include/SwerveModule.h index 84182c09b1..0a33cb9dd4 100644 --- a/wpilibcExamples/src/main/cpp/examples/SwerveDrivePoseEstimator/include/SwerveModule.h +++ b/wpilibcExamples/src/main/cpp/examples/SwerveDrivePoseEstimator/include/SwerveModule.h @@ -5,11 +5,11 @@ #pragma once #include -#include #include #include #include #include +#include #include #include #include diff --git a/wpilibcExamples/src/main/cpp/examples/TankDriveXboxController/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/TankDriveXboxController/cpp/Robot.cpp index 3fa97cf654..fffc78dd4b 100644 --- a/wpilibcExamples/src/main/cpp/examples/TankDriveXboxController/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/TankDriveXboxController/cpp/Robot.cpp @@ -3,10 +3,10 @@ // the WPILib BSD license file in the root directory of this project. #include -#include #include #include #include +#include /** * This is a demo program showing the use of the DifferentialDrive class. diff --git a/wpilibcExamples/src/main/cpp/examples/Ultrasonic/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/Ultrasonic/cpp/Robot.cpp index 1cd070712e..482e5ffb10 100644 --- a/wpilibcExamples/src/main/cpp/examples/Ultrasonic/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/Ultrasonic/cpp/Robot.cpp @@ -4,9 +4,9 @@ #include #include -#include #include #include +#include /** * This is a sample program demonstrating how to use an ultrasonic sensor and diff --git a/wpilibcExamples/src/main/cpp/examples/UltrasonicPID/cpp/Robot.cpp b/wpilibcExamples/src/main/cpp/examples/UltrasonicPID/cpp/Robot.cpp index 08743128a0..4673975e71 100644 --- a/wpilibcExamples/src/main/cpp/examples/UltrasonicPID/cpp/Robot.cpp +++ b/wpilibcExamples/src/main/cpp/examples/UltrasonicPID/cpp/Robot.cpp @@ -4,10 +4,10 @@ #include #include -#include #include #include #include +#include /** * This is a sample program demonstrating how to use an ultrasonic sensor and diff --git a/wpilibcIntegrationTests/src/main/native/cpp/CounterTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/CounterTest.cpp index 6090a0bf27..23e9b2f90d 100644 --- a/wpilibcIntegrationTests/src/main/native/cpp/CounterTest.cpp +++ b/wpilibcIntegrationTests/src/main/native/cpp/CounterTest.cpp @@ -5,10 +5,10 @@ #include "frc/Counter.h" // NOLINT(build/include_order) #include "TestBench.h" -#include "frc/Jaguar.h" -#include "frc/Talon.h" #include "frc/Timer.h" -#include "frc/Victor.h" +#include "frc/motorcontrol/Jaguar.h" +#include "frc/motorcontrol/Talon.h" +#include "frc/motorcontrol/Victor.h" #include "gtest/gtest.h" using namespace frc; diff --git a/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp index 1f84faad06..9737d78355 100644 --- a/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp +++ b/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp @@ -6,13 +6,13 @@ #include "TestBench.h" #include "frc/Encoder.h" -#include "frc/Jaguar.h" #include "frc/LinearFilter.h" #include "frc/Notifier.h" -#include "frc/Talon.h" #include "frc/Timer.h" -#include "frc/Victor.h" #include "frc/controller/PIDController.h" +#include "frc/motorcontrol/Jaguar.h" +#include "frc/motorcontrol/Talon.h" +#include "frc/motorcontrol/Victor.h" #include "gtest/gtest.h" using namespace frc; @@ -38,31 +38,31 @@ std::ostream& operator<<(std::ostream& os, MotorEncoderTestType const& type) { static constexpr double kMotorTime = 0.5; /** - * A fixture that includes a PWM speed controller and an encoder connected to + * A fixture that includes a PWM motor controller and an encoder connected to * the same motor. */ class MotorEncoderTest : public testing::TestWithParam { protected: - SpeedController* m_speedController; + MotorController* m_motorController; Encoder* m_encoder; LinearFilter* m_filter; void SetUp() override { switch (GetParam()) { case TEST_VICTOR: - m_speedController = new Victor(TestBench::kVictorChannel); + m_motorController = new Victor(TestBench::kVictorChannel); m_encoder = new Encoder(TestBench::kVictorEncoderChannelA, TestBench::kVictorEncoderChannelB); break; case TEST_JAGUAR: - m_speedController = new Jaguar(TestBench::kJaguarChannel); + m_motorController = new Jaguar(TestBench::kJaguarChannel); m_encoder = new Encoder(TestBench::kJaguarEncoderChannelA, TestBench::kJaguarEncoderChannelB); break; case TEST_TALON: - m_speedController = new Talon(TestBench::kTalonChannel); + m_motorController = new Talon(TestBench::kTalonChannel); m_encoder = new Encoder(TestBench::kTalonEncoderChannelA, TestBench::kTalonEncoderChannelB); break; @@ -72,13 +72,13 @@ class MotorEncoderTest : public testing::TestWithParam { } void TearDown() override { - delete m_speedController; + delete m_motorController; delete m_encoder; delete m_filter; } void Reset() { - m_speedController->Set(0.0); + m_motorController->Set(0.0); m_encoder->Reset(); m_filter->Reset(); } @@ -90,10 +90,10 @@ class MotorEncoderTest : public testing::TestWithParam { TEST_P(MotorEncoderTest, Increment) { Reset(); - /* Drive the speed controller briefly to move the encoder */ - m_speedController->Set(0.2f); + /* Drive the motor controller briefly to move the encoder */ + m_motorController->Set(0.2f); Wait(kMotorTime); - m_speedController->Set(0.0); + m_motorController->Set(0.0); /* The encoder should be positive now */ EXPECT_GT(m_encoder->Get(), 0) @@ -106,10 +106,10 @@ TEST_P(MotorEncoderTest, Increment) { TEST_P(MotorEncoderTest, Decrement) { Reset(); - /* Drive the speed controller briefly to move the encoder */ - m_speedController->Set(-0.2); + /* Drive the motor controller briefly to move the encoder */ + m_motorController->Set(-0.2); Wait(kMotorTime); - m_speedController->Set(0.0); + m_motorController->Set(0.0); /* The encoder should be positive now */ EXPECT_LT(m_encoder->Get(), 0.0) @@ -122,15 +122,15 @@ TEST_P(MotorEncoderTest, Decrement) { TEST_P(MotorEncoderTest, ClampSpeed) { Reset(); - m_speedController->Set(2.0); + m_motorController->Set(2.0); Wait(kMotorTime); - EXPECT_FLOAT_EQ(1.0, m_speedController->Get()); + EXPECT_FLOAT_EQ(1.0, m_motorController->Get()); - m_speedController->Set(-2.0); + m_motorController->Set(-2.0); Wait(kMotorTime); - EXPECT_FLOAT_EQ(-1.0, m_speedController->Get()); + EXPECT_FLOAT_EQ(-1.0, m_motorController->Get()); } /** @@ -147,7 +147,7 @@ TEST_P(MotorEncoderTest, PositionPIDController) { /* 10 seconds should be plenty time to get to the reference */ frc::Notifier pidRunner{[this, &pidController] { auto speed = pidController.Calculate(m_encoder->GetDistance()); - m_speedController->Set(std::clamp(speed, -0.2, 0.2)); + m_motorController->Set(std::clamp(speed, -0.2, 0.2)); }}; pidRunner.StartPeriodic(pidController.GetPeriod()); Wait(10.0); @@ -174,7 +174,7 @@ TEST_P(MotorEncoderTest, VelocityPIDController) { frc::Notifier pidRunner{[this, &pidController] { auto speed = pidController.Calculate(m_filter->Calculate(m_encoder->GetRate())); - m_speedController->Set(std::clamp(speed, -0.3, 0.3)); + m_motorController->Set(std::clamp(speed, -0.3, 0.3)); }}; pidRunner.StartPeriodic(pidController.GetPeriod()); Wait(10.0); diff --git a/wpilibcIntegrationTests/src/main/native/cpp/MotorInvertingTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/MotorInvertingTest.cpp index c9abdb9bc7..72f658a440 100644 --- a/wpilibcIntegrationTests/src/main/native/cpp/MotorInvertingTest.cpp +++ b/wpilibcIntegrationTests/src/main/native/cpp/MotorInvertingTest.cpp @@ -4,10 +4,10 @@ #include "TestBench.h" #include "frc/Encoder.h" -#include "frc/Jaguar.h" -#include "frc/Talon.h" #include "frc/Timer.h" -#include "frc/Victor.h" +#include "frc/motorcontrol/Jaguar.h" +#include "frc/motorcontrol/Talon.h" +#include "frc/motorcontrol/Victor.h" #include "gtest/gtest.h" using namespace frc; @@ -33,25 +33,25 @@ std::ostream& operator<<(std::ostream& os, MotorInvertingTestType const& type) { class MotorInvertingTest : public testing::TestWithParam { protected: - SpeedController* m_speedController; + MotorController* m_motorController; Encoder* m_encoder; void SetUp() override { switch (GetParam()) { case TEST_VICTOR: - m_speedController = new Victor(TestBench::kVictorChannel); + m_motorController = new Victor(TestBench::kVictorChannel); m_encoder = new Encoder(TestBench::kVictorEncoderChannelA, TestBench::kVictorEncoderChannelB); break; case TEST_JAGUAR: - m_speedController = new Jaguar(TestBench::kJaguarChannel); + m_motorController = new Jaguar(TestBench::kJaguarChannel); m_encoder = new Encoder(TestBench::kJaguarEncoderChannelA, TestBench::kJaguarEncoderChannelB); break; case TEST_TALON: - m_speedController = new Talon(TestBench::kTalonChannel); + m_motorController = new Talon(TestBench::kTalonChannel); m_encoder = new Encoder(TestBench::kTalonEncoderChannelA, TestBench::kTalonEncoderChannelB); break; @@ -59,13 +59,13 @@ class MotorInvertingTest } void TearDown() override { - delete m_speedController; + delete m_motorController; delete m_encoder; } void Reset() { - m_speedController->SetInverted(false); - m_speedController->Set(0.0); + m_motorController->SetInverted(false); + m_motorController->Set(0.0); m_encoder->Reset(); } }; @@ -73,13 +73,13 @@ class MotorInvertingTest TEST_P(MotorInvertingTest, InvertingPositive) { Reset(); - m_speedController->Set(motorSpeed); + m_motorController->Set(motorSpeed); Wait(delayTime); bool initDirection = m_encoder->GetDirection(); - m_speedController->SetInverted(true); - m_speedController->Set(motorSpeed); + m_motorController->SetInverted(true); + m_motorController->Set(motorSpeed); Wait(delayTime); @@ -92,14 +92,14 @@ TEST_P(MotorInvertingTest, InvertingPositive) { TEST_P(MotorInvertingTest, InvertingNegative) { Reset(); - m_speedController->SetInverted(false); - m_speedController->Set(-motorSpeed); + m_motorController->SetInverted(false); + m_motorController->Set(-motorSpeed); Wait(delayTime); bool initDirection = m_encoder->GetDirection(); - m_speedController->SetInverted(true); - m_speedController->Set(-motorSpeed); + m_motorController->SetInverted(true); + m_motorController->Set(-motorSpeed); Wait(delayTime); @@ -112,14 +112,14 @@ TEST_P(MotorInvertingTest, InvertingNegative) { TEST_P(MotorInvertingTest, InvertingSwitchingPosToNeg) { Reset(); - m_speedController->SetInverted(false); - m_speedController->Set(motorSpeed); + m_motorController->SetInverted(false); + m_motorController->Set(motorSpeed); Wait(delayTime); bool initDirection = m_encoder->GetDirection(); - m_speedController->SetInverted(true); - m_speedController->Set(-motorSpeed); + m_motorController->SetInverted(true); + m_motorController->Set(-motorSpeed); Wait(delayTime); @@ -132,14 +132,14 @@ TEST_P(MotorInvertingTest, InvertingSwitchingPosToNeg) { TEST_P(MotorInvertingTest, InvertingSwitchingNegToPos) { Reset(); - m_speedController->SetInverted(false); - m_speedController->Set(-motorSpeed); + m_motorController->SetInverted(false); + m_motorController->Set(-motorSpeed); Wait(delayTime); bool initDirection = m_encoder->GetDirection(); - m_speedController->SetInverted(true); - m_speedController->Set(motorSpeed); + m_motorController->SetInverted(true); + m_motorController->Set(motorSpeed); Wait(delayTime); diff --git a/wpilibcIntegrationTests/src/main/native/cpp/PowerDistributionPanelTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/PowerDistributionPanelTest.cpp index 349f0f5a16..06d12586c8 100644 --- a/wpilibcIntegrationTests/src/main/native/cpp/PowerDistributionPanelTest.cpp +++ b/wpilibcIntegrationTests/src/main/native/cpp/PowerDistributionPanelTest.cpp @@ -9,10 +9,10 @@ #include #include "TestBench.h" -#include "frc/Jaguar.h" -#include "frc/Talon.h" #include "frc/Timer.h" -#include "frc/Victor.h" +#include "frc/motorcontrol/Jaguar.h" +#include "frc/motorcontrol/Talon.h" +#include "frc/motorcontrol/Victor.h" #include "gtest/gtest.h" using namespace frc; diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWM.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWM.java index f21ba025ea..df1db7ded4 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWM.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWM.java @@ -239,7 +239,7 @@ public class PWM implements Sendable, AutoCloseable { } } - protected void setZeroLatch() { + public void setZeroLatch() { PWMJNI.latchPWMZero(m_handle); } diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedController.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedController.java index 7d03f477a0..490455c791 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedController.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedController.java @@ -4,17 +4,22 @@ package edu.wpi.first.wpilibj; -/** Interface for speed controlling devices. */ +/** + * Interface for motor controlling devices. + * + * @deprecated Use {@link edu.wpi.first.wpilibj.motorcontrol.MotorController}. + */ +@Deprecated(since = "2022", forRemoval = true) public interface SpeedController { /** - * Common interface for setting the speed of a speed controller. + * Common interface for setting the speed of a motor controller. * * @param speed The speed to set. Value should be between -1.0 and 1.0. */ void set(double speed); /** - * Sets the voltage output of the SpeedController. Compensates for the current bus voltage to + * Sets the voltage output of the MotorController. Compensates for the current bus voltage to * ensure that the desired voltage is output even if the battery voltage is below 12V - highly * useful when the voltage outputs are "meaningful" (e.g. they come from a feedforward * calculation). @@ -29,27 +34,27 @@ public interface SpeedController { } /** - * Common interface for getting the current set speed of a speed controller. + * Common interface for getting the current set speed of a motor controller. * * @return The current set speed. Value is between -1.0 and 1.0. */ double get(); /** - * Common interface for inverting direction of a speed controller. + * Common interface for inverting direction of a motor controller. * * @param isInverted The state of inversion true is inverted. */ void setInverted(boolean isInverted); /** - * Common interface for returning if a speed controller is in the inverted state or not. + * Common interface for returning if a motor controller is in the inverted state or not. * * @return isInverted The state of the inversion true is inverted. */ boolean getInverted(); - /** Disable the speed controller. */ + /** Disable the motor controller. */ void disable(); /** diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedControllerGroup.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedControllerGroup.java index e0a95c3079..9327f50a4d 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedControllerGroup.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/SpeedControllerGroup.java @@ -4,12 +4,19 @@ package edu.wpi.first.wpilibj; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; import edu.wpi.first.wpilibj.smartdashboard.SendableBuilder; import edu.wpi.first.wpilibj.smartdashboard.SendableRegistry; import java.util.Arrays; -/** Allows multiple {@link SpeedController} objects to be linked together. */ -public class SpeedControllerGroup implements SpeedController, Sendable, AutoCloseable { +/** + * Allows multiple {@link SpeedController} objects to be linked together. + * + * @deprecated Use {@link edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup}. + */ +@Deprecated(since = "2022", forRemoval = true) +@SuppressWarnings("removal") +public class SpeedControllerGroup implements MotorController, Sendable, AutoCloseable { private boolean m_isInverted; private final SpeedController[] m_speedControllers; private static int instances; @@ -40,7 +47,7 @@ public class SpeedControllerGroup implements SpeedController, Sendable, AutoClos SendableRegistry.addChild(this, controller); } instances++; - SendableRegistry.addLW(this, "SpeedControllerGroup", instances); + SendableRegistry.addLW(this, "MotorControllerGroup", instances); } @Override @@ -89,7 +96,7 @@ public class SpeedControllerGroup implements SpeedController, Sendable, AutoClos @Override public void initSendable(SendableBuilder builder) { - builder.setSmartDashboardType("Speed Controller"); + builder.setSmartDashboardType("Motor Controller"); builder.setActuator(true); builder.setSafeState(this::stopMotor); builder.addDoubleProperty("Value", this::get, this::set); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/DifferentialDrive.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/DifferentialDrive.java index f68f36d7c7..3231899673 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/DifferentialDrive.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/DifferentialDrive.java @@ -9,7 +9,6 @@ import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; import edu.wpi.first.wpilibj.Sendable; import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.smartdashboard.SendableBuilder; import edu.wpi.first.wpilibj.smartdashboard.SendableRegistry; import edu.wpi.first.wpiutil.math.MathUtil; @@ -20,21 +19,21 @@ import java.util.StringJoiner; * base, "tank drive", or West Coast Drive. * *

These drive bases typically have drop-center / skid-steer with two or more wheels per side - * (e.g., 6WD or 8WD). This class takes a SpeedController per side. For four and six motor - * drivetrains, construct and pass in {@link edu.wpi.first.wpilibj.SpeedControllerGroup} instances - * as follows. + * (e.g., 6WD or 8WD). This class takes a MotorController per side. For four and six motor + * drivetrains, construct and pass in {@link + * edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup} instances as follows. * *

Four motor drivetrain: * *


  * public class Robot {
- *   SpeedController m_frontLeft = new PWMVictorSPX(1);
- *   SpeedController m_rearLeft = new PWMVictorSPX(2);
- *   SpeedControllerGroup m_left = new SpeedControllerGroup(m_frontLeft, m_rearLeft);
+ *   MotorController m_frontLeft = new PWMVictorSPX(1);
+ *   MotorController m_rearLeft = new PWMVictorSPX(2);
+ *   MotorControllerGroup m_left = new MotorControllerGroup(m_frontLeft, m_rearLeft);
  *
- *   SpeedController m_frontRight = new PWMVictorSPX(3);
- *   SpeedController m_rearRight = new PWMVictorSPX(4);
- *   SpeedControllerGroup m_right = new SpeedControllerGroup(m_frontRight, m_rearRight);
+ *   MotorController m_frontRight = new PWMVictorSPX(3);
+ *   MotorController m_rearRight = new PWMVictorSPX(4);
+ *   MotorControllerGroup m_right = new MotorControllerGroup(m_frontRight, m_rearRight);
  *
  *   DifferentialDrive m_drive = new DifferentialDrive(m_left, m_right);
  * }
@@ -44,15 +43,15 @@ import java.util.StringJoiner;
  *
  * 

  * public class Robot {
- *   SpeedController m_frontLeft = new PWMVictorSPX(1);
- *   SpeedController m_midLeft = new PWMVictorSPX(2);
- *   SpeedController m_rearLeft = new PWMVictorSPX(3);
- *   SpeedControllerGroup m_left = new SpeedControllerGroup(m_frontLeft, m_midLeft, m_rearLeft);
+ *   MotorController m_frontLeft = new PWMVictorSPX(1);
+ *   MotorController m_midLeft = new PWMVictorSPX(2);
+ *   MotorController m_rearLeft = new PWMVictorSPX(3);
+ *   MotorControllerGroup m_left = new MotorControllerGroup(m_frontLeft, m_midLeft, m_rearLeft);
  *
- *   SpeedController m_frontRight = new PWMVictorSPX(4);
- *   SpeedController m_midRight = new PWMVictorSPX(5);
- *   SpeedController m_rearRight = new PWMVictorSPX(6);
- *   SpeedControllerGroup m_right = new SpeedControllerGroup(m_frontRight, m_midRight, m_rearRight);
+ *   MotorController m_frontRight = new PWMVictorSPX(4);
+ *   MotorController m_midRight = new PWMVictorSPX(5);
+ *   MotorController m_rearRight = new PWMVictorSPX(6);
+ *   MotorControllerGroup m_right = new MotorControllerGroup(m_frontRight, m_midRight, m_rearRight);
  *
  *   DifferentialDrive m_drive = new DifferentialDrive(m_left, m_right);
  * }
@@ -94,6 +93,7 @@ import java.util.StringJoiner;
  * drive(double, double) with the addition of a quick turn mode. However, it is not designed to give
  * exactly the same response.
  */
+@SuppressWarnings("removal")
 public class DifferentialDrive extends RobotDriveBase implements Sendable, AutoCloseable {
   public static final double kDefaultQuickStopThreshold = 0.2;
   public static final double kDefaultQuickStopAlpha = 0.1;
@@ -112,8 +112,9 @@ public class DifferentialDrive extends RobotDriveBase implements Sendable, AutoC
   /**
    * Construct a DifferentialDrive.
    *
-   * 

To pass multiple motors per side, use a {@link SpeedControllerGroup}. If a motor needs to be - * inverted, do so before passing it in. + *

To pass multiple motors per side, use a {@link + * edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup}. If a motor needs to be inverted, do + * so before passing it in. */ public DifferentialDrive(SpeedController leftMotor, SpeedController rightMotor) { verify(leftMotor, rightMotor); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/KilloughDrive.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/KilloughDrive.java index fbc62ff1be..6702fb84f6 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/KilloughDrive.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/KilloughDrive.java @@ -39,6 +39,7 @@ import java.util.StringJoiner; * points down. Rotations follow the right-hand rule, so clockwise rotation around the Z axis is * positive. */ +@SuppressWarnings("removal") public class KilloughDrive extends RobotDriveBase implements Sendable, AutoCloseable { public static final double kDefaultLeftMotorAngle = 60.0; public static final double kDefaultRightMotorAngle = 120.0; diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/MecanumDrive.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/MecanumDrive.java index 1930ecfabe..7781b9409f 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/MecanumDrive.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/drive/MecanumDrive.java @@ -57,6 +57,7 @@ import java.util.StringJoiner; * {@link #drivePolar(double, double, double)} is equivalent to RobotDrive's * mecanumDrive_Polar(double, double, double)} if a deadband of 0 is used. */ +@SuppressWarnings("removal") public class MecanumDrive extends RobotDriveBase implements Sendable, AutoCloseable { private static int instances; diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMC60.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/DMC60.java similarity index 89% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/DMC60.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/DMC60.java index 2f38230ea9..c003b566ed 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DMC60.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/DMC60.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Digilent DMC 60 Speed Controller. + * Digilent DMC 60 Motor Controller. * *

Note that the DMC uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.997ms = full "reverse" * */ -public class DMC60 extends PWMSpeedController { +public class DMC60 extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Jaguar.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Jaguar.java similarity index 88% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/Jaguar.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Jaguar.java index 5e69c4a50a..32e6417edd 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Jaguar.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Jaguar.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Texas Instruments / Vex Robotics Jaguar Speed Controller as a PWM device. + * Texas Instruments / Vex Robotics Jaguar Motor Controller as a PWM device. * *

    Note that the Jaguar uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -23,7 +24,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.697ms = full "reverse" * */ -public class Jaguar extends PWMSpeedController { +public class Jaguar extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorController.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorController.java new file mode 100644 index 0000000000..09890196ff --- /dev/null +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorController.java @@ -0,0 +1,11 @@ +// 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 edu.wpi.first.wpilibj.motorcontrol; + +import edu.wpi.first.wpilibj.SpeedController; + +/** Interface for motor controlling devices. */ +@SuppressWarnings("removal") +public interface MotorController extends SpeedController {} diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroup.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroup.java new file mode 100644 index 0000000000..b0b11129eb --- /dev/null +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroup.java @@ -0,0 +1,98 @@ +// 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 edu.wpi.first.wpilibj.motorcontrol; + +import edu.wpi.first.wpilibj.Sendable; +import edu.wpi.first.wpilibj.smartdashboard.SendableBuilder; +import edu.wpi.first.wpilibj.smartdashboard.SendableRegistry; +import java.util.Arrays; + +/** Allows multiple {@link MotorController} objects to be linked together. */ +public class MotorControllerGroup implements MotorController, Sendable, AutoCloseable { + private boolean m_isInverted; + private final MotorController[] m_motorControllers; + private static int instances; + + /** + * Create a new MotorControllerGroup with the provided MotorControllers. + * + * @param motorControllers The MotorControllers to add + */ + @SuppressWarnings("PMD.AvoidArrayLoops") + public MotorControllerGroup( + MotorController motorController, MotorController... motorControllers) { + m_motorControllers = new MotorController[motorControllers.length + 1]; + m_motorControllers[0] = motorController; + for (int i = 0; i < motorControllers.length; i++) { + m_motorControllers[i + 1] = motorControllers[i]; + } + init(); + } + + public MotorControllerGroup(MotorController[] motorControllers) { + m_motorControllers = Arrays.copyOf(motorControllers, motorControllers.length); + init(); + } + + private void init() { + for (MotorController controller : m_motorControllers) { + SendableRegistry.addChild(this, controller); + } + instances++; + SendableRegistry.addLW(this, "MotorControllerGroup", instances); + } + + @Override + public void close() { + SendableRegistry.remove(this); + } + + @Override + public void set(double speed) { + for (MotorController motorController : m_motorControllers) { + motorController.set(m_isInverted ? -speed : speed); + } + } + + @Override + public double get() { + if (m_motorControllers.length > 0) { + return m_motorControllers[0].get() * (m_isInverted ? -1 : 1); + } + return 0.0; + } + + @Override + public void setInverted(boolean isInverted) { + m_isInverted = isInverted; + } + + @Override + public boolean getInverted() { + return m_isInverted; + } + + @Override + public void disable() { + for (MotorController motorController : m_motorControllers) { + motorController.disable(); + } + } + + @Override + public void stopMotor() { + for (MotorController motorController : m_motorControllers) { + motorController.stopMotor(); + } + } + + @Override + public void initSendable(SendableBuilder builder) { + builder.setSmartDashboardType("Motor Controller"); + builder.setActuator(true); + builder.setSafeState(this::stopMotor); + builder.addDoubleProperty("Value", this::get, this::set); + } +} diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/NidecBrushless.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/NidecBrushless.java similarity index 93% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/NidecBrushless.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/NidecBrushless.java index 6a9d9e8b2d..c23827c8af 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/NidecBrushless.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/NidecBrushless.java @@ -2,16 +2,20 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.DigitalOutput; +import edu.wpi.first.wpilibj.MotorSafety; +import edu.wpi.first.wpilibj.PWM; +import edu.wpi.first.wpilibj.Sendable; import edu.wpi.first.wpilibj.smartdashboard.SendableBuilder; import edu.wpi.first.wpilibj.smartdashboard.SendableRegistry; /** Nidec Brushless Motor. */ public class NidecBrushless extends MotorSafety - implements SpeedController, Sendable, AutoCloseable { + implements MotorController, Sendable, AutoCloseable { private boolean m_isInverted; private final DigitalOutput m_dio; private final PWM m_pwm; diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSpeedController.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java similarity index 81% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSpeedController.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java index 4a0f7e60f1..34e712102c 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSpeedController.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java @@ -2,14 +2,17 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; +import edu.wpi.first.wpilibj.MotorSafety; +import edu.wpi.first.wpilibj.PWM; +import edu.wpi.first.wpilibj.Sendable; import edu.wpi.first.wpilibj.smartdashboard.SendableBuilder; import edu.wpi.first.wpilibj.smartdashboard.SendableRegistry; -/** Common base class for all PWM Speed Controllers. */ -public abstract class PWMSpeedController extends MotorSafety - implements SpeedController, Sendable, AutoCloseable { +/** Common base class for all PWM Motor Controllers. */ +public abstract class PWMMotorController extends MotorSafety + implements MotorController, Sendable, AutoCloseable { private boolean m_isInverted; protected PWM m_pwm; @@ -20,7 +23,7 @@ public abstract class PWMSpeedController extends MotorSafety * @param channel The PWM channel that the controller is attached to. 0-9 are on-board, 10-19 are * on the MXP port */ - protected PWMSpeedController(final String name, final int channel) { + protected PWMMotorController(final String name, final int channel) { m_pwm = new PWM(channel, false); SendableRegistry.addLW(this, name, channel); } @@ -48,7 +51,7 @@ public abstract class PWMSpeedController extends MotorSafety /** * Get the recently set value of the PWM. This value is affected by the inversion property. If you - * want the value that is sent directly to the SpeedController, use {@link + * want the value that is sent directly to the MotorController, use {@link * edu.wpi.first.wpilibj.PWM#getSpeed()} instead. * * @return The most recently set value for the PWM between -1.0 and 1.0. @@ -94,7 +97,7 @@ public abstract class PWMSpeedController extends MotorSafety @Override public void initSendable(SendableBuilder builder) { - builder.setSmartDashboardType("Speed Controller"); + builder.setSmartDashboardType("Motor Controller"); builder.setActuator(true); builder.setSafeState(this::disable); builder.addDoubleProperty("Value", this::get, this::set); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSparkMax.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMSparkMax.java similarity index 87% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSparkMax.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMSparkMax.java index b57fd9ac35..f14fdc7435 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMSparkMax.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMSparkMax.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * REV Robotics SPARK MAX Speed Controller with PWM control. + * REV Robotics SPARK MAX Motor Controller with PWM control. * *

    Note that the SPARK MAX uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.999ms = full "reverse" * */ -public class PWMSparkMax extends PWMSpeedController { +public class PWMSparkMax extends PWMMotorController { /** Common initialization code called by all constructors. */ public PWMSparkMax(final int channel) { super("PWMSparkMax", channel); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonFX.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonFX.java similarity index 88% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonFX.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonFX.java index 330c6abe30..d5217459a1 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonFX.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonFX.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Cross the Road Electronics (CTRE) Talon FX Speed Controller with PWM control. + * Cross the Road Electronics (CTRE) Talon FX Motor Controller with PWM control. * *

    Note that the TalonFX uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.997ms = full "reverse" * */ -public class PWMTalonFX extends PWMSpeedController { +public class PWMTalonFX extends PWMMotorController { /** * Constructor for a TalonFX connected via PWM. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonSRX.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonSRX.java similarity index 88% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonSRX.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonSRX.java index 77c7d37475..81f183407d 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMTalonSRX.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMTalonSRX.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Cross the Road Electronics (CTRE) Talon SRX Speed Controller with PWM control. + * Cross the Road Electronics (CTRE) Talon SRX Motor Controller with PWM control. * *

    Note that the TalonSRX uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.997ms = full "reverse" * */ -public class PWMTalonSRX extends PWMSpeedController { +public class PWMTalonSRX extends PWMMotorController { /** * Constructor for a TalonSRX connected via PWM. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVenom.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVenom.java similarity index 91% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVenom.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVenom.java index 8a71842a14..9f7a885d51 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVenom.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVenom.java @@ -2,10 +2,11 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** * Playing with Fusion Venom Smart Motor with PWM control. @@ -23,7 +24,7 @@ import edu.wpi.first.hal.HAL; *
  • 0.997ms = full "reverse" * */ -public class PWMVenom extends PWMSpeedController { +public class PWMVenom extends PWMMotorController { /** * Constructor for a Venom connected via PWM. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVictorSPX.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVictorSPX.java similarity index 88% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVictorSPX.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVictorSPX.java index 62c86087ac..9880464637 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PWMVictorSPX.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMVictorSPX.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Cross the Road Electronics (CTRE) Victor SPX Speed Controller with PWM control. + * Cross the Road Electronics (CTRE) Victor SPX Motor Controller with PWM control. * *

    Note that the Victor SPX uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.997ms = full "reverse" * */ -public class PWMVictorSPX extends PWMSpeedController { +public class PWMVictorSPX extends PWMMotorController { /** * Constructor for a Victor SPX connected via PWM. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SD540.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/SD540.java similarity index 89% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/SD540.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/SD540.java index 8a14463964..3876dfc500 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/SD540.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/SD540.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Mindsensors SD540 Speed Controller. + * Mindsensors SD540 Motor Controller. * *

    Note that the SD540 uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.94ms = full "reverse" * */ -public class SD540 extends PWMSpeedController { +public class SD540 extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Spark.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Spark.java similarity index 89% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/Spark.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Spark.java index cf3d8d29ba..1b99228ce0 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Spark.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Spark.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * REV Robotics SPARK Speed Controller. + * REV Robotics SPARK Motor Controller. * *

    Note that the SPARK uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.999ms = full "reverse" * */ -public class Spark extends PWMSpeedController { +public class Spark extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Talon.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Talon.java similarity index 88% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/Talon.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Talon.java index a0b3ac5694..576ba6aefa 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Talon.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Talon.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * Cross the Road Electronics (CTRE) Talon and Talon SR Speed Controller. + * Cross the Road Electronics (CTRE) Talon and Talon SR Motor Controller. * *

    Note that the Talon uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -23,7 +24,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.989ms = full "reverse" * */ -public class Talon extends PWMSpeedController { +public class Talon extends PWMMotorController { /** * Constructor for a Talon (original or Talon SR). * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Victor.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Victor.java similarity index 87% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/Victor.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Victor.java index bdd9ba7d2d..fac6c4ff90 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/Victor.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/Victor.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * VEX Robotics Victor 888 Speed Controller The Vex Robotics Victor 884 Speed Controller can also be + * VEX Robotics Victor 888 Motor Controller The Vex Robotics Victor 884 Motor Controller can also be * used with this class but may need to be calibrated per the Victor 884 user manual. * *

    Note that the Victor uses the following bounds for PWM values. These values were determined @@ -26,7 +27,7 @@ import edu.wpi.first.hal.HAL; *

  • 1.026ms = full "reverse" * */ -public class Victor extends PWMSpeedController { +public class Victor extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/VictorSP.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/VictorSP.java similarity index 89% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/VictorSP.java rename to wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/VictorSP.java index b588c5c9a2..10dba67cff 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/VictorSP.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/VictorSP.java @@ -2,13 +2,14 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpilibj.PWM; /** - * VEX Robotics Victor SP Speed Controller. + * VEX Robotics Victor SP Motor Controller. * *

    Note that the VictorSP uses the following bounds for PWM values. These values should work * reasonably well for most controllers, but if users experience issues such as asymmetric behavior @@ -24,7 +25,7 @@ import edu.wpi.first.hal.HAL; *

  • 0.997ms = full "reverse" * */ -public class VictorSP extends PWMSpeedController { +public class VictorSP extends PWMMotorController { /** * Constructor. * diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/BuiltInWidgets.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/BuiltInWidgets.java index 7db33edee6..f518a04830 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/BuiltInWidgets.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/BuiltInWidgets.java @@ -245,27 +245,27 @@ public enum BuiltInWidgets implements WidgetType { */ kEncoder("Encoder"), /** - * Displays a {@link edu.wpi.first.wpilibj.SpeedController SpeedController}. The speed controller - * will be controllable from the dashboard when test mode is enabled, but will otherwise be - * view-only.
    + * Displays a {@link edu.wpi.first.wpilibj.motorcontrol.MotorController MotorController}. The + * speed controller will be controllable from the dashboard when test mode is enabled, but will + * otherwise be view-only.
    * Supported types: * *
      - *
    • {@link edu.wpi.first.wpilibj.PWMSpeedController} - *
    • {@link edu.wpi.first.wpilibj.DMC60} - *
    • {@link edu.wpi.first.wpilibj.Jaguar} - *
    • {@link edu.wpi.first.wpilibj.PWMSparkMax} - *
    • {@link edu.wpi.first.wpilibj.PWMTalonFX} - *
    • {@link edu.wpi.first.wpilibj.PWMTalonSRX} - *
    • {@link edu.wpi.first.wpilibj.PWMVenom} - *
    • {@link edu.wpi.first.wpilibj.PWMVictorSPX} - *
    • {@link edu.wpi.first.wpilibj.SD540} - *
    • {@link edu.wpi.first.wpilibj.Spark} - *
    • {@link edu.wpi.first.wpilibj.Talon} - *
    • {@link edu.wpi.first.wpilibj.Victor} - *
    • {@link edu.wpi.first.wpilibj.VictorSP} - *
    • {@link edu.wpi.first.wpilibj.SpeedControllerGroup} - *
    • Any custom subclass of {@code SpeedController} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMMotorController} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.DMC60} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.Jaguar} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMTalonFX} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMTalonSRX} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMVenom} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.PWMVictorSPX} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.SD540} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.Spark} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.Talon} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.Victor} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.VictorSP} + *
    • {@link edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup} + *
    • Any custom subclass of {@code MotorController} *
    * *
    @@ -277,7 +277,7 @@ public enum BuiltInWidgets implements WidgetType { * One of {@code ["HORIZONTAL", "VERTICAL"]} * */ - kSpeedController("Speed Controller"), + kMotorController("Motor Controller"), /** * Displays a command with a toggle button. Pressing the button will start the command, and the * button will automatically release when the command completes.
    diff --git a/wpilibj/src/test/java/edu/wpi/first/wpilibj/SpeedControllerGroupTest.java b/wpilibj/src/test/java/edu/wpi/first/wpilibj/SpeedControllerGroupTest.java deleted file mode 100644 index 5f4a80cbff..0000000000 --- a/wpilibj/src/test/java/edu/wpi/first/wpilibj/SpeedControllerGroupTest.java +++ /dev/null @@ -1,101 +0,0 @@ -// 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 edu.wpi.first.wpilibj; - -import static org.junit.jupiter.api.Assertions.assertArrayEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.util.Arrays; -import java.util.stream.DoubleStream; -import java.util.stream.IntStream; -import java.util.stream.Stream; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; - -class SpeedControllerGroupTest { - private static Stream speedControllerArguments() { - return IntStream.of(1, 2, 3) - .mapToObj( - number -> { - SpeedController[] speedControllers = - Stream.generate(MockSpeedController::new) - .limit(number) - .toArray(SpeedController[]::new); - SpeedControllerGroup group = - new SpeedControllerGroup( - speedControllers[0], - Arrays.copyOfRange(speedControllers, 1, speedControllers.length)); - return Arguments.of(group, speedControllers); - }); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void setTest(final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.set(1.0); - - assertArrayEquals( - DoubleStream.generate(() -> 1.0).limit(speedControllers.length).toArray(), - Arrays.stream(speedControllers).mapToDouble(SpeedController::get).toArray(), - 0.00005); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void getInvertedTest(final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.setInverted(true); - - assertTrue(group.getInverted()); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void setInvertedDoesNotModifySpeedControllersTest( - final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.setInverted(true); - - assertArrayEquals( - Stream.generate(() -> false).limit(speedControllers.length).toArray(), - Arrays.stream(speedControllers).map(SpeedController::getInverted).toArray()); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void setInvertedDoesInvertTest( - final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.setInverted(true); - group.set(1.0); - - assertArrayEquals( - DoubleStream.generate(() -> -1.0).limit(speedControllers.length).toArray(), - Arrays.stream(speedControllers).mapToDouble(SpeedController::get).toArray(), - 0.00005); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void disableTest(final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.set(1.0); - group.disable(); - - assertArrayEquals( - DoubleStream.generate(() -> 0.0).limit(speedControllers.length).toArray(), - Arrays.stream(speedControllers).mapToDouble(SpeedController::get).toArray(), - 0.00005); - } - - @ParameterizedTest - @MethodSource("speedControllerArguments") - void stopMotorTest(final SpeedControllerGroup group, final SpeedController[] speedControllers) { - group.set(1.0); - group.stopMotor(); - - assertArrayEquals( - DoubleStream.generate(() -> 0.0).limit(speedControllers.length).toArray(), - Arrays.stream(speedControllers).mapToDouble(SpeedController::get).toArray(), - 0.00005); - } -} diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MockSpeedController.java b/wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java similarity index 86% rename from wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MockSpeedController.java rename to wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java index a7bd4a802f..e7a6b8eb36 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MockSpeedController.java +++ b/wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java @@ -2,9 +2,9 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; -public class MockSpeedController implements SpeedController { +public class MockMotorController implements MotorController { private double m_speed; private boolean m_isInverted; diff --git a/wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroupTest.java b/wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroupTest.java new file mode 100644 index 0000000000..6efb3def8b --- /dev/null +++ b/wpilibj/src/test/java/edu/wpi/first/wpilibj/motorcontrol/MotorControllerGroupTest.java @@ -0,0 +1,101 @@ +// 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 edu.wpi.first.wpilibj.motorcontrol; + +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.Arrays; +import java.util.stream.DoubleStream; +import java.util.stream.IntStream; +import java.util.stream.Stream; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +class MotorControllerGroupTest { + private static Stream motorControllerArguments() { + return IntStream.of(1, 2, 3) + .mapToObj( + number -> { + MotorController[] motorControllers = + Stream.generate(MockMotorController::new) + .limit(number) + .toArray(MotorController[]::new); + MotorControllerGroup group = + new MotorControllerGroup( + motorControllers[0], + Arrays.copyOfRange(motorControllers, 1, motorControllers.length)); + return Arguments.of(group, motorControllers); + }); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void setTest(final MotorControllerGroup group, final MotorController[] motorControllers) { + group.set(1.0); + + assertArrayEquals( + DoubleStream.generate(() -> 1.0).limit(motorControllers.length).toArray(), + Arrays.stream(motorControllers).mapToDouble(MotorController::get).toArray(), + 0.00005); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void getInvertedTest(final MotorControllerGroup group, final MotorController[] motorControllers) { + group.setInverted(true); + + assertTrue(group.getInverted()); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void setInvertedDoesNotModifyMotorControllersTest( + final MotorControllerGroup group, final MotorController[] motorControllers) { + group.setInverted(true); + + assertArrayEquals( + Stream.generate(() -> false).limit(motorControllers.length).toArray(), + Arrays.stream(motorControllers).map(MotorController::getInverted).toArray()); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void setInvertedDoesInvertTest( + final MotorControllerGroup group, final MotorController[] motorControllers) { + group.setInverted(true); + group.set(1.0); + + assertArrayEquals( + DoubleStream.generate(() -> -1.0).limit(motorControllers.length).toArray(), + Arrays.stream(motorControllers).mapToDouble(MotorController::get).toArray(), + 0.00005); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void disableTest(final MotorControllerGroup group, final MotorController[] motorControllers) { + group.set(1.0); + group.disable(); + + assertArrayEquals( + DoubleStream.generate(() -> 0.0).limit(motorControllers.length).toArray(), + Arrays.stream(motorControllers).mapToDouble(MotorController::get).toArray(), + 0.00005); + } + + @ParameterizedTest + @MethodSource("motorControllerArguments") + void stopMotorTest(final MotorControllerGroup group, final MotorController[] motorControllers) { + group.set(1.0); + group.stopMotor(); + + assertArrayEquals( + DoubleStream.generate(() -> 0.0).limit(motorControllers.length).toArray(), + Arrays.stream(motorControllers).mapToDouble(MotorController::get).toArray(), + 0.00005); + } +} diff --git a/wpilibj/src/test/java/edu/wpi/first/wpilibj/simulation/ElevatorSimTest.java b/wpilibj/src/test/java/edu/wpi/first/wpilibj/simulation/ElevatorSimTest.java index 0b954415a5..13f57f71c2 100644 --- a/wpilibj/src/test/java/edu/wpi/first/wpilibj/simulation/ElevatorSimTest.java +++ b/wpilibj/src/test/java/edu/wpi/first/wpilibj/simulation/ElevatorSimTest.java @@ -8,9 +8,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMVictorSPX; import edu.wpi.first.wpilibj.RobotController; import edu.wpi.first.wpilibj.controller.PIDController; +import edu.wpi.first.wpilibj.motorcontrol.PWMVictorSPX; import edu.wpi.first.wpilibj.system.plant.DCMotor; import edu.wpi.first.wpilibj.system.plant.LinearSystemId; import edu.wpi.first.wpilibj.util.Units; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrive/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrive/Robot.java index e7bd6372c5..e35243de58 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrive/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrive/Robot.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.arcadedrive; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a demo program showing the use of the DifferentialDrive class. Runs the motors with diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrivexboxcontroller/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrivexboxcontroller/Robot.java index b382ac54ea..f78d49e25e 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrivexboxcontroller/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/arcadedrivexboxcontroller/Robot.java @@ -5,10 +5,10 @@ package edu.wpi.first.wpilibj.examples.arcadedrivexboxcontroller; import edu.wpi.first.wpilibj.GenericHID.Hand; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a demo program showing the use of the DifferentialDrive class. Runs the motors with split diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/ArmSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/ArmSubsystem.java index a4459a5a20..23b89a8ce4 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/ArmSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/ArmSubsystem.java @@ -5,10 +5,10 @@ package edu.wpi.first.wpilibj.examples.armbot.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.controller.ArmFeedforward; import edu.wpi.first.wpilibj.controller.ProfiledPIDController; import edu.wpi.first.wpilibj.examples.armbot.Constants.ArmConstants; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.trajectory.TrapezoidProfile; import edu.wpi.first.wpilibj2.command.ProfiledPIDSubsystem; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/DriveSubsystem.java index 104b685b3f..9338f309f7 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbot/subsystems/DriveSubsystem.java @@ -5,22 +5,22 @@ package edu.wpi.first.wpilibj.examples.armbot.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.armbot.Constants.DriveConstants; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/ExampleSmartMotorController.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/ExampleSmartMotorController.java index fb2329c007..4f95b4003e 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/ExampleSmartMotorController.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/ExampleSmartMotorController.java @@ -4,14 +4,14 @@ package edu.wpi.first.wpilibj.examples.armbotoffboard; -import edu.wpi.first.wpilibj.SpeedController; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; /** * A simplified stub class that simulates the API of a common "smart" motor controller. * *

    Has no actual functionality. */ -public class ExampleSmartMotorController implements SpeedController { +public class ExampleSmartMotorController implements MotorController { public enum PIDMode { kPosition, kVelocity, diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/subsystems/DriveSubsystem.java index 96d90d4a83..8017719044 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armbotoffboard/subsystems/DriveSubsystem.java @@ -5,22 +5,22 @@ package edu.wpi.first.wpilibj.examples.armbotoffboard.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.armbotoffboard.Constants.DriveConstants; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armsimulation/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armsimulation/Robot.java index d407854300..56ede78abc 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armsimulation/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/armsimulation/Robot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.armsimulation; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.RobotController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.PIDController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.simulation.BatterySim; import edu.wpi.first.wpilibj.simulation.EncoderSim; import edu.wpi.first.wpilibj.simulation.RoboRioSim; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdrivebot/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdrivebot/Drivetrain.java index 759c12924d..7f7e76b949 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdrivebot/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdrivebot/Drivetrain.java @@ -6,15 +6,15 @@ package edu.wpi.first.wpilibj.examples.differentialdrivebot; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveKinematics; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveOdometry; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** Represents a differential drive style drivetrain. */ public class Drivetrain { @@ -25,18 +25,18 @@ public class Drivetrain { private static final double kWheelRadius = 0.0508; // meters private static final int kEncoderResolution = 4096; - private final SpeedController m_leftLeader = new PWMSparkMax(1); - private final SpeedController m_leftFollower = new PWMSparkMax(2); - private final SpeedController m_rightLeader = new PWMSparkMax(3); - private final SpeedController m_rightFollower = new PWMSparkMax(4); + private final MotorController m_leftLeader = new PWMSparkMax(1); + private final MotorController m_leftFollower = new PWMSparkMax(2); + private final MotorController m_rightLeader = new PWMSparkMax(3); + private final MotorController m_rightFollower = new PWMSparkMax(4); private final Encoder m_leftEncoder = new Encoder(0, 1); private final Encoder m_rightEncoder = new Encoder(2, 3); - private final SpeedControllerGroup m_leftGroup = - new SpeedControllerGroup(m_leftLeader, m_leftFollower); - private final SpeedControllerGroup m_rightGroup = - new SpeedControllerGroup(m_rightLeader, m_rightFollower); + private final MotorControllerGroup m_leftGroup = + new MotorControllerGroup(m_leftLeader, m_leftFollower); + private final MotorControllerGroup m_rightGroup = + new MotorControllerGroup(m_rightLeader, m_rightFollower); private final AnalogGyro m_gyro = new AnalogGyro(0); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdriveposeestimator/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdriveposeestimator/Drivetrain.java index 947abc4721..74daf11e80 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdriveposeestimator/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/differentialdriveposeestimator/Drivetrain.java @@ -6,9 +6,6 @@ package edu.wpi.first.wpilibj.examples.differentialdriveposeestimator; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; @@ -18,6 +15,9 @@ import edu.wpi.first.wpilibj.geometry.Pose2d; import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveKinematics; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.util.Units; import edu.wpi.first.wpiutil.math.VecBuilder; @@ -30,18 +30,18 @@ public class Drivetrain { private static final double kWheelRadius = 0.0508; // meters private static final int kEncoderResolution = 4096; - private final SpeedController m_leftLeader = new PWMSparkMax(1); - private final SpeedController m_leftFollower = new PWMSparkMax(2); - private final SpeedController m_rightLeader = new PWMSparkMax(3); - private final SpeedController m_rightFollower = new PWMSparkMax(4); + private final MotorController m_leftLeader = new PWMSparkMax(1); + private final MotorController m_leftFollower = new PWMSparkMax(2); + private final MotorController m_rightLeader = new PWMSparkMax(3); + private final MotorController m_rightFollower = new PWMSparkMax(4); private final Encoder m_leftEncoder = new Encoder(0, 1); private final Encoder m_rightEncoder = new Encoder(2, 3); - private final SpeedControllerGroup m_leftGroup = - new SpeedControllerGroup(m_leftLeader, m_leftFollower); - private final SpeedControllerGroup m_rightGroup = - new SpeedControllerGroup(m_rightLeader, m_rightFollower); + private final MotorControllerGroup m_leftGroup = + new MotorControllerGroup(m_leftLeader, m_leftFollower); + private final MotorControllerGroup m_rightGroup = + new MotorControllerGroup(m_rightLeader, m_rightFollower); private final AnalogGyro m_gyro = new AnalogGyro(0); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/drivedistanceoffboard/ExampleSmartMotorController.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/drivedistanceoffboard/ExampleSmartMotorController.java index 615ed18bcd..487974cadb 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/drivedistanceoffboard/ExampleSmartMotorController.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/drivedistanceoffboard/ExampleSmartMotorController.java @@ -4,14 +4,14 @@ package edu.wpi.first.wpilibj.examples.drivedistanceoffboard; -import edu.wpi.first.wpilibj.SpeedController; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; /** * A simplified stub class that simulates the API of a common "smart" motor controller. * *

    Has no actual functionality. */ -public class ExampleSmartMotorController implements SpeedController { +public class ExampleSmartMotorController implements MotorController { public enum PIDMode { kPosition, kVelocity, diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorprofiledpid/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorprofiledpid/Robot.java index 06bb3cff5c..13d59bad11 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorprofiledpid/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorprofiledpid/Robot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.elevatorprofiledpid; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.ProfiledPIDController; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.trajectory.TrapezoidProfile; public class Robot extends TimedRobot { @@ -17,7 +17,7 @@ public class Robot extends TimedRobot { private final Joystick m_joystick = new Joystick(1); private final Encoder m_encoder = new Encoder(1, 2); - private final SpeedController m_motor = new PWMSparkMax(1); + private final MotorController m_motor = new PWMSparkMax(1); // Create a PID controller whose setpoint's change is subject to maximum // velocity and acceleration constraints. diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorsimulation/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorsimulation/Robot.java index 5cab4a16c7..ccae2cb4d7 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorsimulation/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatorsimulation/Robot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.elevatorsimulation; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.RobotController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.PIDController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.simulation.BatterySim; import edu.wpi.first.wpilibj.simulation.ElevatorSim; import edu.wpi.first.wpilibj.simulation.EncoderSim; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatortrapezoidprofile/ExampleSmartMotorController.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatortrapezoidprofile/ExampleSmartMotorController.java index d2ea6eea42..a1366e6f35 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatortrapezoidprofile/ExampleSmartMotorController.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/elevatortrapezoidprofile/ExampleSmartMotorController.java @@ -4,14 +4,14 @@ package edu.wpi.first.wpilibj.examples.elevatortrapezoidprofile; -import edu.wpi.first.wpilibj.SpeedController; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; /** * A simplified stub class that simulates the API of a common "smart" motor controller. * *

    Has no actual functionality. */ -public class ExampleSmartMotorController implements SpeedController { +public class ExampleSmartMotorController implements MotorController { public enum PIDMode { kPosition, kVelocity, diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/DriveSubsystem.java index 2fd62737a2..b1c580a9c5 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/DriveSubsystem.java @@ -5,22 +5,22 @@ package edu.wpi.first.wpilibj.examples.frisbeebot.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.frisbeebot.Constants.DriveConstants; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/ShooterSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/ShooterSubsystem.java index d5f4844527..e6340af507 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/ShooterSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/frisbeebot/subsystems/ShooterSubsystem.java @@ -5,10 +5,10 @@ package edu.wpi.first.wpilibj.examples.frisbeebot.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.examples.frisbeebot.Constants.ShooterConstants; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.PIDSubsystem; public class ShooterSubsystem extends PIDSubsystem { diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Claw.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Claw.java index b25c7ea428..d34d12a26e 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Claw.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Claw.java @@ -5,7 +5,7 @@ package edu.wpi.first.wpilibj.examples.gearsbot.subsystems; import edu.wpi.first.wpilibj.DigitalInput; -import edu.wpi.first.wpilibj.Victor; +import edu.wpi.first.wpilibj.motorcontrol.Victor; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.SubsystemBase; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/DriveTrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/DriveTrain.java index fdbf1a51e4..b6e223c553 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/DriveTrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/DriveTrain.java @@ -7,11 +7,11 @@ package edu.wpi.first.wpilibj.examples.gearsbot.subsystems; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.AnalogInput; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.gearsbot.Robot; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.SubsystemBase; @@ -20,11 +20,11 @@ public class DriveTrain extends SubsystemBase { * The DriveTrain subsystem incorporates the sensors and actuators attached to the robots chassis. * These include four drive motors, a left and right encoder and a gyro. */ - private final SpeedController m_leftMotor = - new SpeedControllerGroup(new PWMSparkMax(0), new PWMSparkMax(1)); + private final MotorController m_leftMotor = + new MotorControllerGroup(new PWMSparkMax(0), new PWMSparkMax(1)); - private final SpeedController m_rightMotor = - new SpeedControllerGroup(new PWMSparkMax(2), new PWMSparkMax(3)); + private final MotorController m_rightMotor = + new MotorControllerGroup(new PWMSparkMax(2), new PWMSparkMax(3)); private final DifferentialDrive m_drive = new DifferentialDrive(m_leftMotor, m_rightMotor); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Elevator.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Elevator.java index fc38bf8717..ceb809f550 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Elevator.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Elevator.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.gearsbot.subsystems; import edu.wpi.first.wpilibj.AnalogPotentiometer; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.examples.gearsbot.Robot; +import edu.wpi.first.wpilibj.motorcontrol.Victor; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.PIDSubsystem; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Wrist.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Wrist.java index 7421433be3..661e3944fd 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Wrist.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gearsbot/subsystems/Wrist.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.gearsbot.subsystems; import edu.wpi.first.wpilibj.AnalogPotentiometer; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.examples.gearsbot.Robot; +import edu.wpi.first.wpilibj.motorcontrol.Victor; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.PIDSubsystem; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gettingstarted/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gettingstarted/Robot.java index ee0678cb7b..0a9a2b034d 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gettingstarted/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gettingstarted/Robot.java @@ -5,10 +5,10 @@ package edu.wpi.first.wpilibj.examples.gettingstarted; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * The VM is configured to automatically run this class, and to call the functions corresponding to diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyro/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyro/Robot.java index 9bdb61b227..3d8353bd90 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyro/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyro/Robot.java @@ -6,9 +6,9 @@ package edu.wpi.first.wpilibj.examples.gyro; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a sample program to demonstrate how to use a gyro sensor to make a robot drive straight. diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyrodrivecommands/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyrodrivecommands/subsystems/DriveSubsystem.java index 439b503673..c16034cd00 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyrodrivecommands/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyrodrivecommands/subsystems/DriveSubsystem.java @@ -6,23 +6,23 @@ package edu.wpi.first.wpilibj.examples.gyrodrivecommands.subsystems; import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.gyrodrivecommands.Constants.DriveConstants; import edu.wpi.first.wpilibj.interfaces.Gyro; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyromecanum/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyromecanum/Robot.java index b607c916ae..f4b9a97e8c 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyromecanum/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/gyromecanum/Robot.java @@ -6,9 +6,9 @@ package edu.wpi.first.wpilibj.examples.gyromecanum; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.MecanumDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a sample program that uses mecanum drive with a gyro sensor to maintain rotation diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbotinlined/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbotinlined/subsystems/DriveSubsystem.java index faa61f4e41..87767d5227 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbotinlined/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbotinlined/subsystems/DriveSubsystem.java @@ -5,22 +5,22 @@ package edu.wpi.first.wpilibj.examples.hatchbotinlined.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.hatchbotinlined.Constants.DriveConstants; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbottraditional/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbottraditional/subsystems/DriveSubsystem.java index acf3189c1a..b88e9005f8 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbottraditional/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/hatchbottraditional/subsystems/DriveSubsystem.java @@ -5,22 +5,22 @@ package edu.wpi.first.wpilibj.examples.hatchbottraditional.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.hatchbottraditional.Constants.DriveConstants; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumbot/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumbot/Drivetrain.java index ab95a7aab0..c50a2b247e 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumbot/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumbot/Drivetrain.java @@ -6,8 +6,6 @@ package edu.wpi.first.wpilibj.examples.mecanumbot; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.geometry.Translation2d; @@ -15,6 +13,8 @@ import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.MecanumDriveKinematics; import edu.wpi.first.wpilibj.kinematics.MecanumDriveOdometry; import edu.wpi.first.wpilibj.kinematics.MecanumDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** Represents a mecanum drive style drivetrain. */ @SuppressWarnings("PMD.TooManyFields") @@ -22,10 +22,10 @@ public class Drivetrain { public static final double kMaxSpeed = 3.0; // 3 meters per second public static final double kMaxAngularSpeed = Math.PI; // 1/2 rotation per second - private final SpeedController m_frontLeftMotor = new PWMSparkMax(1); - private final SpeedController m_frontRightMotor = new PWMSparkMax(2); - private final SpeedController m_backLeftMotor = new PWMSparkMax(3); - private final SpeedController m_backRightMotor = new PWMSparkMax(4); + private final MotorController m_frontLeftMotor = new PWMSparkMax(1); + private final MotorController m_frontRightMotor = new PWMSparkMax(2); + private final MotorController m_backLeftMotor = new PWMSparkMax(3); + private final MotorController m_backRightMotor = new PWMSparkMax(4); private final Encoder m_frontLeftEncoder = new Encoder(0, 1); private final Encoder m_frontRightEncoder = new Encoder(2, 3); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/RobotContainer.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/RobotContainer.java index f66a7c98ab..c209346a74 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/RobotContainer.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/RobotContainer.java @@ -118,7 +118,7 @@ public class RobotContainer { new PIDController(DriveConstants.kPFrontRightVel, 0, 0), new PIDController(DriveConstants.kPRearRightVel, 0, 0), m_robotDrive::getCurrentWheelSpeeds, - m_robotDrive::setDriveSpeedControllersVolts, // Consumer for the output motor voltages + m_robotDrive::setDriveMotorControllersVolts, // Consumer for the output motor voltages m_robotDrive); // Reset odometry to the starting pose of the trajectory. diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/subsystems/DriveSubsystem.java index 8ee318bc6b..bb4913476c 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumcontrollercommand/subsystems/DriveSubsystem.java @@ -6,7 +6,6 @@ package edu.wpi.first.wpilibj.examples.mecanumcontrollercommand.subsystems; import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.drive.MecanumDrive; import edu.wpi.first.wpilibj.examples.mecanumcontrollercommand.Constants.DriveConstants; import edu.wpi.first.wpilibj.geometry.Pose2d; @@ -14,6 +13,7 @@ import edu.wpi.first.wpilibj.interfaces.Gyro; import edu.wpi.first.wpilibj.kinematics.MecanumDriveMotorVoltages; import edu.wpi.first.wpilibj.kinematics.MecanumDriveOdometry; import edu.wpi.first.wpilibj.kinematics.MecanumDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { @@ -117,8 +117,8 @@ public class DriveSubsystem extends SubsystemBase { } } - /** Sets the front left drive SpeedController to a voltage. */ - public void setDriveSpeedControllersVolts(MecanumDriveMotorVoltages volts) { + /** Sets the front left drive MotorController to a voltage. */ + public void setDriveMotorControllersVolts(MecanumDriveMotorVoltages volts) { m_frontLeft.setVoltage(volts.frontLeftVoltage); m_rearLeft.setVoltage(volts.rearLeftVoltage); m_frontRight.setVoltage(volts.frontRightVoltage); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdrive/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdrive/Robot.java index 5b2ef43398..80c16b52fb 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdrive/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdrive/Robot.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.mecanumdrive; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.MecanumDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** This is a demo program showing how to use Mecanum control with the MecanumDrive class. */ public class Robot extends TimedRobot { diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdriveposeestimator/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdriveposeestimator/Drivetrain.java index bd1a3fe8d9..3fba18a6bc 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdriveposeestimator/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/mecanumdriveposeestimator/Drivetrain.java @@ -6,8 +6,6 @@ package edu.wpi.first.wpilibj.examples.mecanumdriveposeestimator; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.Timer; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; @@ -18,6 +16,8 @@ import edu.wpi.first.wpilibj.geometry.Translation2d; import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.MecanumDriveKinematics; import edu.wpi.first.wpilibj.kinematics.MecanumDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.util.Units; import edu.wpi.first.wpiutil.math.VecBuilder; @@ -27,10 +27,10 @@ public class Drivetrain { public static final double kMaxSpeed = 3.0; // 3 meters per second public static final double kMaxAngularSpeed = Math.PI; // 1/2 rotation per second - private final SpeedController m_frontLeftMotor = new PWMSparkMax(1); - private final SpeedController m_frontRightMotor = new PWMSparkMax(2); - private final SpeedController m_backLeftMotor = new PWMSparkMax(3); - private final SpeedController m_backRightMotor = new PWMSparkMax(4); + private final MotorController m_frontLeftMotor = new PWMSparkMax(1); + private final MotorController m_frontRightMotor = new PWMSparkMax(2); + private final MotorController m_backLeftMotor = new PWMSparkMax(3); + private final MotorController m_backRightMotor = new PWMSparkMax(4); private final Encoder m_frontLeftEncoder = new Encoder(0, 1); private final Encoder m_frontRightEncoder = new Encoder(2, 3); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrol/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrol/Robot.java index e9105d8bd5..9976381baf 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrol/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrol/Robot.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.motorcontrol; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This sample program shows how to control a motor using a joystick. In the operator control part @@ -20,7 +20,7 @@ public class Robot extends TimedRobot { private static final int kMotorPort = 0; private static final int kJoystickPort = 0; - private SpeedController m_motor; + private MotorController m_motor; private Joystick m_joystick; @Override diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrolencoder/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrolencoder/Robot.java index 1b0b617d0e..9b68965821 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrolencoder/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/motorcontrolencoder/Robot.java @@ -6,9 +6,9 @@ package edu.wpi.first.wpilibj.examples.motorcontrolencoder; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; /** @@ -27,7 +27,7 @@ public class Robot extends TimedRobot { private static final int kEncoderPortA = 0; private static final int kEncoderPortB = 1; - private SpeedController m_motor; + private MotorController m_motor; private Joystick m_joystick; private Encoder m_encoder; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Collector.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Collector.java index 5dd83e6373..8123b06a74 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Collector.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Collector.java @@ -6,9 +6,9 @@ package edu.wpi.first.wpilibj.examples.pacgoat.subsystems; import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.Solenoid; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.command.Subsystem; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.Victor; /** * The Collector subsystem has one motor for the rollers, a limit switch for ball detection, a @@ -21,7 +21,7 @@ public class Collector extends Subsystem { public static final double kReverse = -1; // Subsystem devices - private final SpeedController m_rollerMotor = new Victor(6); + private final MotorController m_rollerMotor = new Victor(6); private final DigitalInput m_ballDetector = new DigitalInput(10); private final DigitalInput m_openDetector = new DigitalInput(6); private final Solenoid m_piston = new Solenoid(1, 1); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/DriveTrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/DriveTrain.java index 2ce6a7cf41..ce671bc8ed 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/DriveTrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/DriveTrain.java @@ -8,13 +8,13 @@ import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.CounterBase.EncodingType; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.command.Subsystem; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.pacgoat.Robot; import edu.wpi.first.wpilibj.examples.pacgoat.commands.DriveWithJoystick; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.Victor; /** * The DriveTrain subsystem controls the robot's chassis and reads in information about it's speed @@ -22,14 +22,14 @@ import edu.wpi.first.wpilibj.examples.pacgoat.commands.DriveWithJoystick; */ public class DriveTrain extends Subsystem { // Subsystem devices - private final SpeedController m_frontLeftCIM = new Victor(1); - private final SpeedController m_frontRightCIM = new Victor(2); - private final SpeedController m_rearLeftCIM = new Victor(3); - private final SpeedController m_rearRightCIM = new Victor(4); - private final SpeedControllerGroup m_leftCIMs = - new SpeedControllerGroup(m_frontLeftCIM, m_rearLeftCIM); - private final SpeedControllerGroup m_rightCIMs = - new SpeedControllerGroup(m_frontRightCIM, m_rearRightCIM); + private final MotorController m_frontLeftCIM = new Victor(1); + private final MotorController m_frontRightCIM = new Victor(2); + private final MotorController m_rearLeftCIM = new Victor(3); + private final MotorController m_rearRightCIM = new Victor(4); + private final MotorControllerGroup m_leftCIMs = + new MotorControllerGroup(m_frontLeftCIM, m_rearLeftCIM); + private final MotorControllerGroup m_rightCIMs = + new MotorControllerGroup(m_frontRightCIM, m_rearRightCIM); private final DifferentialDrive m_drive; private final Encoder m_rightEncoder = new Encoder(1, 2, true, EncodingType.k4X); private final Encoder m_leftEncoder = new Encoder(3, 4, false, EncodingType.k4X); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Pivot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Pivot.java index 620476fe97..1e65c64068 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Pivot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/pacgoat/subsystems/Pivot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.pacgoat.subsystems; import edu.wpi.first.wpilibj.AnalogPotentiometer; import edu.wpi.first.wpilibj.DigitalInput; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.command.PIDSubsystem; import edu.wpi.first.wpilibj.examples.pacgoat.Robot; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.Victor; /** * The Pivot subsystem contains the Van-door motor and the pot for PID control of angle of the pivot @@ -31,7 +31,7 @@ public class Pivot extends PIDSubsystem { private final AnalogPotentiometer m_pot = new AnalogPotentiometer(1); // Motor to move the pivot. - private final SpeedController m_motor = new Victor(5); + private final MotorController m_motor = new Victor(5); /** Create a new pivot subsystem. */ public Pivot() { diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java index 148a4760fd..72d06fc0d3 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/potentiometerpid/Robot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.potentiometerpid; import edu.wpi.first.wpilibj.AnalogInput; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.PIDController; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a sample program to demonstrate how to use a soft potentiometer and a PID controller to @@ -33,7 +33,7 @@ public class Robot extends TimedRobot { private PIDController m_pidController; private AnalogInput m_potentiometer; - private SpeedController m_elevatorMotor; + private MotorController m_elevatorMotor; private Joystick m_joystick; private int m_index; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand/subsystems/DriveSubsystem.java index 7ccb1f27f4..275b49f215 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecommand/subsystems/DriveSubsystem.java @@ -6,26 +6,26 @@ package edu.wpi.first.wpilibj.examples.ramsetecommand.subsystems; import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.ramsetecommand.Constants.DriveConstants; import edu.wpi.first.wpilibj.geometry.Pose2d; import edu.wpi.first.wpilibj.interfaces.Gyro; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveOdometry; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Drivetrain.java index 1c40b944bb..d1ff5dd849 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ramsetecontroller/Drivetrain.java @@ -6,9 +6,6 @@ package edu.wpi.first.wpilibj.examples.ramsetecontroller; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.geometry.Pose2d; @@ -16,6 +13,9 @@ import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveKinematics; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveOdometry; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** Represents a differential drive style drivetrain. */ public class Drivetrain { @@ -26,18 +26,18 @@ public class Drivetrain { private static final double kWheelRadius = 0.0508; // meters private static final int kEncoderResolution = 4096; - private final SpeedController m_leftLeader = new PWMSparkMax(1); - private final SpeedController m_leftFollower = new PWMSparkMax(2); - private final SpeedController m_rightLeader = new PWMSparkMax(3); - private final SpeedController m_rightFollower = new PWMSparkMax(4); + private final MotorController m_leftLeader = new PWMSparkMax(1); + private final MotorController m_leftFollower = new PWMSparkMax(2); + private final MotorController m_rightLeader = new PWMSparkMax(3); + private final MotorController m_rightFollower = new PWMSparkMax(4); private final Encoder m_leftEncoder = new Encoder(0, 1); private final Encoder m_rightEncoder = new Encoder(2, 3); - private final SpeedControllerGroup m_leftGroup = - new SpeedControllerGroup(m_leftLeader, m_leftFollower); - private final SpeedControllerGroup m_rightGroup = - new SpeedControllerGroup(m_rightLeader, m_rightFollower); + private final MotorControllerGroup m_leftGroup = + new MotorControllerGroup(m_leftLeader, m_leftFollower); + private final MotorControllerGroup m_rightGroup = + new MotorControllerGroup(m_rightLeader, m_rightFollower); private final AnalogGyro m_gyro = new AnalogGyro(0); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/romireference/subsystems/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/romireference/subsystems/Drivetrain.java index eb3ca22a1e..cc95e0475c 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/romireference/subsystems/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/romireference/subsystems/Drivetrain.java @@ -6,8 +6,8 @@ package edu.wpi.first.wpilibj.examples.romireference.subsystems; import edu.wpi.first.wpilibj.BuiltInAccelerometer; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.Spark; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.Spark; import edu.wpi.first.wpilibj.romi.RomiGyro; import edu.wpi.first.wpilibj2.command.SubsystemBase; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/shuffleboard/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/shuffleboard/Robot.java index bc1704f71c..eb6a6d94c8 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/shuffleboard/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/shuffleboard/Robot.java @@ -7,9 +7,9 @@ package edu.wpi.first.wpilibj.examples.shuffleboard; import edu.wpi.first.networktables.NetworkTableEntry; import edu.wpi.first.wpilibj.AnalogPotentiometer; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.shuffleboard.Shuffleboard; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardLayout; import edu.wpi.first.wpilibj.shuffleboard.ShuffleboardTab; diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/simpledifferentialdrivesimulation/Drivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/simpledifferentialdrivesimulation/Drivetrain.java index 9fa5e6b54c..2cb16c13fa 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/simpledifferentialdrivesimulation/Drivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/simpledifferentialdrivesimulation/Drivetrain.java @@ -6,9 +6,7 @@ package edu.wpi.first.wpilibj.examples.simpledifferentialdrivesimulation; import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.RobotController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.geometry.Pose2d; @@ -16,6 +14,8 @@ import edu.wpi.first.wpilibj.kinematics.ChassisSpeeds; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveKinematics; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveOdometry; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.simulation.AnalogGyroSim; import edu.wpi.first.wpilibj.simulation.DifferentialDrivetrainSim; import edu.wpi.first.wpilibj.simulation.EncoderSim; @@ -42,10 +42,10 @@ public class Drivetrain { private final PWMSparkMax m_rightLeader = new PWMSparkMax(3); private final PWMSparkMax m_rightFollower = new PWMSparkMax(4); - private final SpeedControllerGroup m_leftGroup = - new SpeedControllerGroup(m_leftLeader, m_leftFollower); - private final SpeedControllerGroup m_rightGroup = - new SpeedControllerGroup(m_rightLeader, m_rightFollower); + private final MotorControllerGroup m_leftGroup = + new MotorControllerGroup(m_leftLeader, m_leftFollower); + private final MotorControllerGroup m_rightGroup = + new MotorControllerGroup(m_rightLeader, m_rightFollower); private final Encoder m_leftEncoder = new Encoder(0, 1); private final Encoder m_rightEncoder = new Encoder(2, 3); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacearm/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacearm/Robot.java index aa43dff01f..c7f8d24ece 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacearm/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacearm/Robot.java @@ -6,11 +6,11 @@ package edu.wpi.first.wpilibj.examples.statespacearm; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.LinearQuadraticRegulator; import edu.wpi.first.wpilibj.estimator.KalmanFilter; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.system.LinearSystem; import edu.wpi.first.wpilibj.system.LinearSystemLoop; import edu.wpi.first.wpilibj.system.plant.DCMotor; @@ -91,7 +91,7 @@ public class Robot extends TimedRobot { // An encoder set up to measure arm position in radians. private final Encoder m_encoder = new Encoder(kEncoderAChannel, kEncoderBChannel); - private final SpeedController m_motor = new PWMSparkMax(kMotorPort); + private final MotorController m_motor = new PWMSparkMax(kMotorPort); // A joystick to read the trigger from. private final Joystick m_joystick = new Joystick(kJoystickPort); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation/subsystems/DriveSubsystem.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation/subsystems/DriveSubsystem.java index 1e70efe380..32394ea1d3 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation/subsystems/DriveSubsystem.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespacedifferentialdrivesimulation/subsystems/DriveSubsystem.java @@ -6,16 +6,16 @@ package edu.wpi.first.wpilibj.examples.statespacedifferentialdrivesimulation.sub import edu.wpi.first.wpilibj.ADXRS450_Gyro; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.RobotBase; import edu.wpi.first.wpilibj.RobotController; -import edu.wpi.first.wpilibj.SpeedControllerGroup; import edu.wpi.first.wpilibj.drive.DifferentialDrive; import edu.wpi.first.wpilibj.examples.statespacedifferentialdrivesimulation.Constants.DriveConstants; import edu.wpi.first.wpilibj.geometry.Pose2d; import edu.wpi.first.wpilibj.geometry.Rotation2d; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveOdometry; import edu.wpi.first.wpilibj.kinematics.DifferentialDriveWheelSpeeds; +import edu.wpi.first.wpilibj.motorcontrol.MotorControllerGroup; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.simulation.ADXRS450_GyroSim; import edu.wpi.first.wpilibj.simulation.DifferentialDrivetrainSim; import edu.wpi.first.wpilibj.simulation.EncoderSim; @@ -26,14 +26,14 @@ import edu.wpi.first.wpiutil.math.VecBuilder; public class DriveSubsystem extends SubsystemBase { // The motors on the left side of the drive. - private final SpeedControllerGroup m_leftMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_leftMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kLeftMotor1Port), new PWMSparkMax(DriveConstants.kLeftMotor2Port)); // The motors on the right side of the drive. - private final SpeedControllerGroup m_rightMotors = - new SpeedControllerGroup( + private final MotorControllerGroup m_rightMotors = + new MotorControllerGroup( new PWMSparkMax(DriveConstants.kRightMotor1Port), new PWMSparkMax(DriveConstants.kRightMotor2Port)); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceelevator/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceelevator/Robot.java index 57ce6c3ae7..64c3bd1df7 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceelevator/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceelevator/Robot.java @@ -6,11 +6,11 @@ package edu.wpi.first.wpilibj.examples.statespaceelevator; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.LinearQuadraticRegulator; import edu.wpi.first.wpilibj.estimator.KalmanFilter; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.system.LinearSystem; import edu.wpi.first.wpilibj.system.LinearSystemLoop; import edu.wpi.first.wpilibj.system.plant.DCMotor; @@ -94,7 +94,7 @@ public class Robot extends TimedRobot { // An encoder set up to measure elevator height in meters. private final Encoder m_encoder = new Encoder(kEncoderAChannel, kEncoderBChannel); - private final SpeedController m_motor = new PWMSparkMax(kMotorPort); + private final MotorController m_motor = new PWMSparkMax(kMotorPort); // A joystick to read the trigger from. private final Joystick m_joystick = new Joystick(kJoystickPort); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheel/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheel/Robot.java index bf1f4f78c9..cb6d10a076 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheel/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheel/Robot.java @@ -6,11 +6,11 @@ package edu.wpi.first.wpilibj.examples.statespaceflywheel; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.LinearQuadraticRegulator; import edu.wpi.first.wpilibj.estimator.KalmanFilter; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.system.LinearSystem; import edu.wpi.first.wpilibj.system.LinearSystemLoop; import edu.wpi.first.wpilibj.system.plant.DCMotor; @@ -77,7 +77,7 @@ public class Robot extends TimedRobot { // An encoder set up to measure flywheel velocity in radians per second. private final Encoder m_encoder = new Encoder(kEncoderAChannel, kEncoderBChannel); - private final SpeedController m_motor = new PWMSparkMax(kMotorPort); + private final MotorController m_motor = new PWMSparkMax(kMotorPort); // A joystick to read the trigger from. private final Joystick m_joystick = new Joystick(kJoystickPort); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheelsysid/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheelsysid/Robot.java index 9c080346ee..7bb4491f12 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheelsysid/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/statespaceflywheelsysid/Robot.java @@ -6,11 +6,11 @@ package edu.wpi.first.wpilibj.examples.statespaceflywheelsysid; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.LinearQuadraticRegulator; import edu.wpi.first.wpilibj.estimator.KalmanFilter; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.system.LinearSystem; import edu.wpi.first.wpilibj.system.LinearSystemLoop; import edu.wpi.first.wpilibj.system.plant.LinearSystemId; @@ -72,7 +72,7 @@ public class Robot extends TimedRobot { // An encoder set up to measure flywheel velocity in radians per second. private final Encoder m_encoder = new Encoder(kEncoderAChannel, kEncoderBChannel); - private final SpeedController m_motor = new PWMSparkMax(kMotorPort); + private final MotorController m_motor = new PWMSparkMax(kMotorPort); // A joystick to read the trigger from. private final Joystick m_joystick = new Joystick(kJoystickPort); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot/SwerveModule.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot/SwerveModule.java index 887001c090..cd5691ecf7 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot/SwerveModule.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervebot/SwerveModule.java @@ -5,13 +5,13 @@ package edu.wpi.first.wpilibj.examples.swervebot; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.ProfiledPIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.geometry.Rotation2d; import edu.wpi.first.wpilibj.kinematics.SwerveModuleState; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.trajectory.TrapezoidProfile; public class SwerveModule { @@ -22,8 +22,8 @@ public class SwerveModule { private static final double kModuleMaxAngularAcceleration = 2 * Math.PI; // radians per second squared - private final SpeedController m_driveMotor; - private final SpeedController m_turningMotor; + private final MotorController m_driveMotor; + private final MotorController m_turningMotor; private final Encoder m_driveEncoder = new Encoder(0, 1); private final Encoder m_turningEncoder = new Encoder(2, 3); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervecontrollercommand/subsystems/SwerveModule.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervecontrollercommand/subsystems/SwerveModule.java index 4ec1545da0..12c6aad699 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervecontrollercommand/subsystems/SwerveModule.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervecontrollercommand/subsystems/SwerveModule.java @@ -5,12 +5,12 @@ package edu.wpi.first.wpilibj.examples.swervecontrollercommand.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.Spark; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.ProfiledPIDController; import edu.wpi.first.wpilibj.examples.swervecontrollercommand.Constants.ModuleConstants; import edu.wpi.first.wpilibj.geometry.Rotation2d; import edu.wpi.first.wpilibj.kinematics.SwerveModuleState; +import edu.wpi.first.wpilibj.motorcontrol.Spark; import edu.wpi.first.wpilibj.trajectory.TrapezoidProfile; public class SwerveModule { diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervesdriveposeestimator/SwerveModule.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervesdriveposeestimator/SwerveModule.java index 236de7df97..cf36020959 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervesdriveposeestimator/SwerveModule.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/swervesdriveposeestimator/SwerveModule.java @@ -5,13 +5,13 @@ package edu.wpi.first.wpilibj.examples.swervesdriveposeestimator; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.PWMSparkMax; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.ProfiledPIDController; import edu.wpi.first.wpilibj.controller.SimpleMotorFeedforward; import edu.wpi.first.wpilibj.geometry.Rotation2d; import edu.wpi.first.wpilibj.kinematics.SwerveModuleState; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; import edu.wpi.first.wpilibj.trajectory.TrapezoidProfile; public class SwerveModule { @@ -22,8 +22,8 @@ public class SwerveModule { private static final double kModuleMaxAngularAcceleration = 2 * Math.PI; // radians per second squared - private final SpeedController m_driveMotor; - private final SpeedController m_turningMotor; + private final MotorController m_driveMotor; + private final MotorController m_turningMotor; private final Encoder m_driveEncoder = new Encoder(0, 1); private final Encoder m_turningEncoder = new Encoder(2, 3); diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrive/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrive/Robot.java index bf2a568e1a..1d934ff68a 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrive/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrive/Robot.java @@ -5,9 +5,9 @@ package edu.wpi.first.wpilibj.examples.tankdrive; import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a demo program showing the use of the DifferentialDrive class, specifically it contains diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrivexboxcontroller/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrivexboxcontroller/Robot.java index e54d44da66..a2579f38a8 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrivexboxcontroller/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/tankdrivexboxcontroller/Robot.java @@ -5,10 +5,10 @@ package edu.wpi.first.wpilibj.examples.tankdrivexboxcontroller; import edu.wpi.first.wpilibj.GenericHID.Hand; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.XboxController; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a demo program showing the use of the DifferentialDrive class. Runs the motors with tank diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonic/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonic/Robot.java index 58de666e31..754d0eae2b 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonic/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonic/Robot.java @@ -6,9 +6,9 @@ package edu.wpi.first.wpilibj.examples.ultrasonic; import edu.wpi.first.wpilibj.AnalogInput; import edu.wpi.first.wpilibj.MedianFilter; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a sample program demonstrating how to use an ultrasonic sensor and proportional control diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonicpid/Robot.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonicpid/Robot.java index c1fcb60804..79726292da 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonicpid/Robot.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/ultrasonicpid/Robot.java @@ -6,10 +6,10 @@ package edu.wpi.first.wpilibj.examples.ultrasonicpid; import edu.wpi.first.wpilibj.AnalogInput; import edu.wpi.first.wpilibj.MedianFilter; -import edu.wpi.first.wpilibj.PWMSparkMax; import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.PWMSparkMax; /** * This is a sample program to demonstrate the use of a PIDController with an ultrasonic sensor to diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romicommandbased/subsystems/RomiDrivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romicommandbased/subsystems/RomiDrivetrain.java index 3d256e0cf3..80543c6f3c 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romicommandbased/subsystems/RomiDrivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romicommandbased/subsystems/RomiDrivetrain.java @@ -5,8 +5,8 @@ package edu.wpi.first.wpilibj.templates.romicommandbased.subsystems; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.Spark; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.Spark; import edu.wpi.first.wpilibj2.command.SubsystemBase; public class RomiDrivetrain extends SubsystemBase { diff --git a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romitimed/RomiDrivetrain.java b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romitimed/RomiDrivetrain.java index 84d627280a..96c81b1bb0 100644 --- a/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romitimed/RomiDrivetrain.java +++ b/wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/romitimed/RomiDrivetrain.java @@ -5,8 +5,8 @@ package edu.wpi.first.wpilibj.templates.romitimed; import edu.wpi.first.wpilibj.Encoder; -import edu.wpi.first.wpilibj.Spark; import edu.wpi.first.wpilibj.drive.DifferentialDrive; +import edu.wpi.first.wpilibj.motorcontrol.Spark; public class RomiDrivetrain { private static final double kCountsPerRevolution = 1440.0; diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorInvertingTest.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorInvertingTest.java index dc44ecbe71..af9a272254 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorInvertingTest.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorInvertingTest.java @@ -20,7 +20,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -/** Tests Inversion of motors using the SpeedController setInverted. */ +/** Tests Inversion of motors using the MotorController setInverted. */ @RunWith(Parameterized.class) public class MotorInvertingTest extends AbstractComsSetup { static MotorEncoderFixture fixture = null; diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/PDPTest.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/PDPTest.java index 1c30544a65..127e4c21bb 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/PDPTest.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/PDPTest.java @@ -70,7 +70,7 @@ public class PDPTest extends AbstractComsSetup { /** Test if the current changes when the motor is driven using a talon. */ @Test - public void checkStoppedCurrentForSpeedController() throws CANMessageNotFoundException { + public void checkStoppedCurrentForMotorController() throws CANMessageNotFoundException { Timer.delay(0.25); /* The Current should be 0 */ @@ -83,7 +83,7 @@ public class PDPTest extends AbstractComsSetup { /** Test if the current changes when the motor is driven using a talon. */ @Test - public void checkRunningCurrentForSpeedController() throws CANMessageNotFoundException { + public void checkRunningCurrentForMotorController() throws CANMessageNotFoundException { /* Set the motor to full forward */ me.getMotor().set(1.0); Timer.delay(2); diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/fixtures/MotorEncoderFixture.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/fixtures/MotorEncoderFixture.java index fcc5b2cd6e..492c2d5c3e 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/fixtures/MotorEncoderFixture.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/fixtures/MotorEncoderFixture.java @@ -8,8 +8,8 @@ import edu.wpi.first.wpilibj.Counter; import edu.wpi.first.wpilibj.DigitalInput; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.PWM; -import edu.wpi.first.wpilibj.SpeedController; import edu.wpi.first.wpilibj.Timer; +import edu.wpi.first.wpilibj.motorcontrol.MotorController; import edu.wpi.first.wpilibj.test.TestBench; import java.lang.reflect.ParameterizedType; import java.util.logging.Logger; @@ -22,7 +22,7 @@ import java.util.logging.Logger; * fixture. This allows tests to be mailable so that you can easily reconfigure the physical testbed * without breaking the tests. */ -public abstract class MotorEncoderFixture implements ITestFixture { +public abstract class MotorEncoderFixture implements ITestFixture { private static final Logger logger = Logger.getLogger(MotorEncoderFixture.class.getName()); private boolean m_initialized = false; private boolean m_tornDown = false; @@ -39,12 +39,12 @@ public abstract class MotorEncoderFixture implements /** * Where the implementer of this class should pass the speed controller Constructor should only be - * called from outside this class if the Speed controller is not also an implementation of PWM + * called from outside this class if the Motor controller is not also an implementation of PWM * interface. * - * @return SpeedController + * @return MotorController */ - protected abstract T giveSpeedController(); + protected abstract T giveMotorController(); /** * Where the implementer of this class should pass one of the digital inputs. @@ -76,7 +76,7 @@ public abstract class MotorEncoderFixture implements m_counters[0] = new Counter(m_alphaSource); m_counters[1] = new Counter(m_betaSource); logger.fine("Creating the speed controller!"); - m_motor = giveSpeedController(); + m_motor = giveMotorController(); } } } diff --git a/wpilibj/src/test/java/edu/wpi/first/wpilibj/MockSpeedController.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java similarity index 86% rename from wpilibj/src/test/java/edu/wpi/first/wpilibj/MockSpeedController.java rename to wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java index a7bd4a802f..e7a6b8eb36 100644 --- a/wpilibj/src/test/java/edu/wpi/first/wpilibj/MockSpeedController.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MockMotorController.java @@ -2,9 +2,9 @@ // 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 edu.wpi.first.wpilibj; +package edu.wpi.first.wpilibj.motorcontrol; -public class MockSpeedController implements SpeedController { +public class MockMotorController implements MotorController { private double m_speed; private boolean m_isInverted; diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/test/TestBench.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/test/TestBench.java index bee3787076..89713c6945 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/test/TestBench.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/test/TestBench.java @@ -8,16 +8,16 @@ import edu.wpi.first.wpilibj.AnalogGyro; import edu.wpi.first.wpilibj.AnalogInput; import edu.wpi.first.wpilibj.AnalogOutput; import edu.wpi.first.wpilibj.DigitalInput; -import edu.wpi.first.wpilibj.Jaguar; import edu.wpi.first.wpilibj.Relay; import edu.wpi.first.wpilibj.Servo; -import edu.wpi.first.wpilibj.Talon; -import edu.wpi.first.wpilibj.Victor; import edu.wpi.first.wpilibj.fixtures.AnalogCrossConnectFixture; import edu.wpi.first.wpilibj.fixtures.DIOCrossConnectFixture; import edu.wpi.first.wpilibj.fixtures.MotorEncoderFixture; import edu.wpi.first.wpilibj.fixtures.RelayCrossConnectFixture; import edu.wpi.first.wpilibj.fixtures.TiltPanCameraFixture; +import edu.wpi.first.wpilibj.motorcontrol.Jaguar; +import edu.wpi.first.wpilibj.motorcontrol.Talon; +import edu.wpi.first.wpilibj.motorcontrol.Victor; import java.io.PrintStream; import java.util.ArrayList; import java.util.Arrays; @@ -74,7 +74,7 @@ public final class TestBench { public MotorEncoderFixture getTalonPair() { return new MotorEncoderFixture() { @Override - protected Talon giveSpeedController() { + protected Talon giveMotorController() { return new Talon(kTalonChannel); } @@ -104,7 +104,7 @@ public final class TestBench { public MotorEncoderFixture getVictorPair() { return new MotorEncoderFixture() { @Override - protected Victor giveSpeedController() { + protected Victor giveMotorController() { return new Victor(kVictorChannel); } @@ -134,7 +134,7 @@ public final class TestBench { public MotorEncoderFixture getJaguarPair() { return new MotorEncoderFixture() { @Override - protected Jaguar giveSpeedController() { + protected Jaguar giveMotorController() { return new Jaguar(kJaguarChannel); }