1#ifndef INPUT_EVENTS_BASE_TABLE_ENCODER_ADAPTER_H
2#define INPUT_EVENTS_BASE_TABLE_ENCODER_ADAPTER_H
4#include "IEncoderAdapter.h"
35 uint8_t idx = (_prevState << 2) | state;
36 _position += table[idx];
50 virtual uint8_t
readPin(uint8_t pin)
const = 0;
53 static constexpr int8_t table[16] = {
61 uint8_t _prevState = 0;
62 int32_t _position = 0;
A base class for encoder adapters that uses a quadrature encoder table to determine posion changes fr...
Definition: BaseTableEncoderAdapter.h:11
virtual int32_t getPosition() override
Get the current position of the encoder.
Definition: BaseTableEncoderAdapter.h:19
virtual uint8_t readPin(uint8_t pin) const =0
Concrete implementations must provide a method to read pin values.
virtual void update()
Update position using the table.
Definition: BaseTableEncoderAdapter.h:33
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: BaseTableEncoderAdapter.h:25
bool _externalUpdate
Some implementations may allow the update via an interupt.
Definition: BaseTableEncoderAdapter.h:63
A lightweight adapter abstract class for encoders.
Definition: IEncoderAdapter.h:19