From e884221a8d9b9697cee617ffda59bb19c235c021 Mon Sep 17 00:00:00 2001 From: Brendan Raykoff <99614905+Braykoff@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:40:32 -0400 Subject: [PATCH] [wpilib] Propagate PWMMotorController stopMotor() and disable() to followers (#6750) --- .../native/cpp/motorcontrol/PWMMotorController.cpp | 14 ++++++++++++++ .../wpilibj/motorcontrol/PWMMotorController.java | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp b/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp index 924e4fd305..7e1666b57a 100644 --- a/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp +++ b/wpilibc/src/main/native/cpp/motorcontrol/PWMMotorController.cpp @@ -47,11 +47,25 @@ bool PWMMotorController::GetInverted() const { void PWMMotorController::Disable() { m_pwm.SetDisabled(); + + for (auto& follower : m_nonowningFollowers) { + follower->Disable(); + } + for (auto& follower : m_owningFollowers) { + follower->Disable(); + } } void PWMMotorController::StopMotor() { // Don't use Set(0) as that will feed the watch kitty m_pwm.SetSpeed(0); + + for (auto& follower : m_nonowningFollowers) { + follower->StopMotor(); + } + for (auto& follower : m_owningFollowers) { + follower->StopMotor(); + } } std::string PWMMotorController::GetDescription() const { diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java index b72cee344f..cfb691df34 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/motorcontrol/PWMMotorController.java @@ -88,12 +88,20 @@ public abstract class PWMMotorController extends MotorSafety @Override public void disable() { m_pwm.setDisabled(); + + for (var follower : m_followers) { + follower.disable(); + } } @Override public void stopMotor() { // Don't use set(0) as that will feed the watch kitty m_pwm.setSpeed(0); + + for (var follower : m_followers) { + follower.stopMotor(); + } } @Override