Added ButtonTracker class for synchronous detection of rising and trailing edges in button states #89
wpilibc/athena/src/ButtonTracker.cpp
| + GetButtonState(m_newStates, button) == true; | ||
| +} | ||
| + | ||
| +/** | ||
| + * @param buttonStates button statuses received from Driver Station. | ||
| + * @param button The button number to be checked (starting at 1). | ||
| + * @return true if button is currently pressed. | ||
| + */ | ||
| +bool ButtonTracker::GetButtonState(uint32_t buttonStates, uint32_t button) { | ||
| + return ((1 << (button - 1)) & buttonStates) != 0; | ||
| +} | ||
| + | ||
| +/** | ||
| + * Gets new button statuses for joystick from Driver Station. | ||
| + * | ||
| + * This should be called once per loop iteration in operatorControl(). |
|
PeterJohnson
|
| + */ | ||
| + public boolean pressedButton(int button) { | ||
| + return getButtonState(m_oldStates, button) == false | ||
| + && getButtonState(m_newStates, button) == true; |
AustinShalit
Nov 22, 2016
Member
Could be:
return !getButtonState(m_oldStates, button)
&& getButtonState(m_newStates, button);
| + */ | ||
| + public boolean releasedButton(int button) { | ||
| + return getButtonState(m_oldStates, button) == true | ||
| + && getButtonState(m_newStates, button) == false; |
AustinShalit
Nov 22, 2016
Member
Could be:
return getButtonState(m_oldStates, button)
&& !getButtonState(m_newStates, button);
| + */ | ||
| + public boolean heldButton(int button) { | ||
| + return getButtonState(m_oldStates, button) == true | ||
| + && getButtonState(m_newStates, button) == true; |
AustinShalit
Nov 22, 2016
Member
Could be:
return getButtonState(m_oldStates, button)
&& getButtonState(m_newStates, button);
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This change is