1#ifndef INPUT_EVENTS_SLOW_EXPANDER_ENCODER_ADAPTER_H
2#define INPUT_EVENTS_SLOW_EXPANDER_ENCODER_ADAPTER_H
5#include "BaseTableEncoderAdapter.h"
6#include "GpioExpanderAdapter/GpioExpanderAdapter.h"
29 : expanderAdapter(&expander)
62 uint8_t stateA = expanderAdapter->
read(_pinA);
63 uint8_t stateB = expanderAdapter->
read(_pinB);
68 if (prevStateA == LOW && stateA == HIGH) {
70 _position -= _positionMultiplier;
72 _position += _positionMultiplier;
87 uint8_t _pinA = HIGH, _pinB = HIGH, prevStateA = HIGH, prevStateB = HIGH;
88 int32_t _position = 0;
89 uint8_t _positionMultiplier = 4;
The base class/interface specification for GPIO expanders.
Definition: GpioExpanderAdapter.h:10
virtual bool read(byte pin)=0
Returns the state of a pin on the expander.
virtual void attachPin(byte pin, int mode=INPUT_PULLUP)=0
Use it to configure individual pin mode, if expander allows it. Not all of them do.
A lightweight adapter abstract class for encoders.
Definition: IEncoderAdapter.h:19
A very basic IEncoderAdapter for slow GPIO Expanders.
Definition: SlowExpanderEncoderAdapter.h:16
virtual int32_t getPosition() override
Get the current position of the encoder.
Definition: SlowExpanderEncoderAdapter.h:46
virtual void setPosition(int32_t pos)
Set the a new position of the encoder. For some libraries this may only allow it to be set to 0.
Definition: SlowExpanderEncoderAdapter.h:52
SlowExpanderEncoderAdapter(uint8_t encoderPinA, uint8_t encoderPinB, GpioExpanderAdapter &expander)
Construct a ExpanderEncoderAdapter.
Definition: SlowExpanderEncoderAdapter.h:28
virtual void update()
Update position using the table.
Definition: SlowExpanderEncoderAdapter.h:61
bool begin() override
For compatibility with the Arduino library convention.
Definition: SlowExpanderEncoderAdapter.h:35