From ff56d6861d8a769ec1d00de0e9ac012fae4265eb Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 16 May 2021 19:13:54 -0700 Subject: [PATCH] [wpilibj] Fix SpeedController deprecated warnings (#3360) set() and other functions also need to be repeated on the MotorController interface to avoid deprecation warnings from vscode. --- .../wpilibj/motorcontrol/MotorController.java | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) 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 index e77ecf0812..ac82afa7e8 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorController.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/MotorController.java @@ -10,8 +10,62 @@ import edu.wpi.first.wpilibj.SpeedController; /** Interface for motor controlling devices. */ @SuppressWarnings("removal") public interface MotorController extends SpeedController { + /** + * 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. + */ + @Override + void set(double speed); + + /** + * 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). + * + *

NOTE: This function *must* be called regularly in order for voltage compensation to work + * properly - unlike the ordinary set function, it is not "set it and forget it." + * + * @param outputVolts The voltage to output. + */ @Override default void setVoltage(double outputVolts) { set(outputVolts / RobotController.getBatteryVoltage()); } + + /** + * 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. + */ + @Override + double get(); + + /** + * Common interface for inverting direction of a motor controller. + * + * @param isInverted The state of inversion true is inverted. + */ + @Override + void setInverted(boolean isInverted); + + /** + * 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. + */ + @Override + boolean getInverted(); + + /** Disable the motor controller. */ + @Override + void disable(); + + /** + * Stops motor movement. Motor can be moved again by calling set without having to re-enable the + * motor. + */ + @Override + void stopMotor(); }