diff --git a/wpilibc/src/main/native/cpp/buttons/CancelButtonScheduler.cpp b/wpilibc/src/main/native/cpp/buttons/CancelButtonScheduler.cpp index f00378f10a..39d1d256c6 100644 --- a/wpilibc/src/main/native/cpp/buttons/CancelButtonScheduler.cpp +++ b/wpilibc/src/main/native/cpp/buttons/CancelButtonScheduler.cpp @@ -14,17 +14,14 @@ using namespace frc; CancelButtonScheduler::CancelButtonScheduler(bool last, Trigger* button, Command* orders) - : ButtonScheduler(last, button, orders) { - pressedLast = m_button->Grab(); -} + : ButtonScheduler(last, button, orders) {} void CancelButtonScheduler::Execute() { - if (m_button->Grab()) { - if (!pressedLast) { - pressedLast = true; - m_command->Cancel(); - } - } else { - pressedLast = false; + bool pressed = m_button->Grab(); + + if (!m_pressedLast && pressed) { + m_command->Cancel(); } + + m_pressedLast = pressed; } diff --git a/wpilibc/src/main/native/cpp/buttons/HeldButtonScheduler.cpp b/wpilibc/src/main/native/cpp/buttons/HeldButtonScheduler.cpp index 1d5e3f6c9e..d386b5870c 100644 --- a/wpilibc/src/main/native/cpp/buttons/HeldButtonScheduler.cpp +++ b/wpilibc/src/main/native/cpp/buttons/HeldButtonScheduler.cpp @@ -17,13 +17,13 @@ HeldButtonScheduler::HeldButtonScheduler(bool last, Trigger* button, : ButtonScheduler(last, button, orders) {} void HeldButtonScheduler::Execute() { - if (m_button->Grab()) { - m_pressedLast = true; + bool pressed = m_button->Grab(); + + if (!m_pressedLast && pressed) { m_command->Start(); - } else { - if (m_pressedLast) { - m_pressedLast = false; - m_command->Cancel(); - } + } else if (m_pressedLast && !pressed) { + m_command->Cancel(); } + + m_pressedLast = pressed; } diff --git a/wpilibc/src/main/native/cpp/buttons/PressedButtonScheduler.cpp b/wpilibc/src/main/native/cpp/buttons/PressedButtonScheduler.cpp index 63da57f781..a964117ebd 100644 --- a/wpilibc/src/main/native/cpp/buttons/PressedButtonScheduler.cpp +++ b/wpilibc/src/main/native/cpp/buttons/PressedButtonScheduler.cpp @@ -17,12 +17,11 @@ PressedButtonScheduler::PressedButtonScheduler(bool last, Trigger* button, : ButtonScheduler(last, button, orders) {} void PressedButtonScheduler::Execute() { - if (m_button->Grab()) { - if (!m_pressedLast) { - m_pressedLast = true; - m_command->Start(); - } - } else { - m_pressedLast = false; + bool pressed = m_button->Grab(); + + if (!m_pressedLast && pressed) { + m_command->Start(); } + + m_pressedLast = pressed; } diff --git a/wpilibc/src/main/native/cpp/buttons/ReleasedButtonScheduler.cpp b/wpilibc/src/main/native/cpp/buttons/ReleasedButtonScheduler.cpp index 4edd09ae6a..6d67004e68 100644 --- a/wpilibc/src/main/native/cpp/buttons/ReleasedButtonScheduler.cpp +++ b/wpilibc/src/main/native/cpp/buttons/ReleasedButtonScheduler.cpp @@ -17,12 +17,11 @@ ReleasedButtonScheduler::ReleasedButtonScheduler(bool last, Trigger* button, : ButtonScheduler(last, button, orders) {} void ReleasedButtonScheduler::Execute() { - if (m_button->Grab()) { - m_pressedLast = true; - } else { - if (m_pressedLast) { - m_pressedLast = false; - m_command->Start(); - } + bool pressed = m_button->Grab(); + + if (m_pressedLast && !pressed) { + m_command->Start(); } + + m_pressedLast = pressed; } diff --git a/wpilibc/src/main/native/cpp/buttons/ToggleButtonScheduler.cpp b/wpilibc/src/main/native/cpp/buttons/ToggleButtonScheduler.cpp index 059077291a..b722d45331 100644 --- a/wpilibc/src/main/native/cpp/buttons/ToggleButtonScheduler.cpp +++ b/wpilibc/src/main/native/cpp/buttons/ToggleButtonScheduler.cpp @@ -14,21 +14,18 @@ using namespace frc; ToggleButtonScheduler::ToggleButtonScheduler(bool last, Trigger* button, Command* orders) - : ButtonScheduler(last, button, orders) { - pressedLast = m_button->Grab(); -} + : ButtonScheduler(last, button, orders) {} void ToggleButtonScheduler::Execute() { - if (m_button->Grab()) { - if (!pressedLast) { - pressedLast = true; - if (m_command->IsRunning()) { - m_command->Cancel(); - } else { - m_command->Start(); - } + bool pressed = m_button->Grab(); + + if (!m_pressedLast && pressed) { + if (m_command->IsRunning()) { + m_command->Cancel(); + } else { + m_command->Start(); } - } else { - pressedLast = false; } + + m_pressedLast = pressed; } diff --git a/wpilibc/src/main/native/include/frc/buttons/CancelButtonScheduler.h b/wpilibc/src/main/native/include/frc/buttons/CancelButtonScheduler.h index 8e4413a9c6..69b8a117b2 100644 --- a/wpilibc/src/main/native/include/frc/buttons/CancelButtonScheduler.h +++ b/wpilibc/src/main/native/include/frc/buttons/CancelButtonScheduler.h @@ -23,9 +23,6 @@ class CancelButtonScheduler : public ButtonScheduler { CancelButtonScheduler& operator=(CancelButtonScheduler&&) = default; virtual void Execute(); - - private: - bool pressedLast; }; } // namespace frc diff --git a/wpilibc/src/main/native/include/frc/buttons/ToggleButtonScheduler.h b/wpilibc/src/main/native/include/frc/buttons/ToggleButtonScheduler.h index 4c7a2037bb..aeb93b37ea 100644 --- a/wpilibc/src/main/native/include/frc/buttons/ToggleButtonScheduler.h +++ b/wpilibc/src/main/native/include/frc/buttons/ToggleButtonScheduler.h @@ -23,9 +23,6 @@ class ToggleButtonScheduler : public ButtonScheduler { ToggleButtonScheduler& operator=(ToggleButtonScheduler&&) = default; virtual void Execute(); - - private: - bool pressedLast; }; } // namespace frc diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/buttons/Trigger.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/buttons/Trigger.java index a33e5cfca9..795778b45f 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/buttons/Trigger.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/buttons/Trigger.java @@ -56,14 +56,13 @@ public abstract class Trigger extends SendableBase { @Override public void execute() { - if (grab()) { - if (!m_pressedLast) { - m_pressedLast = true; - command.start(); - } - } else { - m_pressedLast = false; + boolean pressed = grab(); + + if (!m_pressedLast && pressed) { + command.start(); } + + m_pressedLast = pressed; } }.start(); } @@ -82,15 +81,15 @@ public abstract class Trigger extends SendableBase { @Override public void execute() { - if (grab()) { - m_pressedLast = true; + boolean pressed = grab(); + + if (!m_pressedLast && pressed) { command.start(); - } else { - if (m_pressedLast) { - m_pressedLast = false; - command.cancel(); - } + } else if (m_pressedLast && !pressed) { + command.cancel(); } + + m_pressedLast = pressed; } }.start(); } @@ -106,14 +105,13 @@ public abstract class Trigger extends SendableBase { @Override public void execute() { - if (grab()) { - m_pressedLast = true; - } else { - if (m_pressedLast) { - m_pressedLast = false; - command.start(); - } + boolean pressed = grab(); + + if (m_pressedLast && !pressed) { + command.start(); } + + m_pressedLast = pressed; } }.start(); } @@ -129,18 +127,17 @@ public abstract class Trigger extends SendableBase { @Override public void execute() { - if (grab()) { - if (!m_pressedLast) { - m_pressedLast = true; - if (command.isRunning()) { - command.cancel(); - } else { - command.start(); - } + boolean pressed = grab(); + + if (!m_pressedLast && pressed) { + if (command.isRunning()) { + command.cancel(); + } else { + command.start(); } - } else { - m_pressedLast = false; } + + m_pressedLast = pressed; } }.start(); } @@ -156,14 +153,13 @@ public abstract class Trigger extends SendableBase { @Override public void execute() { - if (grab()) { - if (!m_pressedLast) { - m_pressedLast = true; - command.cancel(); - } - } else { - m_pressedLast = false; + boolean pressed = grab(); + + if (!m_pressedLast && pressed) { + command.cancel(); } + + m_pressedLast = pressed; } }.start(); }