11#ifndef EVENT_ENCODER_H
12#define EVENT_ENCODER_H
15#include "EventInputBase.h"
16#include <EncoderAdapter/IEncoderAdapter.h>
33 #if defined(FUNCTIONAL_SUPPORTED)
113 #if defined(FUNCTIONAL_SUPPORTED)
115 template <
typename T>
119 (instance->*method)(et, ie);
187 positionDivider = divider;
215 uint8_t positionDivider = 4;
216 int32_t currentPosition = 0;
217 int32_t oldPosition = 0;
218 unsigned int rateLimit = 0;
219 unsigned long rateLimitCounter = 0;
220 int encoderIncrement = 0;
The EventEncoder class is for quadrature encoder inputs providing the position & encoder increment,...
Definition: EventEncoder.h:29
void readIncrement()
Read and set the increment during update()
Definition: EventEncoder.cpp:66
long position()
The current position of the encoder. Can be reset with resetPosition()
Definition: EventEncoder.h:158
EventEncoder(IEncoderAdapter *encoderAdapter)
Construct an EventEncoder input from an IEncoderAdapter.
Definition: EventEncoder.cpp:18
void update()
Update the state from the underlying encoder library.
Definition: EventEncoder.cpp:50
void setPositionDivider(uint8_t divider=4)
Quadrature encoders usually have four states for each 'click' of the rotary control,...
Definition: EventEncoder.h:185
CallbackFunction callbackFunction
The callback function member.
Definition: EventEncoder.h:48
void setCallback(T *instance, void(T::*method)(InputEventType, EventEncoder &))
Set the Callback function to a class method.
Definition: EventEncoder.h:116
void onEnabled() override
Can be ovrriden by derived classes but base method must be called.
Definition: EventEncoder.cpp:37
std::function< void(InputEventType et, EventEncoder &ie)> CallbackFunction
If std::function is supported, this creates the callback type.
Definition: EventEncoder.h:37
void invoke(InputEventType et) override
To be overriden by derived classes.
Definition: EventEncoder.cpp:30
void unsetCallback() override
Unset a previously set callback function or method.
Definition: EventEncoder.cpp:45
int16_t increment()
Returns a positive (CW) or negative (CCW) integer.
Definition: EventEncoder.h:153
void begin()
Initialise the EventEncoder.
Definition: EventEncoder.cpp:26
uint8_t getPositionDivider()
Get the currently set position divider value.
Definition: EventEncoder.h:196
void resetPosition(long pos=0)
Reset the counted position of the encoder.
Definition: EventEncoder.h:203
void setCallback(CallbackFunction f)
Set the Callback function.
Definition: EventEncoder.h:99
~EventEncoder()
Destroy the EventEncoder input.
Definition: EventEncoder.cpp:22
void setRateLimit(long ms=0)
Encoder callbacks are normally fired on every loop() but for MPG style encoders this can fire a huge ...
Definition: EventEncoder.h:174
A lightweight adapter abstract class for encoders.
Definition: IEncoderAdapter.h:19