AceButton 1.10.0 An adjustable, compact, event-driven button library for Arduino.

Public Member Functions | List of all members
ace_button::Encoded8To3ButtonConfig Class Reference

A ButtonConfig that handles an 8-to-3 binary encoder which converts 8 inputs into 3 outputs. More...

`#include <Encoded8To3ButtonConfig.h>`

Inheritance diagram for ace_button::Encoded8To3ButtonConfig:
[legend]
Collaboration diagram for ace_button::Encoded8To3ButtonConfig:
[legend]

## Public Member Functions
| Encoded8To3ButtonConfig (uint8_t pin0, uint8_t pin1, uint8_t pin2, uint8_t defaultReleasedState=HIGH)
int | readButton (uint8_t pin) override
| Return state of the encoded 'pin' number, corresponding to the pull-down states of the actual pins. More...
Public Member Functions inherited from ace_button::ButtonConfig
| ButtonConfig ()=default
| Constructor.
virtual | ~ButtonConfig ()=default
| If the ButtonConfig is created and deleted on the heap, a virtual destructor is technically required by the C++ language to prevent memory leaks. More...
uint16_t | getDebounceDelay () const
| Milliseconds to wait for debouncing.
uint16_t | getClickDelay () const
| Milliseconds to wait for a possible click.
uint16_t | getDoubleClickDelay () const
| Milliseconds between the first and second click to register as a double-click.
uint16_t | getLongPressDelay () const
| Milliseconds for a long press event.
uint16_t | getRepeatPressDelay () const
| Milliseconds that a button needs to be Pressed down before the start of the sequence of RepeatPressed events. More...
uint16_t | getRepeatPressInterval () const
| Milliseconds between two successive RepeatPressed events.
uint16_t | getHeartBeatInterval () const
| Milliseconds between two successive HeartBeat events.
void | setDebounceDelay (uint16_t debounceDelay)
| Set the debounceDelay milliseconds.
void | setClickDelay (uint16_t clickDelay)
| Set the clickDelay milliseconds.
void | setDoubleClickDelay (uint16_t doubleClickDelay)
| Set the doubleClickDelay milliseconds.
void | setLongPressDelay (uint16_t longPressDelay)
| Set the longPressDelay milliseconds.
void | setRepeatPressDelay (uint16_t repeatPressDelay)
| Set the repeatPressDelay milliseconds.
void | setRepeatPressInterval (uint16_t repeatPressInterval)
| Set the repeatPressInterval milliseconds.
void | setHeartBeatInterval (uint16_t heartBeatInterval)
| Set the heartBeatInterval milliseconds.
virtual unsigned long | getClock ()
| Return the milliseconds of the internal clock. More...
bool | isFeature (FeatureFlagType features) const
| Check if the given features are enabled.
void | setFeature (FeatureFlagType features)
| Enable the given features.
void | clearFeature (FeatureFlagType features)
| Disable the given features.
void | resetFeatures ()
| Disable all (externally visible) features. More...
EventHandler | getEventHandler () const ACE_BUTTON_DEPRECATED
| Return the eventHandler function pointer. More...
void | dispatchEvent (AceButton *button, uint8_t eventType, uint8_t buttonState) const
| Dispatch the event to the handler. More...
void | setEventHandler (EventHandler eventHandler)
| Install the EventHandler function pointer. More...
void | setIEventHandler (IEventHandler *eventHandler)
| Install the IEventHandler object pointer. More...

## Additional Inherited Members
Public Types inherited from ace_button::ButtonConfig
typedef uint16_t | FeatureFlagType
| Type of the feature flag. More...
typedef void(* | EventHandler) (AceButton *button, uint8_t eventType, uint8_t buttonState)
| The event handler signature. More...
Static Public Member Functions inherited from ace_button::ButtonConfig
static ButtonConfig * | getSystemButtonConfig ()
| Return a pointer to the singleton instance of the ButtonConfig which is attached to all AceButton instances by default.
Static Public Attributes inherited from ace_button::ButtonConfig
static const uint16_t | kDebounceDelay = 20
| Default milliseconds returned by getDebounceDelay().
static const uint16_t | kClickDelay = 200
| Default milliseconds returned by getClickDelay().
static const uint16_t | kDoubleClickDelay = 400
| Default milliseconds returned by getDoubleClickDelay().
static const uint16_t | kLongPressDelay = 1000
| Default milliseconds returned by getLongPressDelay().
static const uint16_t | kRepeatPressDelay = 1000
| Default milliseconds returned by getRepeatPressDelay().
static const uint16_t | kRepeatPressInterval = 200
| Default milliseconds returned by getRepeatPressInterval().
static const uint16_t | kHeartBeatInterval = 5000
| Default milliseconds returned by getHeartBeatInterval().
static const FeatureFlagType | kFeatureClick = 0x01
| Flag to activate the AceButton::kEventClicked event.
static const FeatureFlagType | kFeatureDoubleClick = 0x02
| Flag to activate the AceButton::kEventDoubleClicked event. More...
static const FeatureFlagType | kFeatureLongPress = 0x04
| Flag to activate the AceButton::kEventLongPress event.
static const FeatureFlagType | kFeatureRepeatPress = 0x08
| Flag to activate the AceButton::kEventRepeatPressed event.
static const FeatureFlagType | kFeatureSuppressAfterClick = 0x10
| Flag to suppress kEventReleased after a kEventClicked.
static const FeatureFlagType | kFeatureSuppressAfterDoubleClick = 0x20
| Flag to suppress kEventReleased after a kEventDoubleClicked. More...
static const FeatureFlagType | kFeatureSuppressAfterLongPress = 0x40
| Flag to suppress kEventReleased after a kEventLongPressed.
static const FeatureFlagType | kFeatureSuppressAfterRepeatPress = 0x80
| Flag to suppress kEventReleased after a kEventRepeatPressed.
static const FeatureFlagType | kFeatureSuppressClickBeforeDoubleClick = 0x100
| Flag to suppress kEventClicked before a kEventDoubleClicked. More...
static const FeatureFlagType | kFeatureHeartBeat = 0x200
| Flag to enable periodic kEventHeartBeat.
static const FeatureFlagType | kInternalFeatureIEventHandler = 0x8000
| Internal flag to indicate that mEventHandler is an IEventHandler object pointer instead of an EventHandler function pointer.
static const FeatureFlagType | kFeatureSuppressAll
| Convenience flag to suppress all suppressions. More...

## Detailed Description

A ButtonConfig that handles an 8-to-3 binary encoder which converts 8 inputs into 3 outputs.

In practice, this means that 7 buttons can be handled with 3 pins, because the 0th button is used to represent "no button pressed". One easy way to perform the 8-to-3 encoding is to use 9 diodes with 7 switches. Another way is to use an 74LS148 binary encoder. In either case, each switch translates into a 3-bit binary number, which becomes the button's "virtual" pin number:

- S0 = 000 = 0 [unavailable, see below]
- S1 = 001 = 1
- S2 = 010 = 2
- S3 = 011 = 3
- S4 = 100 = 4
- S5 = 101 = 5
- S6 = 110 = 6
- S7 = 111 = 7

Button S0 cannot be used because the code 000 is used to indicate that no button was pressed.

Definition at line 53 of file Encoded8To3ButtonConfig.h.

## Constructor & Destructor Documentation

## ◆ Encoded8To3ButtonConfig()

ace_button::Encoded8To3ButtonConfig::Encoded8To3ButtonConfig | ( | uint8_t | pin0,
|  | uint8_t | pin1,
|  | uint8_t | pin2,
|  | uint8_t | defaultReleasedState = `HIGH`
| ) |  |
| inline

Parameters

  pin0 | the pin number representing bit0 of the binary encoder
  pin1 | the pin number representing bit1 of the binary encoder
  pin2 | the pin number representing bit2 of the binary encoder
  defaultReleasedState | state of the encoder bit when the button is in the released state. For a pull-up wiring, the state of the pin is HIGH when the button is released. This value is used to configure wiring of the virtual button, so that it matches the wiring of the physical buttons. The LS74148 encoder uses a pull-up wiring, so this should be set HIGH. The default value is HIGH.

Definition at line 67 of file Encoded8To3ButtonConfig.h.

## Member Function Documentation

## ◆ readButton()

int ace_button::Encoded8To3ButtonConfig::readButton | ( | uint8_t | pin | ) |
| inline override virtual

Return state of the encoded 'pin' number, corresponding to the pull-down states of the actual pins.

LOW means that the corresponding encoded virtual pin was pushed.

Reimplemented from ace_button::ButtonConfig.

Definition at line 79 of file Encoded8To3ButtonConfig.h.

The documentation for this class was generated from the following file:

- /home/brian/src/AceButton/src/ace_button/Encoded8To3ButtonConfig.h